首頁 >後端開發 >C++ >如何使用 CreateProcess() 從另一個 C .exe 啟動 .exe 檔案?

如何使用 CreateProcess() 從另一個 C .exe 啟動 .exe 檔案?

Barbara Streisand
Barbara Streisand原創
2024-10-30 04:03:02575瀏覽

How to Launch an .exe File from Another C   .exe Using CreateProcess()?

使用CreateProcess() 從C 開啟.exe 檔案

當旨在從另一個C .exe 啟動.exe 檔案時, system () 函數通常不鼓勵使用,因為它在安全性、效率和防毒相容性方面有潛在缺陷。

相反,請考慮使用 CreateProcess() 函數,它允許您產生一個新進程來執行目標.exe獨立檔案。以下是示範其用法的範例:

<code class="c++">#include <windows.h>

VOID startup(LPCTSTR lpApplicationName)
{
  STARTUPINFO si;
  PROCESS_INFORMATION pi;

  ZeroMemory(&si, sizeof(si));
  si.cb = sizeof(si);
  ZeroMemory(&pi, sizeof(pi));

  CreateProcess(lpApplicationName, argv[1], NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi);

  CloseHandle(pi.hProcess);
  CloseHandle(pi.hThread);
}</code>

將 .exe 檔案的絕對路徑作為 lpApplicationName 參數傳遞給此函數。

對先前程式碼進行故障排除

在使用system() 的原始程式碼中,您遇到的錯誤可能是由於缺少OpenFile.exe 的路徑造成的。確保指定的 .exe 檔案存在於您提供給 system() 或 CreateProcess() 的路徑中。

以上是如何使用 CreateProcess() 從另一個 C .exe 啟動 .exe 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn