Maison  >  Article  >  développement back-end  >  Comment puis-je demander une élévation UAC pour mes scripts Python ?

Comment puis-je demander une élévation UAC pour mes scripts Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-25 16:21:11155parcourir

How Can I Request UAC Elevation for My Python Scripts?

Élévation UAC dans les scripts Python

Dans Windows Vista et les versions ultérieures, le contrôle de compte d'utilisateur (UAC) restreint certaines actions du système de fichiers pour empêcher les utilisateurs non autorisés modifications. Cela peut empêcher les scripts Python d'effectuer des opérations telles que la copie de fichiers.

Demande d'élévation UAC

Depuis 2017, un moyen pratique de demander une élévation UAC est le suivant :

import ctypes, sys

def is_admin():
    try:
        return ctypes.windll.shell32.IsUserAnAdmin()
    except:
        return False

if is_admin():
    # Code goes here
else:
    # Re-run with admin rights
    ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, " ".join(sys.argv), None, 1)

Si vous utilisez Python 2.x, remplacez la dernière ligne avec :

ctypes.windll.shell32.ShellExecuteW(None, u"runas", unicode(sys.executable), unicode(" ".join(sys.argv)), None, 1)

Cette méthode offre plusieurs avantages :

  • Aucune bibliothèque externe : Utilise uniquement des modules de bibliothèque standards comme ctypes et sys.
  • Compatibilité Python : Fonctionne à la fois pour Python 2 et 3.
  • Sans effort :Évite de modifier les ressources du fichier ou de créer des manifestes.
  • Exécution unique : L'exécution du code ne se duplique pas sans modification manuelle.
  • Accès à la valeur de retour API : Des codes de retour peuvent être obtenus en cas d'erreur manipulation.
  • Personnalisation de la méthode d'affichage :Modifiez le sixième paramètre pour ajuster l'affichage du processus de reproduction.

Cette méthode est particulièrement pratique car elle fournit une interface simple et portable. approche pour élever les autorisations UAC dans les scripts Python.

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!

Déclaration:
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