AutoHotKey के साथ ऑटो चलाने के लिए विंडोज स्निपिंग टूल नहीं मिल सकता है


13

जब मैं PRINTSCREENAUTOHOTKEY के साथ अपना कीबोर्ड बटन दबाता हूं, तो मैं विंडोज 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

क्या आप किसी भी संयोग से विंडोज 7 का 64-बिट संस्करण चला रहे हैं?

विंडोज 7 (और साथ ही विस्टा मुझे विश्वास है) वोल्पी 64 फाइलसिस्टम रिडायरेक्शन कहलाता है। यदि यह मामला है, तो आप AHK को Sysnative निर्देशिका को इंगित करना चाहेंगे:

PrintScreen :: भागो, "C: \ Windows \ Sysnative \ SnippingTool.exe"

4

उपयोग

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

यह WoW64 फाइलसिस्टम पुनर्निर्देशन की सीमाओं के साथ निष्पादन योग्य को सही ढंग से कॉल करेगा


4

आप यह निर्धारित कर सकते हैं कि आपको Sysnative या Windows32 से SnippingTool.exe पर कॉल करने की आवश्यकता है या नहीं, इस आधार पर कि ऑटोहोट्की 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


मैं प्रयोग किया जाता है %A_WinDir%के बजाय %windir%साथ, #noEnvसेटिंग अक्षम।
जिग्गंजर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.