Невозможно автоматически запустить средство для удаления Windows с помощью AutoHotKey
Я пытаюсь заставить работать снайперский инструмент Windows 7, когда я нажимаю кнопку PRINTSCREEN на клавиатуре AUTOHOTKEY.
Я был неудачным до сих пор, хотя. Вот что у меня есть для скрипта AutoHotKey.
Я пробовал это
PRINTSCREEN::Run, c:\windows\system32\SnippingTool.exe
и это
PRINTSCREEN::Run, SnippingTool.exe
и это
PRINTSCREEN::Run, SnippingTool
И все они дают мне ошибку, которая в основном говорит, что он не может найти файл, однако путь к файлу кажется правильным, я могу скопировать, вставить его в окно, и он открывает инструмент для разрезания, есть идеи, почему он не будет работать?
Вот полный код моего файла AHK...
;
; AutoHotkey Version: 1.x
; Language: English
; Platform: Win7
; Author: Jason Davis <friendproject@>
;
; Script Function:
; Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder)
;
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
/*
PRINTSCREEN = Will run Windows 7 snipping tool
*/
PRINTSCREEN::Run, c:\windows\system32\SnippingTool.exe
return
4 ответа
Вы случайно не используете 64-битную версию Windows 7?
Windows 7 (как и Vista, я считаю) реализует так называемое перенаправление файловой системы WoW64. Если это так, вам нужно указать AHK на каталог Sysnative:
PrintScreen :: Выполнить, "C: \ Windows \ Sysnative \ SnippingTool.exe"
Использование
PrintScreen:: Запустить C:\Windows\explorer.exe C:\Windows\system32\SnippingTool.exe
Это будет правильно вызывать исполняемый файл в границах перенаправления файловой системы WoW64
Вы можете определить, нужно ли вам вызывать SnippingTool.exe из Sysnative или из windows32, основываясь на том, работает ли autohotkey как процесс Wow64 или нет.
PrintScreen::LaunchSnippingTool()
; Determines if we are running a 32 bit program (autohotkey) on 64 bit Windows
IsWow64Process()
{
hProcess := DllCall("kernel32\GetCurrentProcess")
ret := DllCall("kernel32\IsWow64Process", "UInt", hProcess, "UInt *", bIsWOW64)
return ret & bIsWOW64
}
; Launch snipping tool using correct path based on 64 bit or 32 bit Windows
LaunchSnippingTool()
{
if(IsWow64Process())
{
Run, %windir%\Sysnative\SnippingTool.exe
}
else
{
Run, %windir%\system32\SnippingTool.exe
}
}
Больше информации и источника для IsWow64Process здесь: http://www.autohotkey.com/community/viewtopic.php?t=22277
Использовать
PrintScreen::Send #+s
Windows+ Shift+ S— это короткая клавиша по умолчанию в Windows.