2009-12-27 7 views
5

में कर्सर के नीचे माउस क्लिक/रंग का अनुकरण करें मैं पाइथन के लिए बहुत नया हूं। मैं एक प्रोग्राम लिखने की कोशिश कर रहा हूं जो माउस (x, y) पर माउस पर क्लिक करेगा, इसे (ए, बी) पर ले जायेगा, और उसके बाद तब तक प्रतीक्षा करें जब तक कि माउस के नीचे रंग एक निश्चित रंग न हो, तो #fff कहें। जब वह रंग होता है, तो यह फिर से क्लिक करता है और फिर दोहराता है।पाइथन

मुझे पाइथन के लिए माउस से संबंधित सामान के लिए एक अच्छा एपीआई नहीं मिल रहा है।

+1

आप यहां क्लिक करने पर कुछ जानकारी पा सकते हैं: http://stackoverflow.com/questions/1181464/controlling-mouse-with-python – snw

उत्तर

6

माउस घटनाओं को अनुकरण करने के लिए एपीआई आपके प्लेटफॉर्म पर निर्भर करता है। मुझे कोई क्रॉस-प्लेटफ़ॉर्म समाधान नहीं पता है।

विंडोज़ पर, आप Win32 API धन्यवाद ctypes तक पहुंच सकते हैं। mouse_event on MSDN देखें। आपको pywinauto

माउस के नीचे रंग प्राप्त करने के लिए, आपको माउस की स्थिति की आवश्यकता हो सकती है। GetCursorPos on MSDN देखें। फिर यदि आपके ऐप में इस स्थिति में रंग प्राप्त करने के लिए एक एपीआई है तो आप इसका उपयोग कर सकते हैं। यदि नहीं, तो आप कर्सर के चारों ओर स्क्रीन के एक छोटे हिस्से को पकड़ने और इस क्षेत्र में प्रत्येक पिक्सेल के रंग प्राप्त करने के लिए PIL का उपयोग करने का प्रयास कर सकते हैं। मुझे लगता है कि पीआईएल स्क्रीन कैप्चर केवल विंडोज पॉल्टफॉर्म पर काम कर रहा है लेकिन मुझे यकीन नहीं है।

मैं एक ऐसी ही जरूरत के लिए निम्नलिखित समारोह का उपयोग कर रहा:

def grab_main_color(self, rect, max_colors=256): 
    """returns a tuple with the RGB value of the most present color in the given rect""" 
    img=ImageGrab.grab(rect) 
    colors = img.getcolors(max_colors) 
    max_occurence, most_present = 0, 0 
    try: 
     for c in colors: 
      if c[0] > max_occurence: 
       (max_occurence, most_present) = c 
     return most_present 
    except TypeError: 
     raise Exception("Too many colors in the given rect") 
-1

यदि आप Windows पर हैं, तो, बात इस तरह का के लिए, तुम सच में autohotkey कोशिश करना चाहते हैं। यह अजगर नहीं है, लेकिन यह विंडोज मशीन पर इस तरह की चीज करने के लिए बेहद शक्तिशाली है। उपयोगकर्ता समुदाय भी बहुत उपयोगी है। उनके "मदद के लिए पूछें" मंच देखें।