簡體   English   中英

使用Python刪除Windows注冊表值

[英]Deleting a Windows Registry Value with Python

我想使用Python從Windows中的注冊表中刪除值,但我不明白python文檔中的sub_key是什么:

我有以下代碼,我想使用它:

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')

該功能應該用作

del_env("SOMEKEY")

ps我忘了提,如果我使用:

deleteKey(key,"")

會話中的所有環境變量都將被刪除...

提前謝謝,奧茲

我的榮耀失敗了:

: 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

使用DeleteValue而不是DeleteKey作為評論中提到的DeleteKey

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解決方案,但它的工作原理:

   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.

成功...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM