作为管理员的 Autohotkey 运行 程序无法运行
Autohotkey run program as admin not working
我创建了一个 Autohotkey 脚本来打开 Anaconda 命令提示符。这样当我按 Ctrl+Numpad4
时,我会打开一个 anaconda 提示符。如果我按 Ctrl+Shift+Numpad4
anaconda 提示以管理员身份打开。我遵循了 autohotkey 论坛中的代码说明;但这似乎不起作用。这是我的代码:
^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+NumpadLeft::
RunAs, Administrator, #Mypassword
Run, "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
RunAs
^+Numpad4::
RunAs, Administrator, #MyPassword
Run, "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
RunAs
左边的小键盘和 4 只是为了涵盖打开或关闭数字锁定的两种可能情况。
我该怎么办?
此外,还有另一个小问题,即 anaconda 在与我的 autohotkey 脚本相同的目录中打开。我希望它在预先指定的目录中打开。我可以从 autohotkey 脚本本身执行此操作吗?通过创建批处理文件或添加任何其他代码段?
一些事情:
- 如果您希望 ahk 运行 作为管理员为您提供一些东西,您需要确保在 运行 设置它时让 AHK 请求提升权限。这可以通过将“运行as”部分替换为“运行 *运行as”来实现,例如,如果我试图提升一个我通常会用 [=31 调用的 cmd =]
run cmd
我可以 运行 通过调用
来提升它
Run *runas cmd
所以此时的脚本看起来很像
^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+NumpadLeft::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+Numpad4::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
要解决您的第二个问题,您可以通过 changing your working directory 更改脚本 运行 所在的目录。
例如,如果您想将工作目录更改为 C:\Users,您可以使用
SetWorkingDir, C:\Users
注意:使用提升时,工作目录可能会变回用户的默认值(对于管理员:C:\WINDOWS\system32)。要解决此问题,您可能需要将其他参数传递到 运行 命令本身,这些参数将特定于您尝试 运行 的程序(在本例中为 Anaconda)。我发现 this question 可以用不同的方法解决您的 Anaconda 问题。
因此,总而言之,您的脚本将如下所示:
SetWorkingDir, C:\Users ;replace this directory with the one that you actually want to use
^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+NumpadLeft::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+Numpad4::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
我创建了一个 Autohotkey 脚本来打开 Anaconda 命令提示符。这样当我按 Ctrl+Numpad4
时,我会打开一个 anaconda 提示符。如果我按 Ctrl+Shift+Numpad4
anaconda 提示以管理员身份打开。我遵循了 autohotkey 论坛中的代码说明;但这似乎不起作用。这是我的代码:
^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+NumpadLeft::
RunAs, Administrator, #Mypassword
Run, "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
RunAs
^+Numpad4::
RunAs, Administrator, #MyPassword
Run, "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
RunAs
左边的小键盘和 4 只是为了涵盖打开或关闭数字锁定的两种可能情况。
我该怎么办?
此外,还有另一个小问题,即 anaconda 在与我的 autohotkey 脚本相同的目录中打开。我希望它在预先指定的目录中打开。我可以从 autohotkey 脚本本身执行此操作吗?通过创建批处理文件或添加任何其他代码段?
一些事情:
- 如果您希望 ahk 运行 作为管理员为您提供一些东西,您需要确保在 运行 设置它时让 AHK 请求提升权限。这可以通过将“运行as”部分替换为“运行 *运行as”来实现,例如,如果我试图提升一个我通常会用 [=31 调用的 cmd =]
run cmd
我可以 运行 通过调用
来提升它Run *runas cmd
所以此时的脚本看起来很像
^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+NumpadLeft::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+Numpad4::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
要解决您的第二个问题,您可以通过 changing your working directory 更改脚本 运行 所在的目录。 例如,如果您想将工作目录更改为 C:\Users,您可以使用
SetWorkingDir, C:\Users
注意:使用提升时,工作目录可能会变回用户的默认值(对于管理员:C:\WINDOWS\system32)。要解决此问题,您可能需要将其他参数传递到 运行 命令本身,这些参数将特定于您尝试 运行 的程序(在本例中为 Anaconda)。我发现 this question 可以用不同的方法解决您的 Anaconda 问题。
因此,总而言之,您的脚本将如下所示:
SetWorkingDir, C:\Users ;replace this directory with the one that you actually want to use
^Numpad4:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^NumpadLeft:: Run "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+NumpadLeft::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"
^+Numpad4::Run *runas "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Anaconda3 (64-bit)\Anaconda Prompt (Anaconda).lnk"