我在C++中有一个GUI。 GUI使用CreateProcess
方法启动另一个独立的基于控制台的应用程序。我通过在CreateProcess
中传递CREATE_NO_WINDOW
标志来隐藏这些控制台应用程序。现在我想让它再次可见。我怎么做?如何显示由createprocess函数隐藏的控制台应用程序窗口
0
A
回答
1
而不是使用CREATE_NO_WINDOW
标志,而是使用STARTUPINFO
结构的wShowWindow
成员来代替。最初将其设置为SW_HIDE
(并将dwFlags
成员设置为STARTF_USESHOWWINDOW
),然后可以使用ShowWindow()
在需要时显示/隐藏控制台窗口。要找到属于新进程的窗口,请使用EnumWindows()
和GetWindowThreadProcessId()
来查找其进程/线程ID与结构中返回CreateProcess()
返回的ID相匹配的窗口。
+0
谢谢你的朋友...我用这种方法来获得窗口句柄HWND。但是当我使用这个HWND在WINDOWS 7中显示“mspaint.exe”窗口时,它在任务栏上出现了3个窗口,第一个是mspaint.exe,它不响应任何点击,第二个是空白的GDI +窗口标题与GDI +和第三是完全空白,没有任何标题,也没有回应..请给任何可靠的解决方案.... – Swapnil
0
你有一次想让窗口创建并传递给它。这是正确的,但你可以在createProcess方法之后显示或隐藏gui。
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb = sizeof(si);
ZeroMemory(&pi, sizeof(pi);
si.wShowWindow = SW_SHOW;
si.dwFlags = STARTF_USESHOWWINDOW;
si.lpTitle ="my_process_console";
CreateProcess(null,"my.exe",null,null,false,CREATE_NEW__CONSOLE,null,null,&si,&pi);
我创建了process.Now我使用find方法,然后我可以显示GUI。
HWND console_name =FindWindow(null,"my_process_console");
if(console_name){
ShowWindow(console_name,SW_SHOW);
}
相关问题
- 1. 如何显示/隐藏控制台窗口应用程序?
- 2. 如何隐藏我的应用程序的控制台窗口?
- 3. 隐藏Windows窗体应用程序中的控制台窗口
- 4. 隐藏控制台窗口
- 5. 隐藏控制台窗口
- 6. 如何隐藏控制台窗口?
- 7. 如何隐藏控制台窗口
- 8. 如何隐藏控制台窗口?
- 9. 在C#控制台中隐藏控制台窗口应用程序
- 10. 如何在Windows上隐藏Go程序的控制台窗口
- 11. 如何隐藏与我的应用程序打开的控制台窗口?
- 12. 如何显示/隐藏其他应用程序的窗口?
- 13. 如何隐藏/显示DevExpress窗口的UserControls应用程序
- 14. 使用'CreateProcess'隐藏进程窗口
- 15. 窗口显示/隐藏切换控制
- 16. 如何在python PyQt GUI应用程序中隐藏控制台窗口
- 17. 如何从c#wpf应用程序动态地隐藏控制台窗口?
- 18. 如何在动态编译Windows应用程序时隐藏控制台窗口?
- 19. ChromeDriver控制台应用程序隐藏
- 20. 如何隐藏子流程的控制台窗口?
- 21. 在Win32控制台应用程序中显示弹出窗口
- 22. 使win32控制台应用程序显示一个窗口
- 23. 显示控制台应用程序窗口以调试DLL
- 24. 防止VBscript应用程序显示控制台窗口
- 25. 关闭应用程序,而不显示控制台窗口
- 26. 隐藏C程序的控制台窗口
- 27. 从Process.Start隐藏控制台窗口C#
- 28. 隐藏控制台窗口执行_popen
- 29. 隐藏控制台窗口LNK4044警告
- 30. 从SDL隐藏控制台窗口
你不能。你有一次想要创建窗口并将其传递出去。该过程本身必须调用AllocConsole()。 –
感谢您的回复。如果我不能,那么我如何实现这种功能。我想要的是,应该有两个按钮SHOW和HIDE,它们将显示和隐藏由CreateProcess创建的控制台应用程序窗口。为此,我目前持有PROCESS_INFORMATION .. – Swapnil