Ground-Zerro / Phobos Public
Code Issues Pull requests Actions Releases View on GitHub ↗
718 B go
/* SPDX-License-Identifier: MIT
 *
 * Copyright (C) 2019-2026 WireGuard LLC. All Rights Reserved.
 */

package conf

import (
	"sync"

	"golang.org/x/sys/windows/registry"
)

const adminRegKey = `Software\Phobos`

var (
	adminKey     registry.Key
	adminKeyOnce sync.Once
	adminKeyErr  error
)

func openAdminKey() (registry.Key, error) {
	adminKeyOnce.Do(func() {
		adminKey, adminKeyErr = registry.OpenKey(registry.LOCAL_MACHINE, adminRegKey, registry.QUERY_VALUE|registry.WOW64_64KEY)
	})
	return adminKey, adminKeyErr
}

func AdminBool(name string) bool {
	key, err := openAdminKey()
	if err != nil {
		return false
	}
	val, _, err := key.GetIntegerValue(name)
	if err != nil {
		return false
	}
	return val != 0
}