2012-01-16 109 views
5

我试图让我的python脚本在启动时运行,但我得到错误信息windowserror访问被拒绝,但我应该能够使程序在启动时启动,因为我每次运行teamviewer(我下载的第三方程序)都会重新启动我的电脑,所以我知道我应该可以让我的程序在启动时运行(我可能会做一些不同的事情,所以如果你能够阐明一下teamviewer的不同做法,让它的脚本在启动时运行,有用)。如何将python脚本添加到启动注册表中?

这里是我的脚本

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') 

任何输入赞赏。

+3

你为什么不干脆在你的启动文件夹添加呢?如果'.py'文件与python解释器相关联,那应该可以正常工作 – wim 2012-01-16 06:17:10

+0

您的意思是“当我登录到我的电脑时运行”或“在后台运行”? py2exe可以用来创建计算机引导时运行的服务。如果您希望脚本运行您的用户帐户,请将脚本放入启动文件夹。 – 2012-01-16 06:37:58

回答

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

摆脱所有_winreg的东西。相反,你(假设双击py文件打开控制台)应该将它放在启动文件夹中(Windows 7上的C:\Users\yourusername\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup和XP中的C:\Documents and Settings\yourusername\Start Menu\Programs\Startup)。这是有效的,因为Windows试图打开启动文件夹中的所有文件,并且如果Python默认打开PY,Windows将打开Python控制台。尝试重新启动,这应该工作。

1

狒狒: 我有点迟到,但你好像在代码结束时忘记了sam。

当你打开你需要添加用户权限,如果你不_winreg默认为“READ”一键:

下面是从Python网站的一个片段 http://docs.python.org/2/library/_winreg.html#access-rights

SAM是一个整数,用于指定描述所需密钥安全访问的访问掩码。缺省值是KEY_READ。请参阅访问权限获取其他允许的值。

这里是代码更正:

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')