golang.zx2c4.com/wireguard/windows@v0.5.4-0.20230123132234-dcc0eb72a04b/conf/admin_windows.go (about) 1 /* SPDX-License-Identifier: MIT 2 * 3 * Copyright (C) 2019-2022 WireGuard LLC. All Rights Reserved. 4 */ 5 6 package conf 7 8 import "golang.org/x/sys/windows/registry" 9 10 const adminRegKey = `Software\WireGuard` 11 12 var adminKey registry.Key 13 14 func openAdminKey() (registry.Key, error) { 15 if adminKey != 0 { 16 return adminKey, nil 17 } 18 var err error 19 adminKey, err = registry.OpenKey(registry.LOCAL_MACHINE, adminRegKey, registry.QUERY_VALUE|registry.WOW64_64KEY) 20 if err != nil { 21 return 0, err 22 } 23 return adminKey, nil 24 } 25 26 func AdminBool(name string) bool { 27 key, err := openAdminKey() 28 if err != nil { 29 return false 30 } 31 val, _, err := key.GetIntegerValue(name) 32 if err != nil { 33 return false 34 } 35 return val != 0 36 }