2016-02-18 112 views
0

我在golang中編寫了一個代碼來刪除註冊表項中的一個密鑰,我的代碼如下。無法通過golang刪除註冊表項

k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\services`, registry.ALL_ACCESS) 
     if err != nil { 
      log.Println("ERROR::<Uninstall> Error in getting the registry values: ",err) 
     } 
     defer k.Close() 

     err=k.DeleteValue("MyKey") 
     if err != nil { 
      log.Println("ERROR::<Uninstall> Error occured while deleting the MyKey Details From the registry ",err) 
     } 

而且我的輸出是如下

2016/02/18 13:51:40 ERROR::<Uninstall> Error occured while deleting the MyKey Details From the registry The system cannot find the file specified. 

在此先感謝。

+0

這是非常清楚的錯誤消息告訴。 –

+0

我有一個關鍵的那個名字。我所要做的只是刪除密鑰。但我已經使用將刪除該值,但我不知道它是否可以刪除密鑰 –

回答

1

您可以使用registry.DeleteKey這是通過以下方式確定:

func DeleteKey(k Key, path string) error 

DeleteKey deletes the subkey path of key k and its values.

k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\services`, registry.ALL_ACCESS) 

if err != nil { 
    log.Fatal(err) 
} 
defer k.Close() 

err := registry.DeleteKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\services`)  
if err != nil { 
    log.Fatal(err) 
} 
+0

2016/02/18 15:35:58錯誤:: 刪除myKey註冊表值時出錯::訪問被拒絕。但我只用管理員權限運行該exe文件。 –

+0

這是另一個問題,它與您的原始問題並不嚴格相關。也許這有幫助:https://msdn.microsoft.com/en-us/library/windows/desktop/ms724878.aspx –