在C 語言中呼叫::CreateProcess 來啟動和管理Windows 執行檔
本文將示範如何在C 語言中使用:CreateProcess 函數啟動Windows 執行文件,等待其完成,並正確處理其終止。
啟動執行檔
::CreateProcess 函式接受多個參數,包括執行路徑和命令列參數。若要啟動EXE,請在路徑參數中指定執行檔的路徑:
<code class="cpp">STARTUPINFO info = { sizeof(info) }; PROCESS_INFORMATION processInfo; if (CreateProcess("C:\path\to\my.exe", NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo)) { // Executable successfully launched } else { // Handle launch failure }</code>
等待完成
要等待執行檔完成,請呼叫WaitForingleSObject 函數以processInfo.hProcess 作為等待句柄:
<code class="cpp">WaitForSingleObject(processInfo.hProcess, INFINITE);</code>
這將阻塞當前線程,直到進程退出。
處理程序終止
執行檔完成後,關閉進程和執行緒句柄以正確釋放系統資源:
<code class="cpp">CloseHandle(processInfo.hProcess); CloseHandle(processInfo.hThread);</code>
範例程式碼
將它們放在一起,下面的程式碼示範如何啟動一個EXE,等待其完成,並處理進程終止:
<code class="cpp">STARTUPINFO info = { sizeof(info) }; PROCESS_INFORMATION processInfo; if (CreateProcess("C:\path\to\my.exe", NULL, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo)) { WaitForSingleObject(processInfo.hProcess, INFINITE); CloseHandle(processInfo.hProcess); CloseHandle(processInfo.hThread); }</code>
此程式碼將啟動指定的EXE,等待其完成,然後正確關閉所有句柄,確保適當的清理和資源重新分配。
以上是如何在 C 中使用 ::CreateProcess 啟動和管理 Windows 執行檔?的詳細內容。更多資訊請關注PHP中文網其他相關文章!