当前位置: 首页 > news >正文

启动golang项目编译的exe可执行文件获取windows管理员权限(UAC)

背景:

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

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

直接讲解决方法2

注意:前提go环境已经ok

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工具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

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

http://www.lryc.cn/news/35791.html

相关文章:

  • Springboot怎么快速集成Redis?
  • COM技术简单介绍
  • NetworkMiner网络取证分析工具(26)
  • Lombok 常用注解
  • SAP 生产订单和成本收集器在核算上的主要区别
  • Nginx-http-flv-module流媒体服务器搭建+模拟推流+flv.js在前端html和Vue中播放HTTP-FLV视频流
  • 【大数据处理与可视化】一 、大数据分析环境搭建(安装 Anaconda 3 开发环境)
  • Python3-输入和输出
  • Java后端通用接口设计
  • 万字长文带你走进MySql优化(系统层面优化、软件层面优化、SQL层面优化)
  • 云原生安全2.X 进化论系列|云原生安全2.X未来展望(4)
  • 认识进程 -了解进程调度
  • 第十届省赛——7外卖店优先级
  • 做自动化测试选择Python还是Java?
  • C#基础之基础语法(一)
  • 【JVM篇1】认识JVM,内存区域划分,类加载机制
  • CHAPTER 5 文件共享 - FTP
  • 【MySQL】将 CSV文件快速导入 MySQL 中
  • Ngnix安装教程(2023.3.8)
  • 【C语言】每日刷题 —— 牛客(2)
  • 关于算法的一些简单了解
  • mysql无法启动服务及其他问题总结
  • 数据库表字段命名规范
  • 23种设计模式-命令模式(android应用场景介绍)
  • vector你得知道的知识
  • 【C++进阶】四、AVL树(二)
  • React 服务端渲染
  • 【算法设计-搜索】回溯法应用举例(1)
  • C++基础了解-23-C++ 多态
  • 【GNN/深度学习】常用的图数据集(资源包)