Python win32api.keybd_event模拟键盘输入
作者:互联网
Python win32api.keybd_event模拟键盘输入
win32api.keybd_event
该函数原型:keybd_event(bVk, bScan, dwFlags, dwExtraInfo)
第一个参数:虚拟键码(键盘键码对照表见附录);
第二个参数:硬件扫描码,一般设置为0即可;
第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;
第四个参数:定义与击键相关的附加的32位值,一般设置为0即可。
例子:
import win32api import win32con win32api.keybd_event(13,0,0,0) # enter win32api.keybd_event(13,0,win32con.KEYEVENTF_KEYUP,0) #释放按键
# 按下ctrl+s win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x53, 0, 0, 0) win32api.keybd_event(0x53, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1) # 按下回车 win32api.keybd_event(0x0D, 0, 0, 0) win32api.keybd_event(0x0D, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1) # 按下ctrl+W win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x57, 0, 0, 0) win32api.keybd_event(0x57, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0)
# 按下ctrl+a win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x41, 0, 0, 0) win32api.keybd_event(0x41, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1) # 按下ctrl+v win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x56, 0, 0, 0) win32api.keybd_event(0x56, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1)
更多可参考:http://timgolden.me.uk/pywin32-docs/PyWin32.html
键盘键码对照表:
按键 | 键码 | 按键 | 键码 | 按键 | 键码 | 按键 | 键码 |
A | 65 | 6(数字键盘) | 102 | ; | 59 | : | 58 |
B | 66 | 7(数字键盘) | 103 | = | 61 | + | 43 |
C | 67 | 8(数字键盘) | 104 | , | 44 | < | 60 |
D | 68 | 9(数字键盘) | 105 | - | 45 | _ | 95 |
E | 69 | * | 106 | . | 46 | > | 62 |
F | 70 | ! | 33 | / | 47 | ? | 63 |
G | 71 | Enter | 13 | ` | 96 | ~ | 126 |
H | 72 | @ | 64 | [ | 91 | { | 123 |
I | 73 | # | 35 | \ | 92 | | | 124 |
J | 74 | $ | 36 | } | 125 | ] | 93 |
K | 75 | F1 | 112 | a | 97 | b | 98 |
L | 76 | F2 | 113 | c | 99 | d | 100 |
M | 77 | F3 | 114 | e | 101 | f | 102 |
N | 78 | F4 | 115 | g | 103 | h | 104 |
O | 79 | F5 | 116 | i | 105 | j | 106 |
P | 80 | F6 | 117 | k | 107 | l | 108 |
Q | 81 | F7 | 118 | m | 109 | n | 110 |
R | 82 | F8 | 119 | o | 111 | p | 112 |
S | 83 | F9 | 120 | q | 113 | r | 114 |
T | 84 | F10 | 121 | s | 115 | t | 116 |
U | 85 | F11 | 122 | u | 117 | v | 118 |
V | 86 | F12 | 123 | w | 119 | x | 120 |
W | 87 | Backspace | 8 | y | 121 | z | 122 |
X | 88 | Tab | 9 | 0(数字键盘) | 96 | Up Arrow | 38 |
Y | 89 | Clear | 12 | 1(数字键盘) | 97 | Right Arrow | 39 |
Z | 90 | Shift | 16 | 2(数字键盘) | 98 | Down Arrow | 40 |
0(小键盘) | 48 | Control | 17 | 3(数字键盘) | 99 | Insert | 45 |
1(小键盘) | 49 | Alt | 18 | 4(数字键盘) | 100 | Delete | 46 |
2(小键盘) | 50 | Cap Lock | 20 | 5(数字键盘) | 101 | Num Lock | 144 |
3(小键盘) | 51 | Esc | 27 | 2(数字键盘) | 98 | Down Arrow | 40 |
4(小键盘) | 52 | Spacebar | 32 | 3(数字键盘) | 99 | Insert | 45 |
5(小键盘) | 53 | Page Up | 33 | 4(数字键盘) | 100 | Delete | 46 |
6(小键盘) | 54 | Page Down | 34 | 5(数字键盘) | 101 | Num Lock | 144 |
7(小键盘) | 55 | End | 35 | ||||
8(小键盘) | 56 | Home | 36 | ||||
9(小键盘) | 57 | Left Arrow | 37 |
# coding=utf-8 from selenium import webdriver import win32api import win32con import win32clipboard from ctypes import * import time# 浏览器打开百度网页 browser = webdriver.Chrome() browser.maximize_window() browser.get("https://www.baidu.com/") time.sleep(2)# 获取页面title作为文件名 title = browser.title # 设置路径为:当前项目的绝对路径+文件名 path = (os.path.dirname(os.path.realpath(__file__)) + "\\" + title + ".html") # 将路径复制到剪切板 win32clipboard.OpenClipboard() win32clipboard.EmptyClipboard() win32clipboard.SetClipboardText(path) win32clipboard.CloseClipboard() # 按下ctrl+s win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x53, 0, 0, 0) win32api.keybd_event(0x53, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1) # 鼠标定位输入框并点击 windll.user32.SetCursorPos(700, 510) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) time.sleep(1) # 按下ctrl+a win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x41, 0, 0, 0) win32api.keybd_event(0x41, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1) # 按下ctrl+v win32api.keybd_event(0x11, 0, 0, 0) win32api.keybd_event(0x56, 0, 0, 0) win32api.keybd_event(0x56, 0, win32con.KEYEVENTF_KEYUP, 0) win32api.keybd_event(0x11, 0, win32con.KEYEVENTF_KEYUP, 0) time.sleep(1) # 按下回车 win32api.keybd_event(0x0D, 0, 0, 0) win32api.keybd_event(0x0D, 0, win32con.KEYEVENTF_KEYUP, 0) browser.close() 有个小问题...鼠标定位 windll.user32.SetCursorPos(700, 510)
About Me
........................................................................................................................ ● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除 ● 本文在itpub( http://blog.itpub.net/26736162 )、博客园( http://www.cnblogs.com/lhrbest )和个人weixin公众号( xiaomaimiaolhr )上有同步更新 ● 本文itpub地址: http://blog.itpub.net/26736162 ● 本文博客园地址: http://www.cnblogs.com/lhrbest ● 本文pdf版、个人简介及小麦苗云盘地址: http://blog.itpub.net/26736162/viewspace-1624453/ ● 数据库笔试面试题库及解答: http://blog.itpub.net/26736162/viewspace-2134706/ ● DBA宝典今日头条号地址: http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826 ........................................................................................................................ ● QQ群号: 230161599 (满) 、618766405 ● weixin群:可加我weixin,我拉大家进群,非诚勿扰 ● 联系我请加QQ好友 ( 646634621 ) ,注明添加缘由 ● 于 2019-05-01 06:00 ~ 2019-05-30 24:00 在魔都完成 ● 最新修改时间:2019-05-01 06:00 ~ 2019-05-30 24:00 ● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解 ● 版权所有,欢迎分享本文,转载请保留出处 ........................................................................................................................ ● 小麦苗的微店 : https://weidian.com/s/793741433?wfr=c&ifr=shopdetail ● 小麦苗出版的数据库类丛书 : http://blog.itpub.net/26736162/viewspace-2142121/ ● 小麦苗OCP、OCM、高可用网络班 : http://blog.itpub.net/26736162/viewspace-2148098/ ● 小麦苗腾讯课堂主页 : https://lhr.ke.qq.com/ ........................................................................................................................ 使用 weixin客户端 扫描下面的二维码来关注小麦苗的weixin公众号( xiaomaimiaolhr )及QQ群(DBA宝典)、添加小麦苗weixin, 学习最实用的数据库技术。 ........................................................................................................................ |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2644877/,如需转载,请注明出处,否则将追究法律责任。
标签:KEYEVENTF,Python,KEYUP,keybd,win32con,event,win32api 来源: https://blog.51cto.com/lhrbest/2703793