2009-12-27 16 views
5

Jestem bardzo nowy dla Pythona. Próbuję napisać program, który kliknie myszą w (x, y), przenieś go do (a, b), a następnie poczekaj, aż kolor pod myszą będzie miał określony kolor, powiedzmy #fff. Gdy jest to kolor, kliknie ponownie, a następnie powtórzy.Symuluj kliknięcie myszy/wykryj kolor pod kursorem w Pythonie

Nie mogę znaleźć dobrego API dla rzeczy związanych z myszą dla Pythona.

+1

Możesz znaleźć informacje na temat kliknięcia tutaj: http://stackoverflow.com/questions/1181464/controlling-mouse-with-python – snw

Odpowiedz

6

Interfejs API do symulacji zdarzeń myszy zależy od platformy. Nie znam żadnego rozwiązania wieloplatformowego.

W systemie Windows można uzyskać dostęp do interfejsu Win32 API dzięki ctypes. patrz mouse_event on MSDN. Możesz być także zainteresowany pywinauto

Aby uzyskać kolor pod mysz, potrzebujesz pozycji myszy. Zobacz GetCursorPos on MSDN. Jeśli Twoja aplikacja ma interfejs API do uzyskiwania koloru w tej pozycji, możesz z niego skorzystać. Jeśli nie, możesz spróbować pobrać niewielką część ekranu wokół kursora i użyć PIL do uzyskania kolorów każdego piksela w tym obszarze. Myślę, że przechwytywanie ekranu PIL działa tylko na paltformie systemu Windows, ale nie jestem pewien.

używam następujących funkcji podobnej potrzebie:

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

jeśli jesteś na Windows, a następnie, do tego rodzaju rzeczy, naprawdę chcesz spróbować autohotkey. Nie jest to pyton, ale jest bardzo wydajny do wykonywania tego rodzaju rzeczy na komputerze z systemem Windows. Społeczność użytkowników jest również bardzo pomocna. Sprawdź forum "Poproś o pomoc".

Powiązane problemy