如何将python脚本添加到启动注册表?

时间:2012-01-16 06:09:01

标签: python startup startupscript winreg

我试图让我的python脚本在启动时运行但我得到错误消息windowserror访问被拒绝,但我应该能够让程序在启动时启动,因为teamviewer(我下载的第三方程序)运行每次我重新启动我的电脑,所以我知道我应该能够让我的程序在启动时运行(我可能会做一些不同的事情,所以如果你能解释一下teamviewer做什么不同以使其脚本在启动时运行这会很有帮助。)

这是我的剧本

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

赞赏任何意见。

2 个答案:

答案 0 :(得分: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 :(得分:1)

狒狒: 我发帖有点晚了,但你似乎在代码的末尾没有留下山姆了。

当您打开密钥时,您需要添加用户权限,如果您没有_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')
相关问题