web-dev-qa-db-fra.com

Comment démarrer un fichier python au démarrage de Windows?

J'ai un fichier python et j'exécute le fichier.

Si Windows est arrêté et redémarré, comment puis-je exécuter ce fichier à chaque démarrage de Windows?

34
sam

Selon ce que fait le script, vous pouvez:

  1. empaquetez-le dans un service, qui devrait ensuite être installé
  2. l'ajouter au registre Windows (HKCU\Software\Microsoft\Windows\CurrentVersion\Run)
  3. ajoutez-y un raccourci dans le dossier de démarrage du menu Démarrer - son emplacement peut changer avec la version du système d'exploitation, mais les installateurs ont toujours des instructions pour mettre un raccourci dans ce dossier
  4. utilisez le planificateur de tâches de Windows, puis vous pouvez définir la tâche sur plusieurs types d'événements, y compris la connexion et le démarrage.

La solution réelle dépend de vos besoins et de ce que fait réellement le script.
Quelques notes sur les différences:

  • La solution n ° 1 démarre le script avec l'ordinateur, tandis que les solutions n ° 2 et n ° 3 le démarrent lorsque l'utilisateur qui l'a installé se connecte.
  • Il convient également de noter que # 1 démarre toujours le script, tandis que # 2 et # 3 démarrent le script uniquement sur un utilisateur spécifique (je pense que si vous utilisez l'utilisateur par défaut, il démarrera sur tout le monde, mais je ne suis pas sûr des détails).
  • La solution n ° 2 est un peu plus "cachée" pour l'utilisateur, tandis que la solution n ° 3 laisse beaucoup plus de contrôle à l'utilisateur en termes de désactivation du démarrage automatique.
  • Enfin, la solution n ° 1 nécessite des droits d'administration, tandis que les deux autres peuvent être effectuées par n'importe quel utilisateur.
  • La solution n ° 4 est quelque chose que j'ai découvert récemment et qui est très simple. Le seul problème que j'ai remarqué est que le script python fera apparaître une petite fenêtre de commande.

Comme vous pouvez le voir, tout se résume à ce que vous voulez faire; par exemple, si c'est quelque chose pour vos besoins uniquement, je le glisserais simplement dans le dossier de démarrage.

En tout cas, ces derniers temps, je me penche sur la solution n ° 4, comme l'approche la plus rapide et la plus simple.

39
rob

if peut simplement ajouter le code suivant à votre script. Néanmoins, cela ne fonctionne que sur les fenêtres!:

import getpass
USER_NAME = getpass.getuser()


def add_to_startup(file_path=""):
    if file_path == "":
        file_path = os.path.dirname(os.path.realpath(__file__))
    bat_path = r'C:\Users\%s\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup' % USER_NAME
    with open(bat_path + '\\' + "open.bat", "w+") as bat_file:
        bat_file.write(r'start "" %s' % file_path)

cette fonction crée un fichier bat dans le dossier de démarrage qui exécute votre script.

le chemin_fichier est le chemin d'accès au fichier que vous souhaitez exécuter à l'ouverture de votre ordinateur. vous pouvez le laisser vide afin d'ajouter le script en cours d'exécution au démarrage.

10
tzadok

Dans le répertoire de démarrage suivant (au moins ce chemin existe sous Windows XP):

C:\Documents and Settings\All Users\Start Menu\Programs\Startup

mettez un raccourci vers votre programme python. Il doit être exécuté à chaque démarrage de votre système.

7
darioo

Je n'ai pas testé cela, mais je créerais un fichier de commandes contenant "python yourfile.py" et le placerais dans le dossier de démarrage automatique.

3
LiMuBei

Vous pouvez mettre run_script.cmd dans

C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Contenu de run_script.cmd

python path\to\your\script.py
0
Rahul

essayez d'ajouter une entrée dans "HKLM/SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce". Clic droit -> nouveau -> valeur de chaîne -> ajouter le chemin du fichier

0
RedDeath