2012-01-16 24 views
5

Estoy intentando hacer que mi script python se ejecute al arrancar pero recibo el mensaje de error denegado acceso a windowserror, pero debería poder hacer que los programas se inicien al arrancar porque teamviewer (un programa de terceros que descargué) se ejecuta cada vez que reinicio mi computadora, así que sé que debería ser capaz de hacer que mi programa se ejecute al inicio (aunque podría estar haciendo algo diferente, así que si pudiera arrojar algo de luz sobre lo que teamviewer está haciendo de manera diferente para ejecutar su script al inicio sería servicial).¿Cómo agrego un script de python al registro de inicio?

Aquí es mi guión

import _winreg, webbrowser 
key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run') 
_winreg.SetValueEx(key,'pytest',0,_winreg.REG_BINARY,'C:\Users\"USERNAME"\Desktop\test.py') 
key.Close() 
webbrowser.open('www.youtube.com') 

Cualquier entrada es apreciado.

+3

¿Por qué no sólo tiene que añadir en su carpeta de inicio? Si los archivos '.py' están asociados con el intérprete de Python, eso debería funcionar bien – wim

+0

¿Quiere decir" ejecutar esto cuando inicio sesión en mi computadora "o" ejecutar en segundo plano "? py2exe se puede utilizar para crear servicios que se ejecutan cuando se inicia la computadora. Poner su secuencia de comandos en la carpeta de inicio funciona si desea que se ejecute para su cuenta de usuario. –

Respuesta

5
import webbrowser 
webbrowser.open('www.youtube.com') 

Deshágase de todas esas cosas _winreg. En cambio, usted (suponiendo que haga doble clic en un archivo py abre la consola) simplemente debe colocarlo en su carpeta de inicio (C:\Users\yourusername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup en Windows 7 y C:\Documents and Settings\yourusername\Start Menu\Programs\Startup en XP). Esto funciona porque Windows intenta abrir todos los archivos en la carpeta de inicio, y si Python abre PYs por defecto, Windows abrirá la consola de Python. Intenta reiniciar, eso debería funcionar.

1

Babuino: Estoy un poco tarde publicando, pero pareces haber dejado el sam al final de tu código aquí.

Cuando se abre una llave es necesario agregar los derechos de los usuarios, si no _winreg valores por defecto de "leer":

Aquí hay un fragmento del sitio pitón http://docs.python.org/2/library/_winreg.html#access-rights

sam es un número entero que especifica una máscara de acceso que describe el acceso de seguridad deseado para la clave. El valor predeterminado es KEY_READ. Ver Derechos de acceso para otros valores permitidos.

Aquí está el código corregido:

import _winreg, webbrowser 
    key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,'Software\Microsoft\Windows\CurrentVersion\Run',_winreg.KEY_SET_VALUE) 
    _winreg.SetValueEx(key,'pytest',0,_winreg.REG_BINARY,'C:\Users\"USERNAME"\Desktop\test.py') 
    key.Close() 
webbrowser.open('www.youtube.com') 
Cuestiones relacionadas