Maison  >  Article  >  développement back-end  >  Comment lancer un fichier .exe à partir d’un autre .exe C à l’aide de CreateProcess() ?

Comment lancer un fichier .exe à partir d’un autre .exe C à l’aide de CreateProcess() ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-30 04:03:02495parcourir

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

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn