Autohotkey KeyWait, या () का उपयोग कैसे करें?


0

मैक्रो "OR MButton" के बिना काम कर रहा है। मैं दोनों का उपयोग कैसे कर सकता हूं?

Loop
{
    KeyWait, RButton OR MButton
    KeyWait, RButton OR MButton, D
    CoordMode, Pixel, Window
    PixelSearch, FoundX, FoundY, 258, 762, 258, 762, 0x000402, 0, Fast RGB
    If ErrorLevel
        Break
    If ErrorLevel = 0
    {
        Send, {2}
        Sleep, 200
    }
}

1
क्या आप चाहते हैं कि किसी एक बटन को दबाने के बाद PixelSearch को निष्पादित किया जाए?
user3419297

[प्रलेखन] को देखते हुए आप केवल अपेक्षित पैरामीटर के रूप में एक कुंजी नहीं रख सकते। आपको सामान्य कुंजी प्रेस की जांच करने के लिए एक स्वतंत्र लूप की आवश्यकता होगी और जब भी आप जिस पर प्रतिक्रिया करना चाहते हैं उसे जांचें।
Seth

if बटन दबाएं, 2. if बटन दबाएं, भेजें 2. जो मैं करना चाहता हूं। PixelSearch {2} के लिए नियंत्रण मुक्त है या नहीं। कैसा पाश?
Marco Polo

जवाबों:


1

ऐसा लगता है कि आपको वास्तव में लूप (??) की आवश्यकता नहीं है।

क्या आप सिर्फ ट्रिगर करना चाहते हैं RButton या MButton, और क्लिक के अनुसार एक बार कुछ निष्पादित करें?

~RButton::MyFunction()  ; Remove ~ to make these calls block the clicks from passing through
~MButton::MyFunction()  ; otherwise, leave in place to block clicks and send "2" instead

MyFunction() {
    PixelSearch, FoundX, FoundY, 258, 762, 258, 762, 0x000402, 0, Fast RGB
    If ErrorLevel
        Return

    Send, 2         ; Else if ErrorLevel was = 0, send "2"... shouldn't need brackets unless sending a special key
    ;Sleep, 200     ; Sleep only needed if executing lots of sends in a row or similar
}

मैं फ़ंक्शन (ऊपर) का उपयोग करना पसंद करता हूं इसलिए कोड अधिक मॉड्यूलर है।

आप हॉटकीज़ के विशिष्ट अनुक्रमिक निष्पादन का उपयोग करके उनके बिना एक ही काम कर सकते हैं (नीचे):

~RButton::  ; These will execute sequential code below...
~MButton::

    PixelSearch, FoundX, FoundY, 258, 762, 258, 762, 0x000402, 0, Fast RGB
    If ErrorLevel
        Return

    Send, 2         ; Else if ErrorLevel was = 0, send "2"... shouldn't need brackets unless sending a special key
    ;Sleep, 200     ; Sleep only needed if executing lots of sends in a row or similar

Return

यदि आप "2" बार-बार भेजना चाहते थे MButton या RButton नीचे आप एक लूप का उपयोग कर सकते थे (कुछ अपने मूल कोड की तरह)। यह तब तक निष्पादित होगा जब तक कि एक या दूसरे बटन को क्लिक नहीं किया गया और नीचे रखा गया:

~RButton::MyFunction()  ; Remove ~ to make these calls block the clicks from passing through
~MButton::MyFunction()  ; otherwise, leave in place to block clicks and send "2" instead

MyFunction() {
    ; Check to see if button is still down each loop iteration...
    While GetKeyState("P", "RButton") || GetKeyState("P", "MButton") {
        PixelSearch, FoundX, FoundY, 258, 762, 258, 762, 0x000402, 0, Fast RGB
        If ErrorLevel {
            Sleep 10
            Continue
        }

        Send, 2         ; Else if ErrorLevel was = 0, send "2"... shouldn't need brackets unless sending a special key
        Sleep, 200      ; Sleep only needed if executing lots of sends in a row or similar

    } 
}

wuw आदमी तुम जानते हो कि तुम क्या कर रहे हो
Marco Polo
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.