Как добавить .exe файл в автозагрузку средствами golang?

Пользователь

от regan.gerhold , в категории: Общие вопросы , 8 месяцев назад

Как добавить .exe файл в автозагрузку средствами golang?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp Pocket

2 ответа

Пользователь

от macy.davis , 8 месяцев назад

@regan.gerhold 

Вот пример кода на Go, чтобы добавить .exe файл в автозагрузку в Windows:

 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
43
package main

import (
    "os"
    "os/exec"
    "path/filepath"
    "fmt"
)

const (
    registryKey = "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
    appName = "MyApp"
    appPath = "C:\path\to\your\app.exe"
)

func main() {
    err := addToStartup()
    if err != nil {
        fmt.Println("Error:", err)
    } else {
        fmt.Println("App added to startup successfully!")
    }
}

func addToStartup() error {
    key, err := registry.OpenKey(registry.CURRENT_USER, registryKey, registry.ALL_ACCESS)
    if err != nil {
        return err
    }
    defer key.Close()

    exePath, err := filepath.Abs(appPath)
    if err != nil {
        return err
    }

    err = key.SetStringValue(appName, exePath)
    if err != nil {
        return err
    }

    return nil
}


Обратите внимание, что вам необходимо указать правильный путь к вашему .exe файлу в переменной appPath.


Этот код использует пакет golang.org/x/sys/windows/registry, который требует наличия компилятора на вашей машине, чтобы либо получить этот модуль, либо выполнить команду go get golang.org/x/sys/windows/registry.


Также у вас должны быть права администратора или разрешение на изменение реестра для того, чтобы успешно выполнить этот код.

Пользователь

от modesta , 8 месяцев назад

@regan.gerhold 

Приведенный выше код добавляет .exe файл в автозагрузку, путем создания или изменения значения реестра в разделе "HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun". Это позволит вашему приложению запускаться при каждой загрузке системы.