马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
win32模拟鼠标操作
使用了pywin32库来模拟Windows环境下的鼠标和键盘操作。导入了须要的库,包括time用于停息执行,win32gui、win32api、win32con用于Windows GUI和API操作,以及ctypes中的windll用于调用Windows动态链接库。
- • 获取鼠标位置:get_mouse_pos 获取当前鼠标的坐标。
- • 移动鼠标:mouse_move 将鼠标光标移动到这个位置。
- • 鼠标点击:mouse_click 可以指定点击左键、右键或中键。
- • 键盘模拟:keyboard_send 模拟键盘按键的按下和开释。它可以处理惩罚单个按键的模拟,也可以处理惩罚组合键(如Ctrl+C)的模拟。
这个脚本可以用于主动化测试、游戏作弊、主动化任务等场景。
- import timeimport win32guiimport win32apiimport win32confrom ctypes import windllclassWindowHandle:def__init__(self): self.keys_dict ={'BACKSPACE':8,'TAB':9,'ENTER':13,'SHIFT':16,'CONTROL':17,'ALT':18,'PAUSE':19,'CAPSLOCK':20,'ESCAPE':27,'SPACE':32,'PAGEUP':33,'PAGEDOWN':34,'END':35,'HOME':36,'LEFT':37,'UP':38,'RIGHT':39,'DOWN':40,'PRINT':42,'INSERT':45,'DELETE':46,')':48,'!':49,'@':50,'#':51,'$':52,'%':53,'^':54,'&':55,'(':57,';':59,":":59,'=':61,'A':65,'B':66,'C':67,'D':68,'E':69,'F':70,'G':71,'H':72,'I':73,'J':74,'K':75,'L':76,'M':77,'N':78,'O':79,'P':80,'Q':81,'R':82,'S':83,'T':84,'U':85,'V':86,'W':87,'X':88,'Y':89,'Z':90,'WIN':91,'CONTEXTMENU':93,'0':96,'1':97,'2':98,'3':99,'4':100,'5':101,'6':102,'7':103,'8':104,'9':105,'*':106,'+':107,'-':109,'.':110,'/':111,'F1':112,'F2':113,'F3':114,'F4':115,'F5':116,'F6':117,'F7':118,'F8':119,'F9':120,'F10':121,'F11':122,'F12':123,'NUMLOCK':144,'SCROLLLOCK':145,'_':173,',':188,'<':188,'>':190,'?':191,'`':192,'~':192,'[':219,'{':219,'\\':220,'|':220,']':221,'}':221,"'":222,'"':222} self.win_wide = win32print.GetDeviceCaps(win32gui.GetDC(0), win32con.DESKTOPHORZRES) self.win_high = win32print.GetDeviceCaps(win32gui.GetDC(0), win32con.DESKTOPVERTRES) @staticmethoddefget_mouse_pos():""" 获取当前鼠标坐标 """return win32api.GetCursorPos() @staticmethoddefmouse_move(coordinates):""" 鼠标移动到制定坐标 :param coordinates: 坐标元组(x, y) """(x, y)= coordinates windll.user32.SetCursorPos(x, y) @staticmethoddefmouse_click(button='left'):""" 点击鼠标 :param button: left(左键)、right(右键)、middle(中间键) """ down_action = up_action =Noneif button =='left': down_action = win32con.MOUSEEVENTF_LEFTDOWN up_action = win32con.MOUSEEVENTF_LEFTUPelif button =='right': down_action = win32con.MOUSEEVENTF_RIGHTDOWN up_action = win32con.MOUSEEVENTF_RIGHTUPelif button =='middle': down_action = win32con.MOUSEEVENTF_MIDDLEDOWN up_action = win32con.MOUSEEVENTF_MIDDLEUPif down_action isnotNoneand up_action isnotNone: win32api.mouse_event(down_action,0,0,0,0) time.sleep(0.1) win32api.mouse_event(up_action,0,0,0,0)defkeyboard_send(self, key_list, combine=False):""" 使用键盘模拟 :param key_list: 按键列表 :param combine: 是否组合键(True使用组合按键) """if combine isFalse:for key_str in key_list: key_num = self.keys_dict[key_str.upper()] win32api.keybd_event(key_num,0,0,0)# 按下键 win32api.keybd_event(key_num,0, win32con.KEYEVENTF_KEYUP,0)# 松开键if combine isTrue:for key_str in key_list: key_num = self.keys_dict[key_str.upper()] win32api.keybd_event(key_num,0,0,0)# 按下键for key_str in key_list: key_num = self.keys_dict[key_str.upper()] win32api.keybd_event(key_num,0, win32con.KEYEVENTF_KEYUP,0) # 松开键
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |