2012-08-10 96 views
0

我想創建一個python程序來輕鬆更改我的cmd啓動文件夾(而不是鍵入cd ...導航到所需的文件)
但首先我需要弄清楚無需將regedit.exe輸入到cmd即可更改它。
通過Python文檔會後這是我的了:Python:以編程方式更改Cmd啓動文件夾

from winreg import* 

a=OpenKey(HKEY_CURRENT_USER,"Software\Microsoft\Command Processor\\") 
SetValue(HKEY_CURRENT_USER,"Software\Microsoft\Command Processor\\",REG_SZ,"cd\\the path that I want.") 

此代碼編輯字符串值(我相信這就是其所謂的)默認。
但我需要做的是編輯字符串值自動運行
#我嘗試了不同的方式將Autorun放在該SetValue函數,但它沒有奏效。
注意:Default和Autorun都在HKEY_CURRENT_USER \ Software \ Microsoft \ Command Processor中。
我也試着

SetValueEx(a,"Autorun",0,REG_SZ,"cd\\The path that I wantsss.")#Don't know if this is the right way to use it. 

但是這給了我這個錯誤:

Traceback (most recent call last): 
    File "<pyshell#10>", line 1, in <module> 
    SetValueEx(a,"Autorun",0,REG_SZ,"cd\\The path that I wantsss.") 
WindowsError: [Error 5] Access is denied  

我使用Python 3.1和windows7
預先感謝您。

+0

嘗試使用SetValueEx代替。您可能需要使用由OpenKey返回的句柄作爲鍵。 (在線文檔說,SetValueEx的value_name參數是一個關鍵名稱,但我猜這是一個錯字。) – 2012-08-10 02:57:57

+0

@HarryJohnston我試過你的方式訪問被拒絕了。我是否需要讓管理員正確?做到這一點(注意:我是管理員)。 – user1544624 2012-08-13 12:51:28

+1

您必須指定KEY_WRITE或KEY_ALL_ACCESS作爲OpenKey的第四個參數。缺省值是KEY_READ,它爲您提供只讀訪問權限。 – 2012-08-13 19:18:22

回答

1

你必須使用SetValueEx,也有適當的訪問權限開關鍵,無論是KEY_WRITE或KEY_ALL_ACCESS,像這樣:

from winreg import* 

a=OpenKey(HKEY_CURRENT_USER,"Software\\Microsoft\\Command Processor",0,KEY_WRITE) 
SetValueEx(a,"Autorun",0,REG_SZ,"cd\\The path that I wantsss.") 
CloseKey(a)