启动时以管理员身份运行 AHK 脚本

问题描述 投票:0回答:3

我有四个在启动时运行的 AHK 脚本,因为它们在我的启动文件夹中放置了快捷方式。我怎样才能让它们以管理员身份运行?

我尝试过的:

我尝试将它们的属性更改为以管理员身份运行,但它们就是不运行(当我这样做时)。

我尝试将其快捷方式的属性更改为以管理员身份运行,但它们也只是不运行(当我这样做时)。

我已经看过关于该主题的this reddit post,但我不知道如何在脚本中实现该代码。

我尝试创建一个基本的 C++ 应用程序,使用

system("start path\\to\\script")
运行它们,但它无法编译。

如果重要的话,有问题的脚本是 ahk-active-screenshotCtrlAlt_Switch.ahkKill.ahk 以及 此搜索脚本的修改版本。

admin autohotkey startup
3个回答
6
投票

您可以允许脚本自动化管理程序,而无需以管理员身份运行,以下是所需的步骤:

  1. 安装 AHK 时,选中“将‘使用 UI 访问运行’添加到上下文菜单”选项。
  2. 安装完成后,在磁盘上找到
    AutoHotkeyU64_UIA.exe
  3. 打开
    .ahk
    脚本的属性,将“打开方式”选项更改为您刚刚找到的
    AutoHotkeyU64_UIA.exe
  4. 创建此脚本的快捷方式。
  5. 在文件资源管理器中打开
    %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
  6. 将该快捷方式移至此文件夹。

你就完成了。


它是如何工作的?

“将‘使用 UI 访问权限运行’添加到上下文菜单”选项为常见的 UAC 相关问题提供了一种解决方法,允许脚本在不以管理员身份运行的情况下自动执行管理程序。

参考:使用 UI 访问运行


4
投票

在您的计算机上找到 autohotkey 的 UIA 版本。对我来说是

C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe

在您的启动文件夹中,创建一个新的快捷方式(可能为您想要的每个脚本创建一个),如下所示(根据需要替换路径):

  • 目标:“C:\Program Files\AutoHotkey\AutoHotkeyU64_UIA.exe”“D:\path o\script.ahk”
  • 开始于:“C:\Program Files\AutoHotkey”

这会在启动时使用 UIA 版本的 AHK 以管理员身份启动您的脚本。


0
投票

将此添加到脚本顶部:

If (!A_IsAdmin)  ; IF NOT Admin
{
    Run, *RunAs "%A_ScriptFullPath%"  ; Run script as admin
    ExitApp  ; Exit the current instance running without admin privileges
}
MsgBox, 262144, , Running with admin privileges!  ; Continue your code...
© www.soinside.com 2019 - 2024. All rights reserved.