Deleting a Windows Registry Value with Python
我想使用Python从Windows中的注册表中删除值,但我不明白python文档中的sub_key是什么:
我有以下代码,我想使用它:
1 2 3 4 5 6 7 | def del_env(name): key = OpenKey(HKEY_CURRENT_USER, 'Environment', 0, KEY_ALL_ACCESS) #SetValueEx(key, name, 0, REG_EXPAND_SZ, value) DeleteKey(key, ???) # what goes where the ??? are CloseKey(key) SendMessage( win32con.HWND_BROADCAST, win32con.WM_SETTINGCHANGE, 0, 'Environment') |
该功能应该用作
1 | del_env("SOMEKEY") |
p.S我忘了提,如果我使用:
1 | deleteKey(key,"") |
会话中的所有环境变量都将被删除...
提前致谢,
奥兹
我的荣耀失败了:
1 2 3 4 5 6 7 8 9 | : C:\etc\venus\current\bin>python.bat Python 2.4.4 (#0, Jun 5 2008, 09:22:45) [MSC v.1310 32 bit (Intel)] on win32 Type"help","copyright","credits" or"license" for more information. >>> import _winreg >>> key = _winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"Environment") >>> _winreg.DeleteKey(key,"OZ") Traceback (most recent call last): File"<stdin>", line 1, in ? WindowsError: [Errno 2] Das System kann die angegebene Datei nicht finden |
使用
1 2 3 4 5 6 | def del_env(name): key = OpenKey(HKEY_CURRENT_USER, 'Environment', 0, KEY_ALL_ACCESS) DeleteValue(key, name) CloseKey(key) SendMessage( win32con.HWND_BROADCAST, win32con.WM_SETTINGCHANGE, 0, 'Environment') |
我认为DeleteKey将父级带到您要删除的密钥,而sub_key是您要删除的密钥。 我不在Windows机器上,所以我现在无法测试它。
好,
不是Pythonic解决方案,但它的工作原理:
1 2 3 4 5 6 7 8 9 10 | C:\Documents and Settings\admin>reg add"%REGISTRY_KEY%\Environment" /v AME /t REG_EXPAND_SZ /d"%AME%" /f #REG DELETE KeyName [/v ValueName | /ve | /va] [/f] C:\Documents and Settings\admin>reg delete"%REGISTRY_KEY%\Environment" /v AME /f Der Vorgang wurde erfolgreich ausgeführt. |
成功...