python模拟鼠标和键盘操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python模拟鼠标和键盘操作相关的知识,希望对你有一定的参考价值。

import win32api
import win32con
import win32gui
from ctypes import *
import time
VK_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__":
while 1:
    mouse_click(800,600)
    time.sleep(5)
    str = hello
    key_input(str)

 

以上是关于python模拟鼠标和键盘操作的主要内容,如果未能解决你的问题,请参考以下文章

python自带模块模拟鼠标和键盘操作

python3 模拟鼠标和键盘操作

python模拟鼠标键盘操作 GhostMouse tinytask 调用外部脚本或程序 autopy右键另存为

selenium webdriver从安装到使用(python语言),显示等待和隐性等待用法,切换窗口或者frame,弹框处理,下拉菜单处理,模拟鼠标键盘操作等

python怎么编是不是按键

pyautogui模拟鼠标键盘操作