管理员权限程序启动方案
管理员权限的启动程序对开发来说挺常见的,尤其在涉及注册表、系统文件操作的时候,不加权限直接卡壳。要是你也碰上类似问题,这篇文章就比较对路。用起来简单,兼容性也还不错,基本不用大改现有代码逻辑。
Windows 下的程序权限问题说白了就是系统默认不给你“高权限”,哪怕你是用 VS 开的。像写入C:\
目录、改注册表这些操作,没管理员权限根本跑不起来。最稳的做法就是在程序启动时求管理员权限,这篇文章就讲了怎么搞定。
推荐先看这篇 Qt 的,里面提到一个工具类,调用 ShellExecute 来重新启动程序,并加上runas
参数,操作系统就会弹出 UAC 对话框让你确认提升权限。链接在这:Qt 管理员权限工具。
要是你是搞C#
的,也有办法。文章里说通过在app.manifest
里设置requestedExecutionLevel
为requireAdministrator
,就能在启动时自动弹 UAC 窗口。链接也给你:C#如何以管理员权限向 C 盘写入文件。
Delphi的老项目也能用 UAC 资源文件搞定权限启动,具体怎么配置uac.RES
,可以戳这篇看:delphi 程序以管理员权限运行 uac.RES,挺实用的。
另外要注意,权限升上去后,路径、用户数据目录这些东西也会变化,比如%APPDATA%
会指向管理员用户的,不是当前登录的普通用户,调试时得留个心眼。
如果你写的是Electron
或者前端配合后端的权限管理
,可以看看vue
和React
的权限控制实现,跟 UI 权限、菜单权限打交道比较多,比如vue 权限管理 和 React 管理员教程。
,不同语言有不同方式实现管理员权限启动,选你熟的就行。如果你经常写需要动系统底层的代码,这类方法可以提前集成进去,省得临时抓瞎。
1.32KB
文件大小:
评论区