Ouverture d'un fichier .exe à partir de C à l'aide de CreateProcess()
Lorsque vous souhaitez lancer un fichier .exe à partir d'un autre .exe C, le La fonction system() est généralement déconseillée en raison de ses inconvénients potentiels liés à la sécurité, à l'efficacité et à la compatibilité antivirus.
Envisagez plutôt d'utiliser la fonction CreateProcess(), qui vous permet de générer un nouveau processus pour exécuter la cible. fichier .exe indépendamment. Voici un exemple illustrant son utilisation :
<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>
Transmettez le chemin absolu du fichier .exe comme argument lpApplicationName à cette fonction.
Dépannage du code précédent
Dans votre code d'origine utilisant system(), l'erreur que vous avez rencontrée résultait probablement de l'absence de chemin vers OpenFile.exe. Assurez-vous que le fichier .exe spécifié existe dans le chemin que vous fournissez à system() ou CreateProcess().
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!