详细文档

pydmdll是一个实现大漠插件免费功能的Python包,无需手动注册dll,直接导入包使用。 可以模拟驱动级的鼠标键盘输入。不支持后台的鼠标键盘,以及所有付费功能都不支持。

__init__(self, dll_path=None) special

初始化并且完成注册

Parameters:
  • dll_path (str) – dm.dll路径。必须是全路径

__repr__(self) special

自我描述信息。

Returns:
  • str – 自我描述信息。

Un_reg(self)

取消已经注册的dll

Returns:
  • None – 无返回值

ClientToScreen(self, hwnd)

把窗口坐标转换为屏幕坐标

Parameters:
  • hwnd (int) – 指定的窗口句柄.你可以使用GetWindow,FindWindow等返回窗口句柄的方法获取句柄

Returns:
  • tuple – 返回元组数据类型,(窗口句柄,X坐标,Y坐标).

EnumWindow(self, parent, title, class_name, _filter)

根据父窗口,枚举系统中符合条件的子窗口,可以枚举到按键自带的无法枚举到的窗口

Parameters:
  • parent (int) – 获得的窗口句柄是该窗口的子窗口的窗口句柄,取0时为获得桌面句柄

  • title (str) – 窗口标题. 此参数是模糊匹配.

  • class_name (str) – 窗口类名. 此参数是模糊匹配.

  • _filter (int) – 取值定义如下 1 : 匹配窗口标题,参数title有效 2 : 匹配窗口类名,参数class_name有效. 4 : 只匹配指定父窗口的第一层孩子窗口 8 : 匹配所有者窗口为0的窗口,即顶级窗口 16 : 匹配可见的窗口 这些值可以相加,比如4+8+16就是类似于任务管理器中的窗口列表

Returns:
  • str – 返回str数据类型,"hwnd1,hwnd2,hwnd3",你可以字符串分割变成列表

示例:

    hwnds = dm.EnumWindow(0,"QQ三国","",1+4+8+16)
    这句是获取到所有标题栏中有QQ三国这个字符串的窗口句柄集合
    hwnds = split(hwnds,",")
    转换为数组后,就可以处理了
    这里注意,hwnds数组里的是字符串,要用于使用,比如BindWindow时,还得强制类型转换,比如int(hwnds(0))

EnumWindowByProcess(self, process_name, title, class_name, _filter)

根据指定进程以及其它条件,枚举系统中符合条件的窗口,可以枚举到按键自带的无法枚举到的窗口

Parameters:
  • process_name (str) – 进程映像名.比如(svchost.exe). 此参数是精确匹配,但不区分大小写.

  • title (str) – 窗口标题. 此参数是模糊匹配.

  • class_name (str) – 窗口类名. 此参数是模糊匹配.

  • _filter (int) – 取值定义如下 1 : 匹配窗口标题,参数title有效2 : 匹配窗口类名,参数class_name有效4 : 只匹配指定映像的所对应的第一个进程. 可能有很多同映像名的进程,只匹配第一个进程的.8 : 匹配所有者窗口为0的窗口,即顶级窗口16 : 匹配可见的窗口

Returns:
  • str – 返回str数据类型,返回所有匹配的窗口句柄字符串,格式"hwnd1,hwnd2,hwnd3"

FindWindow(self, class_name='', title_name='')

查找符合类名或者标题名的顶层可见窗

Parameters:
  • class_name (str) – 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.

  • title_name (str) – 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配.

Returns:
  • int – 整数型表示的窗口句柄,没找到返回0

For example:

hwnd = dm.FindWindow("","记事本")

FindWindowEx(self, parent, _class, title)

查找符合类名或者标题名的顶层可见窗口,如果指定了parent,则在parent的第一层子窗口中查找.

Parameters:
  • parent (int) – 父窗口句柄,如果为空,则匹配所有顶层窗口

  • _class (str) – 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.

  • title (str) – 窗口标题,如果为空,则匹配所有. 这里的匹配是模糊匹配.

Returns:
  • int – 表示的窗口句柄,没找到返回0

For example:

hwnd = dm.FindWindowEx(0,"","记事本")

GetClientRect(self, hwnd)

