Python模拟键盘输入和鼠标操作
Python模拟键盘输入和鼠标操作
一、Python键盘输入模拟:
import win32api
import win32con
win32api.keybd_event(17,0,0,0) #ctrl键位码是17
win32api.keybd_event(86,0,0,0) #v键位码是86
win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0) #释放按键
win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0)
附个键位码表:
字母和数字键 数字小键盘的键 功能键 其它键
键 键码 键 键码 键 键码 键 键码
A 65 0 96 F1 112 Backspace 8
B 66 1 97 F2 113 Tab 9
C 67 2 98 F3 114 Clear 12
D 68 3 99 F4 115 Enter 13
E 69 4 100 F5 116 Shift 16
F 70 5 101 F6 117 Control 17
G 71 6 102 F7 118 Alt 18
H 72 7 103 F8 119 Caps Lock 20
I 73 8 104 F9 120 Esc 27
J 74 9 105 F10 121 Spacebar 32
K 75 * 106 F11 122 Page Up 33
L 76 + 107 F12 123 Page Down 34
M 77 Enter 108 -- -- End 35
N 78 - 109 -- -- Home 36
O 79 . 110 -- -- Left Arrow 37
P 80 / 111 -- -- Up Arrow 38
Q 81 -- -- -- -- Right Arrow 39
R 82 -- -- -- -- Down Arrow 40
S 83 -- -- -- -- Insert 45
T 84 -- -- -- -- Delete 46
U 85 -- -- -- -- Help 47
V 86 -- -- -- -- Num Lock 144
其他未列出的字母和数字键盘为:ord(c)
二、 使用windll.user32实现鼠标模拟:
from ctypes import *
windll.user32.SetCursorPos(100, 100)
三. 使用AutoItX实现鼠标模拟:
#将AutoItX3.dll 文件复制到 window目录然后注册一下
regsvr32.exe AutoItX3.dll
from win32com.client import Dispatch
def enter_game():
AutoItX = Dispatch( "AutoItX3.Control" )
# Block All Input
AutoItX.BlockInput( 1 )
AutoItX.Sleep( 20000 )
if AutoItX.WinActivate( GAME_WINDOW_TITLE, '' ):
pass
else:
if AutoItX.WinWaitActive( GAME_WINDOW_TITLE, '', 8 ):
pass
else:
# Unblock input
AutoItX.BlockInput( 0 )
return False
AutoItX.WinSetTitle( GAME_WINDOW_TITLE, '', _pre_title )
AutoItX.WinSetState( _pre_title, '', AutoItX.SW_MAXIMIZE )
AutoItX.Sleep( 5000 )
AutoItX.MouseMove( 462, 396, 10 )
AutoItX.MouseClick( "left" )
AutoItX.Sleep( 1000 )
AutoItX.Send( GAME_ACCT_NAME )
AutoItX.Sleep( 1000 )
AutoItX.MouseMove ( 462, 472, 10 )
AutoItX.MouseClick( "left" )
AutoItX.Sleep( 1000 )
AutoItX.Send( GAME_ACCT_PASS )
AutoItX.Send( "{ENTER}" )
AutoItX.Sleep( 10000 )
# Unblock input
AutoItX.BlockInput( 0 )
return True
Python模拟键盘输入和鼠标操作的更多相关文章
- 使用C#模拟键盘输入、鼠标移动和点击、设置光标位置及控制应用程序的显示
1.模拟键盘输入(SendKeys) 功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样. 语法:SendKeys.Send(string keys);SendKeys.SendWa ...
- python 模拟键盘输入
备忘录 import win32api import win32con win32api.keybd_event(17,0,0,0) #ctrl键位码是17 win32api.keybd_event( ...
- SendInput模拟键盘输入的问题
SendInput模拟键盘输入的问题 http://www.cnblogs.com/yedaoq/archive/2010/12/30/1922305.html 最近接触到这个函数,因此了解了一下, ...
- VB模拟键盘输入的N种方法
VB模拟键盘输入的N种方法http://bbs.csdn.net/topics/90509805hd378发表于: 2006-12-24 14:35:39用VB模拟键盘事件的N种方法 键盘是我们使用计 ...
- 用Delphi模拟键盘输入
在Windows大行其道的今天,windows界面程序受到广大用户的欢迎.对这些程序的操作不外乎两种,键盘输入控制和鼠标输入控制.有时,对于繁杂的,或重复性的操作,我们能否通过编制程序来代替手工输入, ...
- 【转】C# winform 加载网页 模拟键盘输入自动接入访问网络
[转]C# winform 加载网页 模拟键盘输入自动接入访问网络 声明: 本文原创,首发于博客园 http://www.cnblogs.com/EasyInvoice/p/6070563.html ...
- VC 模拟键盘输入
转载请注明来源:https://www.cnblogs.com/hookjc/ vc模拟键盘输入keybd_event(VK_LWIN, 0, 0 ,0);keybd_event('M', 0, 0 ...
- 模拟键盘输入首先要用到一个API函数:keybd_event
转自:http://www.cnblogs.com/cpcpc/archive/2011/02/22/2123055.html 模拟键盘输入首先要用到一个API函数:keybd_event. 模拟按键 ...
- 微信小程序车牌号码模拟键盘输入
微信小程序车牌号码模拟键盘输入练习, 未经允许,禁止转载,抄袭,如需借鉴参考等,请附上该文章连接. 相关资料参考:https://blog.csdn.net/littlerboss/article/d ...
随机推荐
- bzoj2661
不难想到,先枚举建图然后跑最大费用最大流 也不难想到一种将每个数拆成两个点i1,i2,所有满足条件的数之间 把所有满足条件之间的数x,y连边x1--->y2,y1--->x2,流量为1,费 ...
- 【转】 Xcode基本操作 -- 不错
原文网址:http://blog.csdn.net/phunxm/article/details/17044337 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)- ...
- 【转】JVM 基础知识
几年前写过一篇关于JVM调优的文章,前段时间拿出来看了看,又添加了一些东西.突然发现,基础真的很重要.学习的过程是一个由表及里,再由里及表的过程,所谓的“温故而知新”.而真正能走完这个轮回的人,也就能 ...
- SharePoint 2010 Ribbon的实现
转:http://blog.csdn.net/wang4237/article/details/5306335 SharePoint2010的页面风格发生了很大的改变,其页面风格类似于Office的视 ...
- JAX-RS -- Java API for RESTful Web Services
Java EE 6 引入了对 JSR-311 的支持.JSR-311(JAX-RS:Java API for RESTful Web Services)旨在定义一个统一的规范,使得 Java 程序员可 ...
- ThinkPadTablet如何恢复出厂状态
ThinkPad Tablet恢复出厂操作教程: 第一步:开机看到“LENOVO”图标后不停按机器侧面音量增大键,直到出现“Booting recovery kernel image”字样. 第二步: ...
- 破解密码那些事儿(Hacking Secret Ciphers with Python)
作者:Al Sweigart 我们在电视和电影里头经常能够看到黑客们兴奋的快速敲击键盘,接着毫无意义的数字就在屏幕上飞奔(比如黑客帝国).然后让大家产生了一种奇妙的错觉,做黑客是一件高大上的事情, ...
- cs编写php字符显示问题
1. mysql中有mysql字符,数据库字符(各个数据库字符可不同),数据库下的表字符,表的字段字符,这些字符应保持一致具体查询命令可见网上,如不同要设置成相同才行. 2. 因为浏览器版本不同所 ...
- IntelliJ IDEA的下载、安装和WordCount的初步使用(本地模式和集群模式)
包括: IntelliJ IDEA的下载 IntelliJ IDEA的安装 IntelliJ IDEA中的scala插件安装 用SBT方式来创建工程 或 选择Scala方式来创建工程 本地模式或集群 ...
- Maintainable JavaScript(编写可维护的JavaScript) PART I Style Guidelines
“Programs are meant to be read by humans and only incidentally( 顺便:偶然地:附带地) for computers to execute ...