Maison > développement back-end > Tutoriel Python > Comment masquer la fenêtre de la console lors de l'utilisation de « os.system() » ou « subprocess.call() » ?

Comment masquer la fenêtre de la console lors de l'utilisation de « os.system() » ou « subprocess.call() » ?

Susan Sarandon
Libérer: 2024-11-20 04:03:02
original
808 Les gens l'ont consulté

How to Hide the Console Window When Using `os.system()` or `subprocess.call()`?

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)
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal