Запустите исполняемый файл exe, скомпилированный проектом golang, чтобы получить права администратора Windows (UAC).

фон:

После запуска кода go он включает в себя такие операции, как изменение IP-адреса, для чего требуются права администратора. Двойной щелчок по упакованному exe-файлу для его выполнения по умолчанию не дает прав администратора. Если вы измените IP-адрес, вам будет предложено запросить права администратора.

Решение 1. Щелкните правой кнопкой мыши, чтобы запустить exe-файл с правами администратора.Решение
2. При компиляции exe-файла автоматически запустится всплывающее окно с запросом на получение прав администратора.

Давайте поговорим непосредственно о решении 2

Примечание. Необходимая среда go уже в порядке.

1. Создайте новый файл nac.manifest в корневом каталоге проекта со следующим содержимым:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
            <security>
                <requestedPrivileges>
                    <requestedExecutionLevel level="requireAdministrator"/>
                </requestedPrivileges>
            </security>
    </trustInfo>
</assembly>

2. Установите инструмент rsrc и перейдите на github.com/akavel/rsrc.

3. Чтобы rsrc работал, его нужно скомпилировать под windows. Найдите github.com/akavel/rsrc на своем компьютере (например, выполните поиск местоположения напрямую через Evenything), откройте его с помощью терминала, введите go build, нажмите Enter для запуска, будет создан файл rsrc.exe.

4. Скопируйте rsrc.exe в каталог /bin/ каталога установки go, например C:\go\bin.

5. В случае, когда значок ico не требуется, а требуются только права администратора: rsrc -manifest nac.manifest -o nac.syso
В случае, когда значок ico требуется (подготовьте значок icon.ico и поместите его в корневой каталог проекта):rsrc -manifest nac.manifest -o nac.syso -ico icon.ico

6. Выполните следующую команду в корневом каталоге проекта, чтобы скомпилировать проект go в exe:

Пример:

go build -o <此处自定义可执行文件名称>.exe

:: Бесинтерфейсная компиляция: go build -ldflags="-w -s -H windowsgui" -o MVPTool.exe
:: Обычная компиляция (-ldflags="-w -s" используется для удаления отладочной информации)go build -ldflags="-w -s" -o MVPTool.exe

Вставьте сюда описание изображения
Дважды щелкните, чтобы запустить, и вам автоматически будет предложено получить права администратора.
Вставьте сюда описание изображения

Supongo que te gusta

Origin blog.csdn.net/qq_38923792/article/details/129419131
Recomendado
Clasificación