Comment créer un processus qui n’est pas un enfant de son processus de création?

J’ai deux processus, A et B. À un moment donné, A crée B. Après la création de B, si l’ arbre de processus de A est tué, je veux que B soit toujours présent.

J’utilise CreateProcess () pour créer B, et je n’arrive pas à trouver le moyen de créer le processus sans qu’il soit un enfant. Même chose avec ShellExecuteEx (), mais je manque probablement un drapeau.

Est-ce que quelqu’un sait ce que je pourrais utiliser pour faire cela?

EDIT: J’ai oublié de mentionner que les deux processus ont besoin d’un HANDLE ou d’un identifiant de processus pour l’autre

Vous pouvez essayer ce processus Un processus de création C, qui crée le processus B, puis le processus C sera immédiatement terminé (terminé). Dans un processus B, il existe uniquement des informations sur le processus parent direct (identifiant de processus de C qui n’est pas plus actif) et non pas sur le processus A. Donc, si l’arbre de processus A est supprimé

Par exemple, vous démarrez Process Explorer (voir http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx ) puis démarrez Total Commander. Depuis Total Commander, vous lancez cmd.exe. Depuis cmd.exe, vous démarrez notepad.exe. Ensuite, tapez “exit” dans le fichier cmd.exe. Après avoir terminé cmd.exe, vous pouvez voir que notepad.exe ne sera plus affiché sous Total Commander (totalcmd.exe). Après avoir sélectionné dans Process Explorer “Kill Process Tree” pour Total Commander (totalcmd.exe), vous pouvez voir que notepad.exe rest actif.

Vous pouvez définir le paramètre dwcreationflags en tant que DETACHED_PROCESS dans l’API createprocess.