我在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