首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何向AutoHotkey脚本添加管理员权限?

如何向AutoHotkey脚本添加管理员权限?
EN

Stack Overflow用户
提问于 2017-04-09 02:35:10
回答 2查看 9.4K关注 0票数 6

我将其编译为可执行文件,但要打开它,我必须右键单击并按“以管理员身份运行”。我想让它在每次运行时都请求管理员权限,但是该怎么做呢?

我不能这么做:

因为当我把它复制到另一台电脑上时它就不能工作了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-09 02:50:02

尝试将此代码添加到自动执行部分(脚本顶部):

代码语言:javascript
运行
复制
; If the script is not elevated, relaunch as administrator and kill current instance:

full_command_line := DllCall("GetCommandLine", "str")

if not (A_IsAdmin or RegExMatch(full_command_line, " /restart(?!\S)"))
{
    try ; leads to having the script re-launching itself as administrator
    {
        if A_IsCompiled
            Run *RunAs "%A_ScriptFullPath%" /restart
        else
            Run *RunAs "%A_AhkPath%" /restart "%A_ScriptFullPath%"
    }
    ExitApp
}

并重新编译脚本。

有关更多详细信息,请阅读https://autohotkey.com/docs/commands/Run.htm#RunAs

票数 16
EN

Stack Overflow用户

发布于 2018-12-10 03:53:07

下面是用于此目的的更简单的代码:

代码语言:javascript
运行
复制
#SingleInstance Force

if not A_IsAdmin

  Run *RunAs "%A_ScriptFullPath%"

如果它还没有以Admin身份运行,它将以Admin身份运行脚本。

如果您的脚本上没有管理员,它将询问您是否要将正在运行的脚本(而不是管理员)替换为#SingleInstance Force。因此,为了防止出现这种情况,请将提到的代码行添加到脚本的顶部。

如果您将来可能会编译您的脚本,最好使用此脚本,以使其面向未来:

代码语言:javascript
运行
复制
#SingleInstance Force

if !A_IsAdmin
    Run, % "*RunAs " (A_IsCompiled ? "" : A_AhkPath " ") Chr(34) A_ScriptFullPath Chr(34)

Chr(34)返回字符"

来源:https://www.autohotkey.com/boards/viewtopic.php?t=39647

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43298908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档