python模拟键盘输入_python控制鼠标键盘
win32api.keybd_event
该函数原型:keybd_event(bVk, bScan, dwFlags, dwExtraInfo)
第一个参数:虚拟键码(键盘键码对照表见附录);
第二个参数:硬件扫描码,一般设置为0即可;
第三个参数:函数操作的一个标志位,如果值为KEYEVENTF_EXTENDEDKEY则该键被按下,也可设置为0即可,如果值为KEYEVENTF_KEYUP则该按键被释放;
第四个参数:定义与击键相关的附加的32位值,一般设置为0即可。
例子:
importwin32apiimportwin32con
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
示例2
#coding=utf-8
from selenium importwebdriverimportwin32apiimportwin32conimportwin32clipboardfrom 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)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/183262.html原文链接:https://javaforall.cn
相关文章
- pycharm打包python项目_Python怎么打包
- 提高数据科学效率的 8 个Python神库!
- 浙江新增python编程_9月起,浙江省八年级新增Python编程课,未来编程是处理大数据的手段…「建议收藏」
- python截图识别文字_Python文字截图识别OCR工具实例解析
- python中关于命名的例子_Python 命名规范入门实例「建议收藏」
- python基础系列教程——python基础语法全解
- Python 技巧篇-pip卸载python库实例演示,查看pip命令大全方法[通俗易懂]
- 【说站】python中Pycharm的快捷键及用法
- 【说站】python中update更新字典的方法
- 【说站】python处理列表的部分元素
- python中的lambda表达式
- Python抛出异常_python抛出异常的作用
- 有趣的python代码_python五角星代码
- 17道经典考题,检验你的 Python 基本功
- python绘制双坐标图
- python-高级协程编程-协程的并发控制(二)
- python-Python与MongoDB数据库-处理MongoDB查询结果
- python-Python与PostgreSQL数据库-PostgreSQL数据库的基本知识(二)
- Python 的可逆加密算法DES实现详解编程语言
- 开发Linux下Python编程:实现自己的开发梦想(linux下python)
- python远程创建文件夹上传文件详解编程语言
- 掌握Linux环境下的Python编程(linux执行python)
- 在Linux上学习Python——你的编程之路(linux学python)
- Python驱动Oracle数据库(python操作oracle)
- Python 调试技巧
- Linux下python升级至2.7步骤
- python驱动使用pip安装MySQL Python驱动的简单步骤(pip安装mysql)
- Python编程中的反模式实例分析