Masquer la console avec os.system() et subprocess.call()
Utiliser os.system() ou subprocess.call( ) peut être pratique pour exécuter des commandes système à partir de scripts Python. Cependant, ces fonctions entraînent souvent l'apparition d'une fenêtre de console, ce qui peut s'avérer indésirable. Il existe plusieurs techniques pour supprimer ce comportement.
Utilisation de la structure STARTUPINFO
La classe subprocess.STARTUPINFO permet de contrôler le comportement de démarrage des sous-processus. En définissant l'indicateur STARTF_USESHOWWINDOW et en spécifiant SW_HIDE comme indicateur de fenêtre d'affichage, vous pouvez empêcher la création de la fenêtre de console :
import subprocess si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW si.wShowWindow = subprocess.SW_HIDE subprocess.call('taskkill /F /IM exename.exe', startupinfo=si)
Utilisation des indicateurs de création
Alternativement, vous pouvez définir les indicateurs de création de l'appel du sous-processus pour désactiver explicitement la fenêtre création :
import subprocess from ctypes import windll subprocess.call('taskkill /F /IM exename.exe', creationflags=windll.kernel32.CREATE_NO_WINDOW)
Dissocier le processus enfant
Pour détacher complètement le processus enfant de la console, vous pouvez utiliser l'indicateur DETACHED_PROCESS :
import subprocess from ctypes import windll subprocess.call('taskkill /F /IM exename.exe', creationflags=windll.kernel32.DETACHED_PROCESS)
Cette méthode supprime les handles de la console de l'enfant et l'empêche d'hériter de la console du parent.
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!