获取窗口客户区域在屏幕上的位置

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • tuple – (窗口句柄,窗口客户区左上角X坐标,窗口客户区左上角Y坐标,窗口客户区右下角X坐标,窗口客户区右下角Y坐标)

GetClientSize(self, hwnd)

获取窗口客户区域的宽度和高度

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • tuple – (指定的窗口句柄,宽度,高度)

GetForegroundFocus(self)

获取顶层活动窗口中具有输入焦点的窗口句柄

Returns:
  • int – 返回整型表示的窗口句柄

GetForegroundWindow(self)

获取顶层活动窗口,可以获取到按键自带插件无法获取到的句柄

Returns:
  • int – 返回整型表示的窗口句柄

GetMousePointWindow(self)

获取鼠标指向的窗口句柄,可以获取到按键自带的插件无法获取到的句柄

Returns:
  • int – 返回整型表示的窗口句柄

GetPointWindow(self, x, y)

获取给定坐标的窗口句柄,可以获取到按键自带的插件无法获取到的句柄

Parameters:
  • x (int) – 屏幕X坐标

  • y (int) – 屏幕Y坐标

Returns:
  • int – 返回整型表示的窗口句柄

GetSpecialWindow(self, flag)

获取特殊窗口

Parameters:
  • flag (int) – 取值定义如下 0 : 获取桌面窗口 1 : 获取任务栏窗口

Returns:
  • int – 以整型数表示的窗口句柄

GetWindow(self, hwnd, flag)

获取给定窗口相关的窗口句柄

Parameters:
  • hwnd (int) – 窗口句柄

  • flag (int) – 取值定义如下 0 : 获取父窗口 1 : 获取第一个儿子窗口 2 : 获取First 窗口 3 : 获取Last窗口 4 : 获取下一个窗口 5 : 获取上一个窗口 6 : 获取拥有者窗口 7 : 获取顶层窗口

Returns:
  • int – 返回整型表示的窗口句柄

GetWindowClass(self, hwnd)

获取窗口的类名

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • str – 窗口的类名

GetWindowProcessId(self, hwnd)

获取指定窗口所在的进程ID.

Parameters:
  • hwnd (int) – 窗口句柄

Returns:
  • int – 返回整型表示的是进程ID

GetWindowProcessPath(self, hwnd)

获取指定窗口所在的进程的exe文件全路径.

Parameters:
  • hwnd (int) – 窗口句柄

Returns:
  • str – 返回字符串表示的是exe全路径名

GetWindowRect(self, hwnd)

获取窗口在屏幕上的位置

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • tuple – (指定的窗口句柄,窗口左上角X坐标,窗口左上角Y坐标 窗口右下角X坐标,窗口右下角Y坐标)

GetWindowState(self, hwnd, flag)

获取指定窗口的一些属性

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • flag (int) – 取值定义如下: 0 : 判断窗口是否存在 1 : 判断窗口是否处于激活 2 : 判断窗口是否可见 3 : 判断窗口是否最小化 4 : 判断窗口是否最大化 5 : 判断窗口是否置顶 6 : 判断窗口是否无响应

Returns:
  • int – 0代表失败,1代表成功

GetWindowTitle(self, hwnd)

获取窗口的标题

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • str – 窗口的标题

MoveWindow(self, hwnd, x, y)

移动指定窗口到指定位置

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • x (int) – X坐标

  • y (int) – Y坐标

Returns:
  • int – 0代表失败,1代表成功

ScreenToClient(self, hwnd)

把屏幕坐标转换为窗口坐标

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • tuple – 返回元组(指定的窗口句柄,屏幕X坐标,屏幕Y坐标)

SendPaste(self, hwnd)

向指定窗口发送粘贴命令. 把剪贴板的内容发送到目标窗口.

Parameters:
  • hwnd (int) – 指定的窗口句柄

Returns:
  • int – 0代表失败,1代表成功

SendString(self, hwnd, str)

向指定窗口发送文本数据

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • str (str) – 发送的文本数据

Returns:
  • int – 0代表失败,1代表成功

SendString2(self, hwnd, str)

向指定窗口发送文本数据

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • str (str) – 发送的文本数据

Returns:
  • int – 0代表失败,1代表成功

注: 此接口为老的SendString,如果新的SendString不能输入,可以尝试此接口.

