启动golang项目编译的exe可执行文件获取windows管理员权限(UAC)
迪丽瓦拉
2024-05-31 10:50:10
0

背景:

go代码启动以后里面涉及到修改ip地址等操作,需要管理员权限。打包好的exe文件双击执行默认是没有管理员权限的,那么修改ip就会提示需要管理员权限。

解决方法1:右键以管理员权限运行exe文件
解决方法2:编译exe的时候,就带上自动执行获取管理员权限的弹窗提示

直接讲解决方法2

注意:前提go环境已经ok

1.项目根目录下新建nac.manifest文件,内容为:



2.安装rsrc工具go get github.com/akavel/rsrc

3.要使rsrc生效,需要在windows下编译。在电脑上找到github.com/akavel/rsrc(例如通过Evenything直接搜索位置),使用Terminal打开,输入go build, 回车运行,将生成rsrc.exe

4.复制rsrc.exe到go安装目录的/bin/ 目录下,例如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

在这里插入图片描述
双击运行就会自动提示需要获取管理员权限
在这里插入图片描述

相关内容