2012-08-10 93 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)