python模拟点击窗口按钮,python可以模拟鼠标点击吗
当我们想重复某一点、某一位置的步骤时,在这些不同的位置进行同样的操作,对朋友来说不是问题。但是在实际应用中,我们需要在不同的位置操作不同的按键,每个位置需要不同的任务需求,这比之前单一的任务目标难度要大得多。今天,边肖将首先告诉你操作的想法,然后我相信测试代码模块不会那么困难。
如果要双击鼠标左键,可以根据不同区域实现不同的自动键。
思路:监控鼠标事件,判断按键类型。如果判断双击保持上次点击时间,最好新建一个自动按键的线程,否则会卡在主线程里。
#编码=utf-8
来自pymouseimportPyMouse,PyMouseEvent
frompykeyboardimportPyKeyboard,PyKeyboardEvent
导入时间,线程
导入数学
# #初始化参数区(全局变量)
停止=假
间隔=1
is_running=False
次数=10
keys_mapping={
0:[1,2,3,4],
10:[a , b],
1:[c , d],
11:[e , f],
} #左上角:0右上角:10左下角:1右下角:11
mouse=PyMouse()
keyboard=PyKeyboard()
x_dim,y_dim=mouse.screen_size()
# #循环键
去环路(钥匙):
全球停止
全球正在运行
全球键盘
is_running=True
foriinrange(times):
forkinkeys_mapping[key]:
铌
sp;ifstop:
print('stop')
is_running=False
return
print(key,k)
#keyboard.tap_key(k)
time.sleep(interval)
is_running=False
##监控鼠标
classClickonacci(PyMouseEvent):
last_ts=None
last_x=None
last_y=None
last_button=None
def__init__(self):
PyMouseEvent.__init__(self)
##hori:1-上,-1-下
defscroll(self,x,y,hori,press):
print(x,y,hori)
defclick(self,x,y,button,press):
ifpress:
return
globalstop
globalx_dim
globaly_dim
ts=time.time()
#button:1-左键,2-右键,3-中键
#press:True-按下,False-释放
ifbutton==1:
##判断双击
ifself.last_tsandts-self.last_ts<0.3andself.last_button==button:
print('doubleclick')
ifis_running==True:
stop=True
time.sleep(interval)
stop=False
##计算类型
key=10*math.floor(2.0*x/x_dim)+math.floor(2.0*y/y_dim)
t=threading.Thread(target=loop,name='LoopThread',args=(key,))
t.start()
self.last_ts=ts
self.last_x=x
self.last_y=y
self.last_button=button
else:
stop=True
if__name__=='__main__':
#main()
C=Clickonacci()
C.run()
本篇的代码模块比较复杂,因为涉及到了不同位置要实现不同按键的操作。小伙伴们在代码模块可以先拆分进行理解和学习,在跟着小编的思路进行整体代码的理解就好啦~更多Python学习指路:PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。