Heim  >  Artikel  >  Backend-Entwicklung  >  Wie starte ich eine EXE-Datei von einer anderen C-EXE-Datei mit CreateProcess()?

Wie starte ich eine EXE-Datei von einer anderen C-EXE-Datei mit CreateProcess()?

Barbara Streisand
Barbara StreisandOriginal
2024-10-30 04:03:02495Durchsuche

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

Öffnen einer .exe-Datei von C mit CreateProcess()

Wenn Sie eine .exe-Datei von einer anderen C-.exe starten möchten, wird die Von der system()-Funktion wird im Allgemeinen abgeraten, da sie potenzielle Nachteile in Bezug auf Sicherheit, Effizienz und Antivirenkompatibilität mit sich bringt.

Erwägen Sie stattdessen die Verwendung der CreateProcess()-Funktion, mit der Sie einen neuen Prozess zum Ausführen des Ziels erzeugen können .exe-Datei unabhängig voneinander. Hier ist ein Beispiel, das seine Verwendung demonstriert:

<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>

Übergeben Sie den absoluten Pfad zur .exe-Datei als lpApplicationName-Argument an diese Funktion.

Fehlerbehebung beim vorherigen Code

In Ihrem ursprünglichen Code, der system() verwendet, ist der aufgetretene Fehler wahrscheinlich auf das Fehlen eines Pfads zu OpenFile.exe zurückzuführen. Stellen Sie sicher, dass die angegebene .exe-Datei in dem Pfad vorhanden ist, den Sie für system() oder CreateProcess() angeben.

Das obige ist der detaillierte Inhalt vonWie starte ich eine EXE-Datei von einer anderen C-EXE-Datei mit CreateProcess()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn