Windows snipping aracı AutoHotKey ile otomatik olarak çalıştırılamıyor


13

PRINTSCREENAUTOHOTKEY ile klavye düğmesine bastığımda Windows 7 keskin nişancı aracını çalıştırmaya çalışıyorum.

Yine de başarısız oldum. İşte AutoHotKey komut dosyası için ne var.

Bunu denedim

PRINTSCREEN::Run, c:\windows\system32\SnippingTool.exe

ve bu

PRINTSCREEN::Run, SnippingTool.exe

ve bu

PRINTSCREEN::Run, SnippingTool

Ve tüm bunlar bana temelde dosyayı bulamadığını söyleyen bir hata veriyor, ancak dosya yolu doğru görünüyor, bir pencereye yapıştırabilir ve snipping aracını açar, neden işe yaramayacağına dair herhangi bir fikir var mı?


İşte AHK dosyamın tam kodu ...

;
; 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

Yanıtlar:


17

Şans eseri Windows 7'nin 64 bit sürümünü mü kullanıyorsunuz?

Windows 7 (inandığım Vista'nın yanı sıra) WoW64 Dosya Sistemi Yeniden Yönlendirme olarak adlandırılanı uygular. Bu durumda AHK'yı Sysnative dizinine yönlendirmek istersiniz:

PrintScreen :: Çalıştır, "C: \ Windows \ Sysnative \ SnippingTool.exe"

4

kullanım

PrintScreen :: Çalıştır C: \ Windows \ explorer.exe C: \ Windows \ system32 \ SnippingTool.exe

Bu, WoW64 Dosya Sistemi Yeniden Yönlendirmesinin sınırlarını içeren yürütülebilir dosyayı doğru şekilde çağıracaktır.


4

Autohotkey'in Wow64 işlemi olarak çalışıp çalışmadığına bağlı olarak SnippingTool.exe dosyasını Sysnative'den mi yoksa windows32'den mi çağırmanız gerektiğini belirleyebilirsiniz.

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 için daha fazla bilgi ve kaynak: http://www.autohotkey.com/community/viewtopic.php?t=22277


Kullandığım %A_WinDir%yerine %windir%sahip, #noEnvdevre dışı ortamda.
jiggunjer
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.