餐饮加盟网站怎么做,华为云虚拟主机,网站开发要学些什么,北京代理记账1 后台键鼠操作
组合键不生效#xff0c;并且按键按下会触发两次#xff0c;不知道为什么#xff1f;有大佬知道了#xff0c;请指教一下#xff01;
import time
import win32api
import win32con
import win32guiclass VirtualKeyboard:def __init__(self, hwnd):self…1 后台键鼠操作
组合键不生效并且按键按下会触发两次不知道为什么有大佬知道了请指教一下
import time
import win32api
import win32con
import win32guiclass VirtualKeyboard:def __init__(self, hwnd):self.hwnd hwndself.hwnd_title win32gui.GetWindowText(hwnd)# 模拟一次按键的输入间隔值默认0.1Sdef key_press(self, key: str, interval0.1):key ord(key.upper())win32api.PostMessage(self.hwnd, win32con.WM_KEYDOWN, key, 0)time.sleep(interval)win32api.PostMessage(self.hwnd, win32con.WM_KEYUP, key, 0)# 模拟一个按键的按下def key_down(self, key: str):key ord(key.upper())win32api.PostMessage(self.hwnd, win32con.WM_KEYDOWN, key, 0)# 模拟一个按键的弹起def key_up(self, key: str):key ord(key.upper())win32api.PostMessage(self.hwnd, win32con.WM_KEYUP, key, 0)# 模拟鼠标的移动def mouse_move(self, x, y):x int(x)y int(y)point win32api.MAKELONG(x, y)win32api.PostMessage(self.hwnd, win32con.WM_MOUSEMOVE, None, point)# 模拟鼠标的按键抬起def mouse_up(self, x, y, buttonL):x int(x)y int(y)button button.upper()point win32api.MAKELONG(x, y)if button L:win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, point)elif button R:win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONUP, win32con.MK_RBUTTON, point)# 模拟鼠标的按键按下def mouse_down(self, x, y, buttonL):x int(x)y int(y)button button.lower()point win32api.MAKELONG(x, y)if button L:win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, point)elif button R:win32api.PostMessage(self.hwnd, win32con.WM_RBUTTONDOWN, win32con.MK_RBUTTON, point)# 模拟鼠标的左键双击def mouse_double(self, x, y):x int(x)y int(y)point win32api.MAKELONG(x, y)win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONDBLCLK, win32con.MK_LBUTTON, point)win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, point)# 模拟鼠标移动到坐标并进行左键单击def mouse_move_press(self, x, y):x int(x)y int(y)point win32api.MAKELONG(x, y)win32api.PostMessage(self.hwnd, win32con.WM_MOUSEMOVE, None, point)win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, point)win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, point)# 模拟鼠标移动到坐标并进行左键双击def mouse_move_press_double(self, x, y):x int(x)y int(y)point win32api.MAKELONG(x, y)win32api.PostMessage(self.hwnd, win32con.WM_MOUSEMOVE, None, point)win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONDBLCLK, win32con.MK_LBUTTON, point)win32api.PostMessage(self.hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, point)if __name__ __main__:# 1.根据窗口标题获取句柄通过标题查找仅返回一个顶层窗口的句柄不支持模糊查询try:# 获取窗口句柄handle win32gui.FindWindow(Notepad, None) # 通过窗口标题获取窗口句柄print(窗口句柄是{}.format(handle))vkb VirtualKeyboard(67626)# vkb.mouse_move(100,100)vkb.mouse_move_press(50, 50)vkb.key_press(A)except Exception as e:print(窗口句柄获取失败{}.format(e))