有没有办法让 CreateProcess 创建的进程在另一个窗口中打开?
-
04-10-2019 - |
题
我希望能够在主进程中使用 CreateProcess 打开 GUI 应用程序,并将 GUI 显示在我从主进程内创建的窗口中。有谁知道如何实现这一目标?谢谢!
解决方案
如果您可以控制这两个应用程序,那么可以。
这就是屏幕保护程序在屏幕保护程序控制面板中的显示方式 - 控制面板在命令行上传递对话框窗口,而 .scr 文件 - 这只是一个简单的 exe - 使用给定的 hwnd 作为其子窗口来创建其窗口父母。
然而,捕获先前编写的顶级窗口并强制其存在于您自己的框架内并没有得到很好的支持。
同样,您可以轻松尝试:我编写了一个测试应用程序,它创建了一个空框架窗口,为记事本副本创建了 FindWindow,并将记事本窗口重新设置为框架的子窗口。
所以它确实有效:至少在这个简单的场景中,但不能保证:修改自己的框架样式的更复杂的应用程序很可能会崩溃,此外,子窗口和父窗口位于不同的线程上会引入死锁的可能性。
其他提示
不,你不能这样做。
可能有效的东西...不过,您可以启动该过程,然后使用窗口句柄将一系列更改应用于窗口以取下框架。然后,您可以将其移至窗口中其他一些放置控件的位置,当您进行移动/调整事件时,您还可以调整此子窗口的大小。
不隶属于 StackOverflow