AutoHotKeyを使用してWindowsスニッピングツールを自動実行できない


13

PRINTSCREENAUTOHOTKEYでキーボードボタンを押すと、Windows 7スナイピングツールを実行しようとしています。

私はこれまでのところ失敗しました。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

回答:


17

64ビットバージョンのWindows 7を実行していますか?

Windows 7(および私が信じるVista)は、WoW64 Filesystem Redirectionと呼ばれるものを実装しています。この場合、AHKにSysnativeディレクトリを指定する必要があります。

PrintScreen :: Run、「C:\ Windows \ Sysnative \ SnippingTool.exe」

4

使用する

PrintScreen :: Run C:\ Windows \ explorer.exe C:\ Windows \ system32 \ SnippingTool.exe

これにより、WoW64ファイルシステムリダイレクトの境界で実行可能ファイルが正しく呼び出されます。


4

autohotkeyがWow64プロセスとして実行されているかどうかに基づいて、Sysnativeまたはwindows32からSnippingTool.exeを呼び出す必要があるかどうかを判断できます。

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


%A_WinDir%代わりに%windir%#noEnv設定を無効にして使用しました。
ジグガンジャー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.