Question

J'ai deux processus, A et B. A un point A crée B. Après B est créé, si le processus de arbre est tué, je veux B soit toujours là.

J'utilise CreateProcess () pour créer B, et je ne peux pas sembler trouver un moyen de faire créer le processus sans qu'il soit un enfant. Même chose avec ShellExecuteEx (), mais je suis probablement un certain manque drapeau.

Quelqu'un sait-il ce que je pourrais utiliser pour le faire?

EDIT: J'ai oublié de mentionner que les deux processus ont besoin d'une poignée ou ID de processus à l'autre

Était-ce utile?

La solution

Vous pouvez essayer ce processus Un processus de création C, ce qui crée processus B et ensuite traiter C sera immédiatement terminé (fin). Dans un processus B il y a existe des informations que sur le processus parent direct (ID du processus de C qui n'est pas plus en cours d'exécution) et non sur le processus A. Donc, « si l'arbre de processus A est tué » le processus B restera probablement en cours d'exécution.

Par exemple, vous démarrez Process Explorer (voir http://technet.microsoft .com / fr-fr / Sysinternals / bb896653.aspx ) puis commencer à total Commander. Du Total Commander vous commencez cmd.exe. De cmd.exe vous commencez notepad.exe. Ensuite, tapez cmd.exe « exit ». Après la fin de cmd.exe vous pouvez voir que notepad.exe sera plus affiché sous Total Commander (totalcmd.exe). Une fois que vous choisissez dans Process Explorer « Kill Process Tree » pour le commandant totale (totalcmd.exe) vous pouvez voir que la course notepad.exe séjour.

Autres conseils

Vous pouvez définir les dwCreationFlags de paramaeter comme DETACHED_PROCESS dans l'API CreateProcess.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top