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 ?

7voto

Rahul Points 4204

Vous pouvez mettre run_script.cmd dans

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

Contenu du fichier run_script.cmd

python path\to\your\script.py

0 votes

Cela ne fonctionne pas seulement à la connexion ?

3 votes

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

3voto

scjv Points 1
import winreg

def set_autostart_registry(app_name, key_data=None, autostart: bool = True) -> bool:
    """
    Create/update/delete Windows autostart registry key

    ! Windows ONLY
    ! If the function fails, OSError is raised.

    :param app_name:    A string containing the name of the application name
    :param key_data:    A string that specifies the application path.
    :param autostart:   True - create/update autostart key / False - delete autostart key
    :return:            True - Success / False - Error, app name dont exist
    """

    with winreg.OpenKey(
            key=winreg.HKEY_CURRENT_USER,
            sub_key=r'Software\Microsoft\Windows\CurrentVersion\Run',
            reserved=0,
            access=winreg.KEY_ALL_ACCESS,
    ) as key:
        try:
            if autostart:
                winreg.SetValueEx(key, app_name, 0, winreg.REG_SZ, key_data)
            else:
                winreg.DeleteValue(key, app_name)
        except OSError:
            return False
    return True

def check_autostart_registry(value_name):
    """
    Check Windows autostart registry status

    ! Windows ONLY
    ! If the function fails, OSError is raised.

    :param value_name:  A string containing the name of the application name
    :return: True - Exist / False - Not exist
    """

    with winreg.OpenKey(
            key=winreg.HKEY_CURRENT_USER,
            sub_key=r'Software\Microsoft\Windows\CurrentVersion\Run',
            reserved=0,
            access=winreg.KEY_ALL_ACCESS,
    ) as key:
        idx = 0
        while idx < 1_000:     # Max 1.000 values
            try:
                key_name, _, _ = winreg.EnumValue(key, idx)
                if key_name == value_name:
                    return True
                idx += 1
            except OSError:
                break
    return False

Créer un démarrage automatique :

set_autostart_registry('App name', r'C:\test\x.exe')

Mise à jour du démarrage automatique :

set_autostart_registry('App name', r'C:\test\y.exe')

Supprimer le démarrage automatique :

set_autostart_registry('App name', autostart=False)

Vérifiez le démarrage automatique :

if check_autostart_registry('App name'):

1voto

RedDeath Points 23

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

1voto

Noel Points 11
  1. Créer un fichier exe, j'utilise pyinstaller "yourCode.py".

  2. Ajoutez le fichier d'exécution à votre clé de registre : https://cmatskas.com/configure-a-runonce-task-on-Windows/

0voto

rajat prakash Points 75

Toutes les méthodes mentionnées ci-dessus n'ont pas fonctionné, je les ai toutes essayées. Je vais vous présenter une solution plus simple et une alternative au planificateur de tâches de Windows.

Créez un fichier .bat avec le contenu suivant "ADRESSE DE VOTRE INTERPRÈTEUR DE PROJET" "ADRESSE DE VOTRE PYTHON script AVEC LE NOM DE script".

Enregistrez ce fichier bat dans le dossier de démarrage de la fenêtre (par défaut caché). FYI : pour trouver le dossier de démarrage de la fenêtre appuyez sur windos+r puis type shell:startup -- cela vous mènera directement au dossier de démarrage

copiez-y le fichier bat avec les 2 adresses suivantes dans le même format , Ensuite, il suffit de redémarrer le système ou de l'éteindre et de le faire démarrer.

Le code s'exécutera automatiquement dans les 20 secondes suivant l'ouverture.

Remercie-moi plus tard

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