2012-01-16 78 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')