Oui, c'est ce que j'ai besoin de réaliser, ne demandez pas pourquoi :) Donc, puisque ce sont principalement des choses dépendantes du système d'exploitation, je vais utiliser Windows ou Linux (quoi de plus simple) Chaque seconde mon programme va: 1. faire une capture d'écran, analyser le tableau et d'autres choses (ce que je peux faire) 2. puis déplacez la souris à un certain XY et faites un clic gauche c'est tout Ma principale préoccupation est: Y a-t-il une bibliothèque pour capturer des captures d'écran et puis cliquer gauche quelque part sur l'écran?programme python qui joue à des jeux flash pour moi
Répondre
Vous pouvez essayer d'utiliser le pilote Selenium RC + python pour Selenium. Il existe des moyens de faire une capture d'écran du navigateur, et il existe une méthode ClickAt qui prend des coordonnées.
Utilisez les types de caractères ctypes et les appels user32. Ceci est pour la deuxième partie:
from ctypes import *
windll.user32.SetCursorPos(x, y)
SendInput est la chose que vous cherchez pour simuler les clics de souris, voici exactement ce dont vous avez besoin pour cliquer: http://kvance.livejournal.com/985732.html
Le code de clic est le suivant (ai essayé, fonctionne très bien):
from ctypes import *
user32 = windll.user32
# START SENDINPUT TYPE DECLARATIONS
PUL = POINTER(c_ulong)
class KeyBdInput(Structure):
_fields_ = [("wVk", c_ushort),
("wScan", c_ushort),
("dwFlags", c_ulong),
("time", c_ulong),
("dwExtraInfo", PUL)]
class HardwareInput(Structure):
_fields_ = [("uMsg", c_ulong),
("wParamL", c_short),
("wParamH", c_ushort)]
class MouseInput(Structure):
_fields_ = [("dx", c_long),
("dy", c_long),
("mouseData", c_ulong),
("dwFlags", c_ulong),
("time",c_ulong),
("dwExtraInfo", PUL)]
class Input_I(Union):
_fields_ = [("ki", KeyBdInput),
("mi", MouseInput),
("hi", HardwareInput)]
class Input(Structure):
_fields_ = [("type", c_ulong),
("ii", Input_I)]
class POINT(Structure):
_fields_ = [("x", c_ulong),
("y", c_ulong)]
# END SENDINPUT TYPE DECLARATIONS
FInputs = Input * 2
extra = c_ulong(0)
click = Input_I()
click.mi = MouseInput(0, 0, 0, 2, 0, pointer(extra))
release = Input_I()
release.mi = MouseInput(0, 0, 0, 4, 0, pointer(extra))
x = FInputs((0, click), (0, release))
user32.SendInput(2, pointer(x), sizeof(x[0]))
Vérifiez également cela: http://code.google.com/p/pywinauto/ – soulseekah
Aussi: http://code.google.com/p/pymouse/ – soulseekah
Captures d'écran: http://www.pythonware.com /library/pil/handbook/imagegrab.htm – soulseekah
Je l'ai fait cette chose avant - utiliser PIL pour obtenir les captures d'écran et pywinauto pour générer les clics de souris.
Pourriez-vous nous faire part de votre expérience de programmation actuelle? Cela nous aidera à trouver des réponses qui ont du sens. – Tim
hey! pourriez-vous élaborer votre problème un peu plus? –