在不重新启动子进程的情况下切换子进程 window 在 Visual C++ 中的可见性
Toggle child process window visibility in Visual C++ without relaunching the child
使用 Visual Studio 2017.
我用
siStartInfo.dwFlags &= STARTF_USESHOWWINDOW;
siStartInfo.wShowWindow = SW_HIDE;
创建一个带有隐藏 window 的子进程(通过 CreateProcess())。它完美运行。
如果可能的话,我希望能够切换子进程的可见性状态'window,post - 根据需要从主程序创建(例如,按下按钮)。我想控制子进程的 window 可见性,而不需要通过 CreateProcess() 重新启动它。
修改子进程代码不是一种选择 - 它可以是许多不同的程序,不一定具有可用的源代码。
提前致谢。
如果您知道 window class 或 child 流程的标题,您可以使用 FindWindow()
找到 window。
对于更通用的方法,使用 EnumWindows()
to enumerate all top-level windows. For each window call GetWindowThreadProcessId()
检查它是否属于 child 进程。
调用 ShowWindow()
切换可见性。
使用 Visual Studio 2017.
我用
siStartInfo.dwFlags &= STARTF_USESHOWWINDOW;
siStartInfo.wShowWindow = SW_HIDE;
创建一个带有隐藏 window 的子进程(通过 CreateProcess())。它完美运行。
如果可能的话,我希望能够切换子进程的可见性状态'window,post - 根据需要从主程序创建(例如,按下按钮)。我想控制子进程的 window 可见性,而不需要通过 CreateProcess() 重新启动它。
修改子进程代码不是一种选择 - 它可以是许多不同的程序,不一定具有可用的源代码。
提前致谢。
如果您知道 window class 或 child 流程的标题,您可以使用 FindWindow()
找到 window。
对于更通用的方法,使用 EnumWindows()
to enumerate all top-level windows. For each window call GetWindowThreadProcessId()
检查它是否属于 child 进程。
调用 ShowWindow()
切换可见性。