Masquage de la fenêtre de la console pendant os.system() ou subprocess.call()
Lors de l'exécution de commandes à l'aide de os.system() ou subprocess .call(), une fenêtre de console peut apparaître, perturbant le déroulement du programme. Cela peut être indésirable dans certains scénarios.
Comment masquer la fenêtre de la console
Pour empêcher la fenêtre de la console d'apparaître, plusieurs méthodes peuvent être utilisées :
Utilisation de STARTUPINFO
L'objet subprocess.STARTUPINFO permet de personnaliser divers attributs, y compris la visibilité de la fenêtre de console du processus enfant. En définissant le champ dwFlags pour inclure subprocess.STARTF_USESHOWWINDOW et wShowWindow sur subprocess.SW_HIDE (par défaut), la fenêtre de la console peut être masquée.
Définition des indicateurs de création
Alternativement, le paramètre Creationflags peut être utilisé pour désactiver directement la création d'une fenêtre de console. Définir Creationflags sur subprocess.CREATE_NO_WINDOW empêche le processus enfant d'avoir une fenêtre de console.
Forcer le détachement
Pour un contrôle plus complet, le sous-processus peut être forcé à ne pas avoir de console du tout en définissant Creationflags sur subprocess.DETACHED_PROCESS. Dans ce cas, les handles standard du processus enfant sont 0, mais ils peuvent être explicitement définis sur un fichier disque ou un canal ouvert selon les besoins.
Exemple :
import subprocess # Using STARTUPINFO si = subprocess.STARTUPINFO() si.dwFlags |= subprocess.STARTF_USESHOWWINDOW subprocess.call('taskkill /F /IM exename.exe', startupinfo=si) # Using creation flags subprocess.call('taskkill /F /IM exename.exe', creationflags=subprocess.CREATE_NO_WINDOW) # Forcing detachment subprocess.call('taskkill /F /IM exename.exe', creationflags=subprocess.DETACHED_PROCESS)
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!