为我玩flash游戏的python程序

为我玩flash游戏的python程序,python,click,screenshot,Python,Click,Screenshot,是的,这就是我需要实现的目标,不要问为什么:) 因此,由于这主要是依赖操作系统的东西,我将使用Windows或Linux(更简单的) 我的程序每秒钟都会: 1.做一个屏幕截图,分析电路板和其他东西(我能做到) 2.然后将鼠标移动到某个XY并左键单击 这就是全部 我主要关心的是:是否有用于捕获屏幕截图然后在屏幕上单击鼠标左键的库?您可以尝试使用Selenium RC+python驱动程序进行Selenium。有制作浏览器屏幕截图的方法,还有获取坐标的ClickAt方法。使用ctypes和user3

是的,这就是我需要实现的目标,不要问为什么:) 因此,由于这主要是依赖操作系统的东西,我将使用Windows或Linux(更简单的) 我的程序每秒钟都会: 1.做一个屏幕截图,分析电路板和其他东西(我能做到) 2.然后将鼠标移动到某个XY并左键单击 这就是全部
我主要关心的是:是否有用于捕获屏幕截图然后在屏幕上单击鼠标左键的库?

您可以尝试使用Selenium RC+python驱动程序进行Selenium。有制作浏览器屏幕截图的方法,还有获取坐标的ClickAt方法。

使用ctypes和user32调用。这是第二部分:

from ctypes import *
windll.user32.SetCursorPos(x, y)
SendInput是模拟鼠标单击所需的工具,以下是单击所需的工具:

单击的代码如下(试用过,效果很好):


我以前做过这件事——使用PIL获取屏幕截图,使用pywinauto生成鼠标点击。

您能告诉我们一些您当前的编程经验吗?这将帮助我们找到有意义的答案。嘿!你能再详细说明一下你的问题吗?
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]))