Golang设置windows注册表和系统网络代理

August 29, 2022 | 0 Minute Read

官方有一个修改注册表的库。
https://pkg.go.dev/golang.org/x/sys/windows/registry

修改windows系统代理,要修改注册表的这两个键 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable 整型类型 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer 字符串类型

func winEnableProxy(enable bool) {
	var proxyEnable uint32 = 0
	if enable {
		proxyEnable = 1
	}

	key, err := registry.OpenKey(registry.CURRENT_USER, `SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings`, registry.ALL_ACCESS)
	if err != nil {
		fmt.Println("Failed to open registry key", err)
		return
	}
	defer key.Close()

	err = key.SetDWordValue("ProxyEnable", proxyEnable)
	if err != nil {
		fmt.Println("Failed to set registry ProxyEnable", err)
		return
	}

	/*
		  err = key.SetStringValue("ProxyServer", "http://127.0.0.1:8000")
			if err != nil {
				fmt.Println("Failed to set registryProxyServer", err)
		    return
			}
	*/
}