无法通过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()
}
我在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()
}