python绑定游戏窗口模拟键盘鼠标操作方法64位32位通用

python绑定游戏窗口模拟键盘鼠标操作方法
工具
python 64位和32位都可以
引用模块
import win32gui
import win32api,win32con
一、例子

import win32gui
import win32api,win32con
hwnd = win32gui.FindWindow('MainWindow', None)  # 通过'MainWindow'窗口类名获取窗口句柄   类名可通过第三方软件获取窗口类名
win32gui.SetActiveWindow(hwnd) #激活窗口
rect=win32gui.GetWindowRect(hwnd)  #获取窗口坐标(左、右、宽,高)
win32api.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, win32api.MAKELONG(x, y))  # 模拟鼠标按下(x,y)为坐标
win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, 0, win32api.MAKELONG(x, y))  # 模拟鼠标释放(x,y)为坐标
#win32api.SendMessage(hwnd, win32con.WM_MOUSEMOVE, win32con.MK_LBUTTON, win32api.MAKELONG(x, y)) # 鼠标移动需要时使用

二、获取子窗口句柄如下:

# win32gui.FindWindow(类名,标题) 获取父级窗口句柄
Hand1 = win32gui.FindWindow('LDPlayerMainFrame','雷电模拟器(64)')
print(Hand1)
# win32gui.FindWindowEx(父级窗口句柄,None,类名,标题) 获取子级窗口句柄
Hand2 = win32gui.FindWindowEx(Hand1,None,'RenderWindow', 'TheRender')
print(Hand2)

三、使用win32gui发送消息

def send_text(hwnd, text):
    win32gui.SendMessage(hwnd, win32con.WM_SETTEXT, None, text) #hwnd为窗口句柄,text为需要发送的文字内容

四、向窗口中插入图片

import win32clipboard, win32con, win32gui
def set_clipboard_image(image_path):
    win32clipboard.OpenClipboard()
    win32clipboard.EmptyClipboard()
    image = Image.open(image_path)
    data = image.tobytes()
    bdata = bytes([0])
    formats = [win32clipboard.RegisterClipboardFormat('PNG')]
    win32clipboard.SetClipboardData(win32clipboard.CF_DIB, (bdata, data))
    win32clipboard.CloseClipboard()

def insert_image(hwnd, x, y):
    win32api.SetForegroundWindow(hwnd)
    set_clipboard_image(image_path)
    lParam = win32api.MAKELONG(x, y)
    win32api.SendMessage(hwnd, win32con.WM_PASTE, None, None)

其中,image_path代表要插入的图片路径,x和y代表图片的坐标。先使用Pillow库(Python图片处理库,需单独安装)读取待插入的图片,将其转换为字节数组,并将数据设置为剪贴板的内容。之后再使用SendMessage函数向指定窗口发送“粘贴”命令即可插入图片。

你可能感兴趣的:(python,python,游戏,计算机外设)