python使用大漠插件教程_python调用大漠插件教程04鼠键事件及基本项目思维

from win32com.client importDispatchimportosfrom random importuniformfrom time importsleepclassOperation:def __init__(self, dm, hwnd):

self.dm=dm

self.hwnd=hwnd

self.dm.Reg(‘vacation6c113ef949e77e259bfadb84959f6cbc‘, ‘‘)

self.dm.Ver()

self.bind()defbind(self):

self.dm.BindWindowEx(self.hwnd,"normal", "normal", "normal", "", 0)

self.dm.SetSimMode(0)

self.dm.EnableRealKeypad(1)

self.dm.EnableRealMouse(2, 20, 30)

self.dm.SetKeypadDelay("normal", 70)

self.dm.SetClientSize(self.hwnd,596, 446)print(self.dm.GetClientSize(self.hwnd))print(‘绑定成功‘)defgetwindowsize(self):

ret=self.dm.GetClientSize(self.hwnd)

self.width, self.height= ret[1], ret[2]print(self.width, self.height)def leftclick(self, xf, yf, ran_x, ran_y, delay=uniform(0.3, 0.5)):

x= xf +uniform(0, ran_x)

y= yf +uniform(0, ran_y)

self.dm.MoveTo(x, y)

self.dm.LeftClick()

sleep(delay)defkeypress(self, n):

self.dm.KeyPress(n)defkeyup(self, n):

self.dm.KeyUp(n)defkeydown(self, n):

self.dm.KeyDown(n)defregsvr():try:

dm_1= Dispatch(‘dm.dmsoft‘)exceptException:

os.system(r‘regsvr32 /s %s\dm.dll‘ %os.getcwd())

dm_1= Dispatch(‘dm.dmsoft‘)print(dm_1.Ver())return dm_1

直接分析代码,代码是上一篇博客的拓展,基本上只在Operation类里添加了几个鼠键方法,同时将主函数转移到了另一个代码文件中。

getwindowsize()获取屏幕的长宽(暂时没有用到)

leftclick()将鼠标移动到指定位置并点击,传递的参数有4-5个,前两个是xy坐标后两个是xy坐标的偏移量,没有也要填0,最后一个是点击过后休息(默认为0.3-0.5秒),也可以手动传入。

keypress()按下后立马放开某键,这个间隔和是否设置随机时间有关,默认值也和绑定窗口键盘的模式有关(SetKeypadDelay("normal", 70))

keyup()按下某键不松

keydown()松开某键

后三个关于键盘的函数都需要传入一个键盘码(int类型),在绑定测试工具中的键盘测试页面可以找到。

以上代码为dmMain.py文件中,下面这段代码是另一个文件test.py文件。

from dmMain importOperationfrom win32gui importFindWindowfrom dmMain importregsvrdefclose_txt_1(operation_1):#随便点击两次观察光标

operation_1.leftclick(100, 10, 5, 5)

operation_1.leftclick(100, 180, 5, 5)defclose_txt_2(operation_1):#组合键 按下alt(不松) 然后按下f(松) 接着按下x(松) 松开alt

operation_1.keydown(18)

operation_1.keypress(70)

operation_1.keypress(88)

operation_1.keyup(18)if __name__ == ‘__main__‘:

window_id= FindWindow(‘Notepad‘, None)

dm_main=regsvr()

operation=Operation(dm_main, window_id)

close_txt_1(operation)#close_txt_2(operation)

这段代码中有两个函数,

第一个函数是随便点击记事本中的内容观察光标闪烁的位置,如果位置变换则鼠标事件响应(此时注释掉了调用第二个关闭记事本函数的语句便于观察)。

第二个则是使用键盘的简捷键关闭记事本的函数(处于被注释状态)。如果取消注释,运行后记事本关闭则键盘事件响应了。

图为一个项目的文件  可供参考。在test.py文件中使用了    from dmMain import regsvr          from dmMain import Operation

两行代码将dmMain.py的所有功能引入。

为什么要这么做?如果要用dm做出一个成型的脚本,如果都放在一个py文件里会显得很乱。

注意:

1.上面的代码中封装的函数很简单只供示范和测试,不同人可以根据需要自己封装比较复杂的函数

2.代码中使用的是前台鼠标模式,如果有需要可以在绑定窗口时改成后台鼠标模式(不过好像记事本并不支持后台鼠标模式,本人也没有测试完全,有待考证)

3.在鼠键事件响应后尽量加上一个休息时间(sleep),否则执行太快容易造成相应失灵的后果

如有问题请联系我qq:1009981067

大漠插件是一个基于Windows系统的自动化工具,可以模拟人的操作来实现自动化任务。它支持多种编程语言,包括Python。以下是使用Python调用大漠插件教程: 1. 安装大漠插件 首先需要下载并安装大漠插件。可以在官网(http://www.dm510.com/)下载最新版本的插件,并按照提示安装。 2. 安装Python插件 在Python调用大漠插件,需要安装Python插件。可以通过pip命令安装,具体命令如下: ``` pip install dmautomator ``` 3. 创建Python脚本 接下来,可以创建一个Python脚本,用于调用大漠插件实现自动化任务。以下是一个简单的示例: ```python import dmautomator as dm # 创建大漠对象 dm_obj = dm.Dm() # 设置模拟器窗口 dm_obj.SetPath("d:\\dnplayer2\\dnplayer.exe") # 查找图片 ret = dm_obj.FindPic(0, 0, 2000, 2000, "pic.png", "000000", 0.8, 0) if ret[0] != -1: # 找到图片,进行鼠标点击 x, y = ret[1], ret[2] dm_obj.MoveTo(x, y) dm_obj.LeftClick() else: # 没有找到图片 print("没有找到图片") ``` 在这个示例中,首先创建了一个大漠对象,并设置了要操作的模拟器窗口。然后使用FindPic方法查找指定图片,如果找到了图片,则进行鼠标点击操作。如果没有找到图片,则输出一条提示信息。 4. 运行Python脚本 最后,可以在Python环境中运行脚本,即可实现自动化任务。 需要注意的是,大漠插件使用的是Windows系统的API,所以只能在Windows系统上运行,并且需要以管理员权限运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值