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

2024-06-17 15:32:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在启动时运行我的python脚本,但得到了错误消息windowserror access denied,但是我应该能够让程序在启动时启动,因为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')

欢迎任何意见。


Tags: keyimport程序脚本消息access计算机错误
2条回答

狒狒: 我发得有点晚,但你好像把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')
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试图打开startup文件夹中的所有文件,如果Python默认打开PYs,Windows将打开Python控制台。尝试重新启动,应该可以。

相关问题 更多 >