Demande d'élévation UAC et détection à partir d'un script Python
Pour copier des fichiers sur Windows Vista à partir d'un script Python, il est nécessaire d'élever le nom de l'utilisateur privilèges pour contourner le contrôle de compte d’utilisateur (UAC). Voici une méthode accessible pour y parvenir :
Demande d'élévation UAC :
import ctypes, sys def is_admin(): try: return ctypes.windll.shell32.IsUserAnAdmin() except: return False if not is_admin(): # Re-run the program with admin rights ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)
Ce code vérifie si le script s'exécute avec des privilèges élevés. Sinon, il relance le script avec les droits d'administrateur.
Détection UAC :
Si la demande d'élévation UAC n'est pas réalisable, vous pouvez détecter si le script est élevé ou non. :
if is_admin(): # Code that requires elevated privileges else: print("Error: Script must be run with elevated privileges.") sys.exit()
Cette approche permet de gérer le manque d'élévation avec élégance ou d'afficher un message d'avertissement au utilisateur.
Avantages de la méthode proposée :
Pour plus d'informations, consultez la documentation de l'API ShellExecute appeler.
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!