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

cli*_*ith 1 c++ winapi createprocess win32-process

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

Chr*_*cke 6

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

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

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

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

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