SetClientSize(self, hwnd, width, height)

设置窗口客户区域的宽度和高度

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • width (int) – 宽度

  • height (int) – 高度

Returns:
  • int – 0代表失败,1代表成功

SetWindowSize(self, hwnd, width, height)

设置窗口的大小

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • width (int) – 宽度

  • height (int) – 高度

Returns:
  • int – 0代表失败,1代表成功

SetWindowState(self, hwnd, flag)

设置窗口的状态

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • flag (int) – 取值定义如下 0 : 关闭指定窗口 1 : 激活指定窗口 2 : 最小化指定窗口,但不激活 3 : 最小化指定窗口,并释放内存,但同时也会激活窗口. 4 : 最大化指定窗口,同时激活窗口. 5 : 恢复指定窗口 ,但不激活 6 : 隐藏指定窗口 7 : 显示指定窗口 8 : 置顶指定窗口 9 : 取消置顶指定窗口 10 : 禁止指定窗口 11 : 取消禁止指定窗口 12 : 恢复并激活指定窗口 13 : 强制结束窗口所在进程.

Returns:
  • int – 0代表失败,1代表成功

SetWindowText(self, hwnd, title)

设置窗口的标题

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • title (str) – 标题

Returns:
  • int – 0代表失败,1代表成功

SetWindowTransparent(self, hwnd, trans)

设置窗口的透明度

Parameters:
  • hwnd (int) – 指定的窗口句柄

  • trans (int) – 透明度取值(0-255) 越小透明度越大 0为完全透明(不可见) 255为完全显示(不透明)

Returns:
  • int – 0代表失败,1代表成功

GetBasePath(self)

获取注册在系统中的dm.dll的路径.

Returns:
  • str – 返回dm.dll所在路径.

GetID(self)

返回当前大漠对象的ID值,这个值对于每个对象是唯一存在的。可以用来判定两个大漠对象是否一致.

Returns:
  • int – 当前对象的ID值.

GetLastError(self)

获取插件命令的最后错误

Returns:
  • int – 返回值表示错误值。 0表示无错误.

注: 此函数必须紧跟上一句函数调用,中间任何的语句调用都会改变这个值.

GetPath(self)

获取全局路径.(可用于调试)

Returns:
  • str – 以字符串的形式返回当前设置的全局路径

SetPath(self, path)

设置全局路径,设置了此路径后,所有接口调用中,相关的文件都相对于此路径. 比如图片,字库等.

Parameters:
  • path (str) – 路径,可以是相对路径,也可以是绝对路径

Returns:
  • int – 0代表失败,1代表成功

SetShowErrorMsg(self, show)

设置是否弹出错误信息,默认是打开.

Parameters:
  • show (int) – 0表示不打开,1表示打开.

Returns:
  • int – 0代表失败,1代表成功

ver(self)

返回当前插件版本号

Returns:
  • str – 当前插件的版本描述字符串

GetCursorPos(self)

获取鼠标位置.

Returns:
  • tuple – (x,y)

GetKeyState(self, vk_code)

获取指定的按键状态.(前台信息,不是后台)

Parameters:
  • vk_code (int) – 虚拟按键码

Returns:
  • int – 0代表失败,1代表成功

KeyDown(self, vk_code)

按住指定的虚拟键码

Parameters:
  • vk_code (int) – 虚拟按键码

Returns:
  • int – 0代表失败,1代表成功

KeyDownChar(self, key_str)

按住指定的虚拟键码

Parameters:
  • key_str (str) – 符串描述的键码. 大小写无所谓. 点这里查看具体对应关系

Returns:
  • int – 0代表失败,1代表成功

KeyPress(self, vk_code)

按下指定的虚拟键码

Parameters:
  • vk_code (int) – 虚拟按键码

Returns:
  • int – 0代表失败,1代表成功

KeyPressChar(self, key_str)

按下指定的虚拟键码

Parameters:
  • key_str (str) – 字符串描述的键码. 大小写无所谓. 点这里查看具体对应关系

Returns:
  • int – 0代表失败,1代表成功

KeyUp(self, vk_code)

弹起来虚拟键vk_code

Parameters:
  • vk_code (int) – 虚拟按键码

