首页 > 编程 > Python > 正文

Python实现windows下模拟按键和鼠标点击的方法

2019-11-25 17:57:27
字体:
来源:转载
供稿:网友

本文实例讲述了Python实现windows下模拟按键和鼠标点击的方法。分享给大家供大家参考。具体如下:

这段代码可以模拟在窗口上按下按键、鼠标左键点击、鼠标右键点击、鼠标双击等等

## _*_ coding:UTF-8 _*_import win32apiimport win32conimport win32guifrom ctypes import *import timeVK_CODE = {  'backspace':0x08,  'tab':0x09,  'clear':0x0C,  'enter':0x0D,  'shift':0x10,  'ctrl':0x11,  'alt':0x12,  'pause':0x13,  'caps_lock':0x14,  'esc':0x1B,  'spacebar':0x20,  'page_up':0x21,  'page_down':0x22,  'end':0x23,  'home':0x24,  'left_arrow':0x25,  'up_arrow':0x26,  'right_arrow':0x27,  'down_arrow':0x28,  'select':0x29,  'print':0x2A,  'execute':0x2B,  'print_screen':0x2C,  'ins':0x2D,  'del':0x2E,  'help':0x2F,  '0':0x30,  '1':0x31,  '2':0x32,  '3':0x33,  '4':0x34,  '5':0x35,  '6':0x36,  '7':0x37,  '8':0x38,  '9':0x39,  'a':0x41,  'b':0x42,  'c':0x43,  'd':0x44,  'e':0x45,  'f':0x46,  'g':0x47,  'h':0x48,  'i':0x49,  'j':0x4A,  'k':0x4B,  'l':0x4C,  'm':0x4D,  'n':0x4E,  'o':0x4F,  'p':0x50,  'q':0x51,  'r':0x52,  's':0x53,  't':0x54,  'u':0x55,  'v':0x56,  'w':0x57,  'x':0x58,  'y':0x59,  'z':0x5A,  'numpad_0':0x60,  'numpad_1':0x61,  'numpad_2':0x62,  'numpad_3':0x63,  'numpad_4':0x64,  'numpad_5':0x65,  'numpad_6':0x66,  'numpad_7':0x67,  'numpad_8':0x68,  'numpad_9':0x69,  'multiply_key':0x6A,  'add_key':0x6B,  'separator_key':0x6C,  'subtract_key':0x6D,  'decimal_key':0x6E,  'divide_key':0x6F,  'F1':0x70,  'F2':0x71,  'F3':0x72,  'F4':0x73,  'F5':0x74,  'F6':0x75,  'F7':0x76,  'F8':0x77,  'F9':0x78,  'F10':0x79,  'F11':0x7A,  'F12':0x7B,  'F13':0x7C,  'F14':0x7D,  'F15':0x7E,  'F16':0x7F,  'F17':0x80,  'F18':0x81,  'F19':0x82,  'F20':0x83,  'F21':0x84,  'F22':0x85,  'F23':0x86,  'F24':0x87,  'num_lock':0x90,  'scroll_lock':0x91,  'left_shift':0xA0,  'right_shift ':0xA1,  'left_control':0xA2,  'right_control':0xA3,  'left_menu':0xA4,  'right_menu':0xA5,  'browser_back':0xA6,  'browser_forward':0xA7,  'browser_refresh':0xA8,  'browser_stop':0xA9,  'browser_search':0xAA,  'browser_favorites':0xAB,  'browser_start_and_home':0xAC,  'volume_mute':0xAD,  'volume_Down':0xAE,  'volume_up':0xAF,  'next_track':0xB0,  'previous_track':0xB1,  'stop_media':0xB2,  'play/pause_media':0xB3,  'start_mail':0xB4,  'select_media':0xB5,  'start_application_1':0xB6,  'start_application_2':0xB7,  'attn_key':0xF6,  'crsel_key':0xF7,  'exsel_key':0xF8,  'play_key':0xFA,  'zoom_key':0xFB,  'clear_key':0xFE,  '+':0xBB,  ',':0xBC,  '-':0xBD,  '.':0xBE,  '/':0xBF,  '`':0xC0,  ';':0xBA,  '[':0xDB,  '//':0xDC,  ']':0xDD,  "'":0xDE,  '`':0xC0}class POINT(Structure):  _fields_ = [("x", c_ulong),("y", c_ulong)]def get_mouse_point():  po = POINT()  windll.user32.GetCursorPos(byref(po))  return int(po.x), int(po.y)def mouse_click(x=None,y=None):  if not x is None and not y is None:    mouse_move(x,y)    time.sleep(0.05)  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)def mouse_dclick(x=None,y=None):  if not x is None and not y is None:    mouse_move(x,y)    time.sleep(0.05)  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)  win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)def mouse_move(x,y):  windll.user32.SetCursorPos(x, y)def key_input(str=''):  for c in str:    win32api.keybd_event(VK_CODE[c],0,0,0)    win32api.keybd_event(VK_CODE[c],0,win32con.KEYEVENTF_KEYUP,0)    time.sleep(0.01)if __name__ == "__main__":  mouse_click(1024,470)  str = 'hello'  key_input(str)

希望本文所述对大家的Python程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表