Ariver
2026-05-18 47e0419e81ee015b469cc9f2a891cad8fa505eec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//go:build windows
 
package startup
 
import (
    "fmt"
    "os"
 
    "golang.org/x/sys/windows/registry"
)
 
const registryKey = `SOFTWARE\Microsoft\Windows\CurrentVersion\Run`
const appName = "VoiceSnap"
 
func isEnabled() bool {
    key, err := registry.OpenKey(registry.CURRENT_USER, registryKey, registry.QUERY_VALUE)
    if err != nil {
        return false
    }
    defer key.Close()
 
    val, _, err := key.GetStringValue(appName)
    return err == nil && val != ""
}
 
func setEnabled(enable bool) error {
    key, err := registry.OpenKey(registry.CURRENT_USER, registryKey, registry.SET_VALUE)
    if err != nil {
        return fmt.Errorf("failed to open registry key: %w", err)
    }
    defer key.Close()
 
    if enable {
        exe, err := os.Executable()
        if err != nil {
            return err
        }
        return key.SetStringValue(appName, fmt.Sprintf(`"%s"`, exe))
    }
 
    return key.DeleteValue(appName)
}