Heim > Artikel > Backend-Entwicklung > Wie starte ich eine EXE-Datei von einer anderen C-EXE-Datei mit 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!