[英]How to launch console application using CreateProcess with Minimized main window
[英]how to show console app window hidden by createprocess function
我在C ++中有一個GUI。 該GUI用於使用CreateProcess
方法啟動另一個基於獨立控制台的應用程序。 我通過在CreateProcess
傳遞CREATE_NO_WINDOW
標志來隱藏這些控制台應用程序。 現在,我想再次使其可見。 我怎么做?
代替使用CREATE_NO_WINDOW
標志,而使用STARTUPINFO
結構的wShowWindow
成員。 首先將其設置為SW_HIDE
(並將dwFlags
成員設置為STARTF_USESHOWWINDOW
),然后可以在需要時使用ShowWindow()
顯示/隱藏控制台窗口。 若要查找屬於新進程的窗口,請使用EnumWindows()
和GetWindowThreadProcessId()
查找其進程/線程ID與PROCESS_INFORMATION
結構中CreateProcess()
返回的ID匹配的窗口。
您在創建窗口時一舉成功,然后將其傳遞了過去。 沒錯,但是您可以在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。現在我使用find方法,然后可以顯示GUI。
HWND console_name =FindWindow(null,"my_process_console");
if(console_name){
ShowWindow(console_name,SW_SHOW);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.