Maison >développement back-end >C++ >Comment lancer et contrôler des exécutables externes avec ::CreateProcess en C ?

Comment lancer et contrôler des exécutables externes avec ::CreateProcess en C ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-03 08:17:03940parcourir

How to Launch and Control External Executables with ::CreateProcess in C  ?

Lancement d'exécutables Windows avec ::CreateProcess en C

Lorsque vous travaillez avec Windows en C, il est nécessaire de comprendre comment lancer et contrôler efficacement exécutables externes. Une fonction cruciale à cet effet est ::CreateProcess.

Exemple : lancement et interaction avec des exécutables

Explorons un exemple qui couvre les exigences clés :

  • Lancement d'un fichier EXE
  • Surveillance de son exécution
  • Fermer correctement les handles une fois terminé

Considérez l'extrait de code suivant :

<code class="c++">STARTUPINFO info = { sizeof(info) };
PROCESS_INFORMATION processInfo;
if (CreateProcess(path, cmd, NULL, NULL, TRUE, 0, NULL, NULL, &info, &processInfo))
{
    WaitForSingleObject(processInfo.hProcess, INFINITE);
    CloseHandle(processInfo.hProcess);
    CloseHandle(processInfo.hThread);
}</code>

Ce code montre comment :

  1. Lancer un exécutable défini par le chemin et les arguments de ligne de commande potentiels dans cmd.
  2. Obtenir des informations sur le processus créé et son thread principal à l'aide de processInfo .
  3. Attendez indéfiniment la fin du processus à l'aide de WaitForSingleObject.
  4. Fermez le processus et les poignées de thread à l'aide de CloseHandle pour garantir un nettoyage correct.

En suivant cette approche, vous pouvez créer et gérer efficacement des sous-processus dans vos applications C.

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