创建大漠对象
import win32com.client
dm = win32com.client.Dispatch('dm.dmsoft')
print(dm.ver()) # 输出版本号
鼠标操作
dm.moveto(1, 1) # 移动鼠标到1,1这个点
dm.leftclick() # 左键单击
dm.rightclick() # 右键单击
dm.leftdoubleclick() # 左键双击
dm.GetCursorPos() # 获取鼠标位置
其他API请查找文档
键盘操作
dm.KeyDownChar(key_str) # 按住指定的虚拟键码 dm.KeyDownChar('a')
dm.KeyDown(vk_code) # 按住指定的虚拟键码 dm.KeyDownChar(65)
dm.KeyUpChar(key_str) # 弹起指定的虚拟键码
dm.KeyPressChar(key_str) # 按一次指定的虚拟键码
dm.KeyPressStr(key_str,delay) # 根据指定的字符串序列,依次按顺序按下其中的字符
其他API请查找文档
找图操作
1. import os # 导入os库
2. 截一张图命名为1.bmp放到python文件同一目录下
3. os.getcwd() # 返回当前python文件的运行目录,也就是说我们把截图保存的路径和运行目录一致
4. dm.setpath(os.getcwd()) # 设置找图路径
5. ret = dm.findpic(0,0,1920,1080,"1.bmp",'050505',0.9,0) # 查找图片
模拟找到图标双击打开 完整代码:
import os
dm.setpath(os.getcwd())
ret=dm.findpice(0,0,1920,1080,"1.bmp",'050505',0.9,0)
print("找到图片的坐标x:" + ret.split("|")[1])
print("找到图片的坐标Y:" + ret.split("|")[2])
dm.moveto(ret.split("|")[1], ret.split("|")[2]) # 移动鼠标到这个点
dm.leftdoubleclick() # 左键双击
# 因为找到的ret是字符串且格式为(0|x|y),使用字符串分割可得到坐标
dm.FindPicE(x1, y1, x2, y2, pic_name, delta_color,sim, dir)
参数定义:
窗口操作
1. 窗口句柄的概念:窗口的身份证,用于区分不同窗口,注意这个身份证是变动的,我们要对窗口进行操作首先需要获取这个窗口的
句柄。
2. 获取顶层窗口句柄:dm.GetForegroundWindow()
3. 获取鼠标所在位置句柄:dm.GetMousePointWindow()
4. 枚举窗口句柄:dm.enumwindow()
无标题文档
获取到所有标题栏中有微信这个字符串的窗口句柄集合 完整代码:
hwnds = dm.EnumWindow(0, '微信', '', 1 + 4 + 8 + 16)
print(hwnds)
后台操作
bindwindowex的函数能够相对于窗口进行操作,并且能够实现多窗口同时操作。
但是这个操作是收费的所以我们需要先去自己注册一个注册码
内存操作与CE工具
CE工具:Cheat Engine
当我们在游戏中需要获取特效动态图片的数值,这种情况用找图去识别就很不现实,所以我们得需要配合CE工具去查找内存,从而获取我们需要的数值。