2010-12-14 15 views

risposta

3

Non ho testato questo, ma vorrei creare un file batch che contiene "python yourfile.py" e metterlo nella cartella di avvio automatico.

+0

in cui è presente la cartella di avvio automatico è? – sam

+3

Su Windows 7 puoi trovarlo qui: C: \ Users \ {il mio utente} \ AppData \ Roaming \ Microsoft \ Windows \ Menu Avvio \ Programmi \ Avvio – LiMuBei

7

Nel seguente directory di avvio (almeno questo percorso esiste su Windows XP):

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

mettere un collegamento al vostro programma Python. Dovrebbe essere eseguito ogni volta che il sistema si avvia.

+1

Voglio farlo dalla riga di comando e la finestra 7 non dà il permesso scrivere. – sam

+0

@sam: Non so quale sia il percorso della cartella di avvio in Windows 7. Quello che ho dato come esempio è la cartella di avvio per tutti gli utenti. Ci dovrebbe esistere uno per ogni utente, e puoi mettere la scorciatoia lì. La scorciatoia può essere un semplice file 'bat' con contenuto' python path_to_your_python_program.py' – darioo

21

seconda di ciò che lo script sta facendo, è possibile:

  1. pacchetto in un servizio, che dovrebbe quindi essere installato
  2. aggiungerlo al Registro di sistema di Windows (HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Run)
  3. aggiungere un collegamento nella cartella di avvio del menu di avvio - la sua posizione potrebbe cambiare con la versione del sistema operativo, ma gli installatori hanno sempre qualche istruzione per mettere un collegamento in quella cartella
  4. utilizzare Windows' task scheduler, e quindi è possibile impostare l'attività su diversi tipi di eventi, incluso l'accesso e all'avvio.

La soluzione effettiva dipende dalle esigenze dell'utente e da ciò che lo script sta effettivamente facendo.
Alcune note sulle differenze:

  • Soluzione # 1 fa partire lo script con il computer, mentre la soluzione # 2 e # 3 inizio quando l'utente che ha installato accede
  • Vale anche la pena a. nota che # 1 inizia sempre lo script, mentre # 2 e # 3 inizieranno lo script solo su un utente specifico (penso che se si utilizza l'utente predefinito, esso inizierà su tutti, ma non sono sicuro dei dettagli) .
  • La soluzione n. 2 è un po 'più "nascosta" per l'utente, mentre la soluzione n. 3 lascia molto più controllo all'utente in termini di disabilitazione dell'avvio automatico.
  • Infine, la soluzione # 1 richiede diritti amministrativi, mentre gli altri due possono essere eseguiti da qualsiasi utente.
  • La soluzione n. 4 è qualcosa che ho scoperto ultimamente ed è molto semplice. L'unico problema che ho notato è che lo script python farà apparire una piccola finestra di comando.

Come potete vedere, tutto si riduce a ciò che si vuole fare; per esempio, se è qualcosa solo per i tuoi scopi, semplicemente lo trascinerei nella cartella di avvio.

In ogni caso, ultimamente mi sto appoggiando alla soluzione n. 4, come l'approccio più rapido e diretto.

+1

FYI: Se si utilizza pythonw.exe anziché python.exe per avviare lo script, non dovrebbe mostrare la finestra di comando. – Thor

0

provare ad aggiungere una voce a "HKLM/SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce". Tasto destro -> nuovo -> valore stringa -> aggiungi percorso file

+0

Qual è la differenza tra Run e RunOnce? –

+0

@Santosh Kumar Per impostazione predefinita, i valori delle chiavi del Registro di sistema RunOnce vengono eliminati immediatamente prima dell'esecuzione sulla riga di comando. https://msdn.microsoft.com/en-us/library/windows/desktop/aa376977(v=vs.85).aspx –

1

se si può semplicemente aggiungere il seguente codice al proprio script. Tuttavia, questo funziona solo su Windows!:

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) 

questa funzione crea un file bat nella cartella di avvio che esegue lo script.

il percorso file è il percorso del file che si desidera eseguire al momento dell'apertura del computer. puoi lasciarlo in bianco per aggiungere lo script in esecuzione all'avvio.

0

Si può mettere in run_script.cmd

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

Contenuto run_script.cmd

python path\to\your\script.py 
Problemi correlati