Returns:
  • int – 0代表失败,1代表成功

KeyUpChar(self, key_str)

弹起来虚拟键key_str

Parameters:
  • key_str (str) – 字符串描述的键码. 大小写无所谓. 点这里查看具体对应关系.

Returns:
  • int – 0代表失败,1代表成功

LeftClick(self)

按下鼠标左键

Returns:
  • int – 0代表失败,1代表成功

LeftDoubleClick(self)

双击鼠标左键

Returns:
  • int – 0代表失败,1代表成功

LeftDown(self)

按住鼠标左键

Returns:
  • int – 0代表失败,1代表成功

LeftUp(self)

弹起鼠标左键

Returns:
  • int – 0代表失败,1代表成功

MiddleClick(self)

按下鼠标中键

Returns:
  • int – 0代表失败,1代表成功

MoveR(self, rx, ry)

鼠标相对于上次的位置移动rx,ry

Parameters:
  • rx (int) – 相对于上次的X偏移

  • ry (int) – 相对于上次的Y偏移

Returns:
  • int – 0代表失败,1代表成功

MoveTo(self, x, y)

把鼠标移动到目的点(x,y)

Parameters:
  • x (int) – X坐标

  • y (int) – Y坐标

Returns:
  • int – 0代表失败,1代表成功

RightClick(self)

按下鼠标右键

Returns:
  • int – 0代表失败,1代表成功

RightDown(self)

按住鼠标右键

Returns:
  • int – 0代表失败,1代表成功

RightUp(self)

弹起鼠标右键

Returns:
  • int – 0代表失败,1代表成功

WheelDown(self)

滚轮向下滚

Returns:
  • int – 0代表失败,1代表成功

WheelUp(self)

滚轮向上滚

Returns:
  • int – 0代表失败,1代表成功

Beep(self, duration=1000, f=800)

蜂鸣器

Parameters:
  • duration (int) – 时长(ms)

  • f (int) – 频率

Returns:
  • int – 0代表失败,1代表成功

ExitOs(self, _type)

退出系统(注销 重启 关机)

Parameters:
  • _type (int) – 取值为以下类型 0 : 注销系统 1 : 关机 2 : 重新启动

Returns:
  • int – 0代表失败,1代表成功

GetClipboard(self)

获取剪贴板的内容

Returns:
  • str – 以字符串表示的剪贴板内容

GetMachineCode(self)

获取本机的机器码.(带网卡). 此机器码用于插件网站后台. 要求调用进程必须有管理员权限. 否则返回空串.

Returns:
  • 字符串 – 字符串表达的机器机器码

注: 此机器码包含的硬件设备有硬盘,显卡,网卡等. 其它不便透露. 重装系统不会改变此值. 另要注意,插拔任何USB设备,(U盘,U盾,USB移动硬盘,USB键鼠等),以及安装任何网卡驱动程序,(开启或者关闭无线网卡等)都会导致机器码改变.

GetDiskSerial(self)

获取本机的硬盘序列号.支持ide scsi硬盘. 要求调用进程必须有管理员权限. 否则返回空串.

Returns:
  • str – 字符串表达的硬盘序列号

GetMachineCodeNoMac(self)

获取本机的机器码.(不带网卡) 要求调用进程必须有管理员权限. 否则返回空串.

Returns:
  • str – 字符串表达的机器机器码

注: 此机器码包含的硬件设备有硬盘,显卡,网卡等. 其它不便透露. 重装系统不会改变此值. 另要注意,插拔任何USB设备,(U盘,U盾,USB移动硬盘,USB键鼠等),以及安装任何网卡驱动程序,(开启或者关闭无线网卡等)都会导致机器码改变.

GetScreenHeight(self)

获取屏幕的高度.

Returns:
  • int – 返回屏幕的高度

GetScreenWidth(self)

获取屏幕的宽度.

Returns:
  • int – 返回屏幕的宽度

GetTime(self)

获取当前系统从开机到现在所经历过的时间,单位是毫秒

Returns:
  • int – 时间(单位毫秒)

SetClipboard(self, value)

设置剪贴板的内容

Parameters:
  • value (str) – 以字符串表示的剪贴板内容

Returns:
  • int – 0代表失败,1代表成功