Masquer la fenêtre de la console avec os.system() et subprocess.call()
En Python, utiliser des fonctions comme os.system( ) et subprocess.call() peuvent provoquer l'apparition d'une fenêtre de console. Cependant, il existe des méthodes pour empêcher cette fenêtre d'apparaître.
Utilisation de STARTUPINFO
L'objet sous-processus STARTUPINFO offre un moyen de masquer la fenêtre de la console. En définissant son champ dwFlags sur subprocess.STARTF_USESHOWWINDOW et wShowWindow sur subprocess.SW_HIDE, vous pouvez supprimer la fenêtre :
si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)
Désactivation de la création de fenêtre
Alternativement, vous pouvez utilisez le paramètre Creationflags pour désactiver directement la génération de fenêtres. L'utilisation de la constante CREATE_NO_WINDOW permet d'atteindre cet objectif :
CREATE_NO_WINDOW = 0x08000000 subprocess.call('taskkill /F /IM exename.exe', creationflags=CREATE_NO_WINDOW)
Éliminer complètement la console
Pour éradiquer complètement la console, pensez à utiliser DETACHED_PROCESS dans le paramètre Creationflags :
DETACHED_PROCESS = 0x00000008 subprocess.call('taskkill /F /IM exename.exe', creationflags=DETACHED_PROCESS)
Dans ce scénario, le processus enfant n'a pas de console, et ses handles standard sont définis sur 0. Vous pouvez les rediriger vers un fichier ou un canal, tel que subprocess.DEVNULL, à des fins de journalisation ou à d'autres fins.
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!