ホームページ >バックエンド開発 >C++ >CreateProcess() を使用して別の C .exe から .exe ファイルを起動するにはどうすればよいですか?

CreateProcess() を使用して別の C .exe から .exe ファイルを起動するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-30 04:03:02571ブラウズ

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>

この関数の lpApplicationName 引数として .exe ファイルへの絶対パスを渡します。

前のコードのトラブルシューティング

system() を使用した元のコードで発生したエラーは、OpenFile.exe へのパスがないことが原因である可能性があります。指定した .exe ファイルが system() または CreateProcess() に指定したパスに存在することを確認してください。

以上がCreateProcess() を使用して別の C .exe から .exe ファイルを起動するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。