有没有办法让CreateProcess创建的进程在另一个窗口中打开?

时间:2010-09-23 03:12:34

标签: c++ winapi createprocess win32-process

我希望能够在主进程中使用CreateProcess打开GUI应用程序,并在我在主进程中创建的窗口中显示GUI。有谁知道如何实现这一目标?谢谢!

2 个答案:

答案 0 :(得分:6)

如果您控制两个应用程序,那么是。

屏幕保护程序控制面板中显示屏幕保护程序的方式 - 控制面板在命令行上通过对话框窗口,而.scr文件 - 这只是一个简单的exe文件 - 使用给定的方式创建其窗口作为子窗口hwnd作为其父母。

但是,不能很好地支持捕获先前写入的顶级窗口并强制它存在于您自己的帧中。

同样,这是你可以轻松尝试的东西:我写了一个测试应用程序,它创建了一个空框架窗口,为记事本的副本做了一个FindWindow,并重新设置了记事本窗口作为我的框架的子项。

所以它确实有效:至少在这个简单的场景中,但不能保证:更复杂的应用程序修改自己的框架样式可能会很好地破坏,另外在不同的线程上有一个子窗口和父窗口引入了可能性死锁。

答案 1 :(得分:1)

不,你不能这样做。

可能有效的东西......你可以开始这个过程,然后使用窗口句柄对窗口进行一系列更改以取消框架。然后,您可以将其移动到窗口中某个其他放置控件的位置,当您移动/调整大小事件时,还可以调整此子窗口的大小。