96 votes

Comment lancer 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 fois que Windows démarre ?

81voto

Roberto Liffredo Points 15265

Selon ce que fait le script, vous pouvez :

  1. l'emballer dans un service, qui doit ensuite être installé
  2. l'ajouter au registre de Windows (HKCU \Software\Microsoft\Windows\CurrentVersion\Run )
  3. ajoutez 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 programmes d'installation contiennent toujours des instructions pour placer un raccourci dans ce dossier.
  4. utiliser le planificateur de tâches de Windows, et ensuite vous pouvez définir la tâche sur plusieurs types d'événements, y compris l'ouverture de session et le démarrage.

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

  • La solution n°1 lance le script avec l'ordinateur, tandis que les solutions n°2 et n°3 le lancent lorsque l'utilisateur qui l'a installé se connecte.
  • Il convient également de noter que le #1 lance toujours le script, tandis que les #2 et #3 ne lanceront le script que sur un utilisateur spécifique (je pense que si vous utilisez l'utilisateur par défaut alors il se lancera 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 réalisées par n'importe quel utilisateur.
  • La solution n° 4, que j'ai découverte récemment, est très simple. Le seul problème que j'ai remarqué est que le script de python fait apparaître une petite fenêtre de commande.

Comme vous pouvez le constater, tout dépend de ce que vous voulez faire ; par exemple, s'il s'agit de quelque chose qui ne sert qu'à vous, je le ferai simplement glisser dans le dossier de démarrage.

Quoi qu'il en soit, ces derniers temps, je penche pour la solution n° 4, qui est l'approche la plus rapide et la plus simple.

27voto

tzadok Points 110

Vous pouvez simplement ajouter le code suivant à votre script. Néanmoins, cela ne fonctionne que sur Windows !

import getpass
import os
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éera un fichier bat dans le dossier de démarrage qui exécutera votre script.

le site file_path 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.

1 votes

Pourquoi y a-t-il un "" après start . Je pensais que ça devait être autour du %s pour gérer les espaces, mais lorsque j'ai essayé, cela n'a pas fonctionné (j'ai juste ouvert une invite de commande).

0 votes

Il y a une erreur, à la ligne 2 de la fonction add_to_startup.

0 votes

Os.path.dirname renvoie le chemin du dossier au lieu d'inclure le chemin du fichier, mais cela peut facilement être corrigé.

22voto

Szczerski Points 49
  • cliquez sur Win+R

  • type shell:startup

  • glisser et déposer votre fichier python my_script.py

    • si vous n'avez pas besoin de la console : changer l'extension de my_script.py à my_script.pyw
    • autre : créer run_my_script.cmd avec du contenu : python path\to\your\my_script.py

10voto

darioo Points 23903

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

mettre un raccourci vers votre programme python. Il doit être exécuté à chaque fois que votre système démarre.

1 votes

Je veux faire cela à partir de la ligne de commande et la fenêtre 7 ne donne pas la permission d'écrire.

1 votes

@sam : Je ne sais pas quel est le chemin du dossier de démarrage dans Windows 7. Ce que j'ai donné comme exemple est le dossier de démarrage pour tous les utilisateurs. Il devrait en exister un pour chaque utilisateur, et vous pouvez y placer le raccourci. Le raccourci peut être un simple bat fichier avec le contenu python path_to_your_python_program.py

1 votes

Ne s'exécute qu'à la connexion, et non au démarrage de Windows

10voto

LiMuBei Points 669

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

Sous Windows 7, vous pouvez le trouver ici :

%APPDATA%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

4 votes

Run(WinKey + R) -> shell:common startup

1 votes

Ne s'exécute qu'à la connexion, et non au démarrage de Windows

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X