簡體   English   中英

在C ++中啟動進程時隱藏命令提示符

[英]Hiding command prompt while starting a process in C++

我必須從我的C ++代碼開始一個過程。 我正在使用CreateProcess()函數,我在startupinfo結構中設置了以下標志。 但仍然顯示命令提示符,我必須手動關閉以繼續。 請告訴我如何在啟動過程中隱藏此命令提示符。

si.cb = sizeof(STARTUPINFO);
    si.dwFlags = STARTF_USESHOWWINDOW;
    si.wShowWindow = SW_HIDE;

create process調用如下所示:

CreateProcess( NULL,   // No module name (use command line)
        exe,            // Command line
        NULL,           // Process handle not inheritable
        NULL,           // Thread handle not inheritable
        FALSE,          // Set handle inheritance to FALSE
        CREATE_NEW_CONSOLE,              // No creation flags
        NULL,           // Use parent's environment block
        NULL,           // Use parent's starting directory 
        &si,            // Pointer to STARTUPINFO structure
        &pi );

exe是一個包含要啟動的進程名稱的字符串。

請告訴我如何在啟動過程中隱藏此命令提示符。 我嘗試了這里描述的方法但它不起作用。 我有一個Windows 7系統。

謝謝,拉克什。

您正在傳遞CREATE_NEW_CONSOLE而您不需要新的控制台窗口。 似乎答案是完全明顯的。 但是,如果其他進程本身創建了一個控制台,那么你就無法阻止它。 如果您通過Explorer啟動該過程會發生什么?

正如MSalters所說, CREATE_NEW_CONSOLE不是你想要的。 但是您可能還想將CREATE_NO_WINDOW傳遞給CreateProcess函數。 有關可以作為標志傳遞給CreateProcess ,請參閱MSDN文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM