2010-01-19 10 views
29

मैं बेवकूफ नहीं हूं ... वास्तव में। कैसे आप एक कुंजी क्रम मैप करते हैं (उदा: Ctrl +क्यू, एफ) AutoHotkey में।ऑटोहॉटकी कुंजी अनुक्रम, न केवल एकल कुंजी हॉटकी

मैं Ctrl +क्यू नीचे मिल गया है:

^q:: 

मैं भी एफ मिल गया है:

f:: 

मदद फ़ाइलों में उदाहरण भी बताएंगे कि कैसे करने के लिए एक पंक्ति में दो कीस्ट्रोक करें:

Numpad0 & Numpad1:: 

लेकिन यह सिर्फ साथ काम नहीं करेंगे:

^q & f :: 

या इनमें से किसी भी या तो:

LCtrl & q & f:: 
^q & ^f:: 
^q^f:: 
^qf:: 

मैं एक कुंजी क्रम कुछ ट्रिगर कैसे पूरा करते हैं, जब उन कुंजियों में से एक Ctrl है कुंजी? मैंने इसके बजाय एक हॉटस्ट्रिंग का उपयोग करने में देखा, लेकिन उस संदर्भ में Ctrl चरित्र को शामिल करने के तरीके को कैसे काम नहीं कर सका!

उत्तर

25

ठीक है; इस सवाल का जवाब हो रहा है:

^q:: 
Input Key, L1 
if Key=f 
...some code here... 
return 
+1

मैंने इसे अतीत में एक प्रभावी लेकिन बदसूरत तरीके से संभाला है। मुझे आपके दृष्टिकोण को बेहतर पसंद है, और अच्छे कुंजी-अनुक्रम मेनू बनाने के लिए प्रोग्रेस कमांड के साथ इसे जोड़ दिया है, जैसे कि मैं ब्राउज़र लॉन्च करने के लिए उपयोग करता हूं ** [यहां] (https: //gist.github।com/ajkerrigan/a0e54dbdd5fb3dea5113) **। बेहतर तरीके से धन्यवाद! – ajk

+1

यह कुछ कोशिशों के बाद मेरी ctrl कुंजी को गड़बड़ कर दिया, इसलिए उदाहरण के लिए मैं अब ctrl-shift-escape को दबा नहीं सकता – BornToCode

3

या आप इसे इस तरह कर सकते हैं:

q & f:: 
    if GetKeyState("Control") { 
     ; Do something 
     return 
    } 
    return 

मुझे लगता है कि यह ऊपर में के रूप में इनपुट कुंजी का उपयोग कर, एल 1 से थोड़ा अधिक पठनीय है।

+5

एम्पर्सेंड नोटेशन के लिए दोनों कुंजी ** ** ** पर दोनों कुंजी को दबाए जाने की आवश्यकता है। कैप्स में, ओपी "अनुक्रम" निर्दिष्ट करता है, इसलिए यह उत्तर काम नहीं करेगा। – horta

1

यह CTRL + एफ फैल जाती है। यदि क्यू उस पल में आयोजित किया जाता है, तो आपका कोड आग लग जाता है।

^f:: 
    If GetKeyState("q", "p") { 
     MsgBox test 
    } Else { 
     Send ^f 
    } 
return 
+2

ओपी को चाबियों का अनुक्रम आवश्यक था। इस जवाब के साथ एक साथ कुंजी स्ट्रोक की आवश्यकता है। – horta

5

मामले में किसी को एक समान बात की तलाश में है, लेकिन वास्तव में चाहते हैं Ctrlक्यू + Ctrlएफ और केवलCtrl भर (हां, तो कुछ के लिए, यह आयोजित किया जाता है, तो कंट्रोलक्यू + एफ), तो यहां यह कैसे करें:

$Ctrl::Send {Ctrl Down} 
$Ctrl UP:: 
    ChordIsBroken := True 
    Send {Ctrl Up} 
    Return 
^q:: 
    ChordIsBroken := False 
    Input, OutputVar, L1 M 
    If (!ChordIsBroken && Asc(OutputVar) = 6) 
    { 
     MsgBox "Hello, World!" 
    } 
    Else 
    { 
     SendInput %OutputVar% 
    } 
    Return 

मेरी व्याख्या के लिए https://superuser.com/a/725303/145431 देखें।

संबंधित मुद्दे