无法通过golang删除注册表项

Not able to delete the registry entry through 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.

提前致谢。

您可以使用按以下方式定义的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)
}

我没有得到任何东西,所以我改用 PowerShell。这是我的功能:

import("github.com/KnicKnic/go-powershell/pkg/powershell")

...


func delreg(service string) {
    reg := `HKLM:\SOFTWARE\WOW6432Node\Apache Software Foundation\Procrun 2.0\` + service
    color.Warn.Println("Will delete: " + reg)

    runspace := powershell.CreateRunspaceSimple()
    defer runspace.Close()
    GetService := (`Remove-Item -Path "` + reg + `" -Recurse`)
    results1 := runspace.ExecScript(GetService, false, nil)
    results1.Close()
}