我有一个项目, 想在项目的主界面内打开exe文件,类似于打开一个子窗口,就如 MDI Form 打开一个子Form一样 。
System.Diagnostics.Process.Start("xxx.exe"); 
上面语句时,界面不在项目的主界面中。
请问是否能实现此功能?

解决方案 »

  1.   

    先谢谢一楼,说明一下,是winform.
      

  2.   

    用windows api 函数 setparent可以把打开进程的mainhandle设置为你窗体的子控件
      

  3.   

    沉得好快,如何使用webbrowser 钳入调用呢?
      

  4.   

    datagridview 显示数据不就行了
      

  5.   

    谢谢9楼顶了一下,和数据显示没有关系,是钳入调用EXE的问题。
      

  6.   

    找到东西先记录了
    函数功能:该函数改变指定子窗口的父窗口。    函数原型:HWND SetParent(HWND hWndChild,HWND hWndNewParent);    参数:    hWndChild:子窗口句柄。    hWndNewParent:新的父窗口句柄。如果该参数是NULL,则桌面窗口就成为新的父窗口。在WindowsNT5.0中,如果参数为HWND_MESSAGE,则子窗口成为消息窗口。    返回值:如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。若想获得多错误信息,请调用GetLastError函数。    备注:应用程序可以使用SetParent函数来设置弹出式窗口,层叠窗口或子窗口的父窗口。新的窗口与窗口必须属于同一应用程序。    如果参数hWndChild标识的窗口是可见的,系统将执行适当的重画和刷新动作。    由于兼容的原因,对于将改变父窗口的子窗口,SetParent函数并不改变该子窗口的WS_CHILO WS_POPUP风格。所以,如果hWndNewParent参数为NULL,就应在调用SetParent函数之后清空WS_CHILD位并且设置为WS_POPUP风格。相反的,如果hWndNewParent参数不为NULL并且在此之前窗口是桌面窗口的子窗口,就应在调用SetParent函数之前清空WS_POPUP位井设置WS_CHILD风格。    速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。结论和疑问:新的窗口与窗口必须属于同一应用程序。难道真的不行!!??
      

  7.   

    昨晚试了一下SetParent
    可能是没理解透,是可以调用了,但参数感觉写得不对.
    调用的exe文件还是没嵌入主程序中.