मैं AutoHotkey के माउस इवेंट्स को फ़िल्टर करने के लिए कैसे ट्विक कर सकता हूं?


0

मैं एक महत्वपूर्ण संयोजन के रूप में लिखा है ~XButton1 & XButton2::। जब मैं संयोजन को दबाता हूं, तो XButton1ईवेंट फ़िल्टर नहीं किया जाता है। यह तब हो सकता है, उदाहरण के लिए, मेरे ब्राउज़र को एक पृष्ठ वापस जाने के लिए जब मैं यह नहीं चाहता।

डॉक्स के अनुसार, ~वसीयत को हटाने से बाकी सिस्टम पर कीज़ को पास नहीं किया जाएगा। जब मैं ऐसा करता हूं, हालांकि, XButton1सिस्टम को कभी पास नहीं किया जाता है, चाहे मैं कॉम्बो खत्म करूं या नहीं।

यहां वह व्यवहार है जो मैं देखना चाहता हूं:

AHk को पहले XButton1ईवेंट को बफ़र करना चाहिए जब वह पुनः प्राप्त हो। अगर मैं प्रेस करता हूं XButton2, तो सिस्टम को कुछ भी नहीं करना चाहिए। लेकिन, अगर मैं प्रेस नहीं करता हूं, तो XButton2एक त्वरित XButton1डाउन-एंड भेजें ।

क्या इस व्यवहार को पाने का कोई तरीका है?

जवाबों:


0

जैसा कि AutoHotkey दस्तावेज़ीकरण में & के बारे में बताया गया है , a & bपैटर्न का उपयोग करने से aकुंजी अपने मूल कार्य को खो देती है। aजब इसे अकेले उपयोग किया जाता है, तो रिलीज़ पर मुख्य काम करने के लिए , आप एक हॉटकी बना सकते हैं जो अपने आप में जैसे नक्शे पर वापस आता है a::Send {a}

आपके मामले में, आप कुछ इस तरह की कोशिश कर सकते हैं

XButton1 & XButton2:: जो तुम्हे चाहिये
XButton1::Send {XButton1}


यही था वह। मुझे यकीन नहीं है कि मैं उस सेक्शन को कैसे याद करूंगा। धन्यवाद!
zildjohn01

0

आपको KeyWait फ़ंक्शन और A_PriorHotKey और A_TimeSincePriorHotkey चर के साथ खेलने का प्रयास करना चाहिए, जैसा कि KeyWait प्रलेखन के उदाहरण # 4 में बताया गया है ।

; Example #4: Detects when a key has been double-pressed (similar to double-click).
; KeyWait is used to stop the keyboard's auto-repeat feature from creating an unwanted
; double-press when you hold down the RControl key to modify another key.  It does this by
; keeping the hotkey's thread running, which blocks the auto-repeats by relying upon
; #MaxThreadsPerHotkey being at its default setting of 1.
; Note: There is a more elaborate script to distinguish between single, double, and
; triple-presses at the bottom of the SetTimer page.

~RControl::
if (A_PriorHotkey <> "~RControl" or A_TimeSincePriorHotkey > 400)
{
    ; Too much time between presses, so this isn't a double-press.
    KeyWait, RControl
    return
}
MsgBox You double-pressed the right control key.
return
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.