ClientToScreen(self, hwnd)

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

Parameters:

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

Returns:

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

EnumProcess(self, name)

根据进程名枚举进程

Parameters:

  • name (str) – 进程名,比如 qq.exe

Returns:

  • str – 返回所有匹配的进程 PID,并按打开顺序排序,格式"pid1,pid2,pid3"

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 : 匹配可见的窗口 32 : 匹配出的窗口按照窗口打开顺序依次排列 这些值可以相加,比如 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"

EnumWindowSuper(self, spec1, flag1, type1, spec2, flag2, type2, sort)

根据两组设定条件来枚举指定窗口.

Parameters:

  • spec1 (str) – 查找串 1. (内容取决于 flag1 的值)
  • flag1 (int) – flag1 取值如下: 0 表示 spec1 的内容是标题 1 表示 spec1 的内容是程序名字. (比如 notepad) 2 表示 spec1 的内容是类名 3 表示 spec1 的内容是程序路径.(不包含盘符,比如\windows\system32) 4 表示 spec1 的内容是父句柄.(十进制表达的串) 5 表示 spec1 的内容是父窗口标题 6 表示 spec1 的内容是父窗口类名 7 表示 spec1 的内容是顶级窗口句柄.(十进制表达的串) 8 表示 spec1 的内容是顶级窗口标题 9 表示 spec1 的内容是顶级窗口类名
  • type1 (int) – 0 精确判断 1 模糊判断
  • spec2 (str) – 查找串 2. (内容取决于 flag2 的值)
  • flag2 (int) – flag2 取值如下: 0 表示 spec2 的内容是标题 1 表示 spec2 的内容是程序名字. (比如 notepad) 2 表示 spec2 的内容是类名 3 表示 spec2 的内容是程序路径.(不包含盘符,比如\windows\system32) 4 表示 spec2 的内容是父句柄.(十进制表达的串) 5 表示 spec2 的内容是父窗口标题 6 表示 spec2 的内容是父窗口类名 7 表示 spec2 的内容是顶级窗口句柄.(十进制表达的串) 8 表示 spec2 的内容是顶级窗口标题 9 表示 spec2 的内容是顶级窗口类名
  • type2 (int) – 0 精确判断,1 模糊判断
  • sort (int) – 0 不排序.1 对枚举出的窗口进行排序,按照窗口打开顺序.

Returns:

  • 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("","记事本")

FindWindowByProcess(self, process_name, class_, title)

根据指定的进程名字,来查找可见窗口.

Parameters:

  • process_name (str) – 进程名. 比如(notepad.exe).这里是精确匹配,但不区分大小写.
  • class_ (str) – 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.
  • title (str) – 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配.

Returns:

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

FindWindowByProcessId(self, process_id, class_, title)

根据指定的进程 Id,来查找可见窗口.

Parameters:

  • process_id (int) – 进程 id.
  • class_ (str) – 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.
  • title (str) – 窗口标题,如果为空,则匹配所有.这里的匹配是模糊匹配.

Returns:

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

FindWindowEx(self, parent, _class, title)

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

Parameters:

  • parent (int) – 父窗口句柄,如果为空,则匹配所有顶层窗口
  • _class (str) – 窗口类名,如果为空,则匹配所有. 这里的匹配是模糊匹配.
  • title (str) – 窗口标题,如果为空,则匹配所有. 这里的匹配是模糊匹配.

Returns:

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

For example:

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

FindWindowSuper(self, spec1, flag1, type1, spec2, flag2, type2)

根据两组设定条件来查找指定窗口.

Parameters:

  • spec1 (str) – 查找串 1. (内容取决于 flag1 的值)
  • flag1 (int) – flag1 取值如下: 0 表示 spec1 的内容是标题 1 表示 spec1 的内容是程序名字. (比如 notepad) 2 表示 spec1 的内容是类名 3 表示 spec1 的内容是程序路径.(不包含盘符,比如\windows\system32) 4 表示 spec1 的内容是父句柄.(十进制表达的串) 5 表示 spec1 的内容是父窗口标题 6 表示 spec1 的内容是父窗口类名 7 表示 spec1 的内容是顶级窗口句柄.(十进制表达的串) 8 表示 spec1 的内容是顶级窗口标题 9 表示 spec1 的内容是顶级窗口类名
  • type1 (int) – 0 精确判断 1 模糊判断
  • spec2 (str) – 查找串 2. (内容取决于 flag2 的值)
  • flag2 (int) – flag2 取值如下: 0 表示 spec2 的内容是标题 1 表示 spec2 的内容是程序名字. (比如 notepad) 2 表示 spec2 的内容是类名 3 表示 spec2 的内容是程序路径.(不包含盘符,比如\windows\system32) 4 表示 spec2 的内容是父句柄.(十进制表达的串) 5 表示 spec2 的内容是父窗口标题 6 表示 spec2 的内容是父窗口类名 7 表示 spec2 的内容是顶级窗口句柄.(十进制表达的串) 8 表示 spec2 的内容是顶级窗口标题 9 表示 spec2 的内容是顶级窗口类名
  • type2 (int) – 0 精确判断,1 模糊判断

Returns:

  • int – 表示的窗口句柄,没找到返回 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 – 以整型数表示的窗口句柄

GetProcessInfo(self, pid)

根据指定的 pid 获取进程详细信息,(进程名,进程全路径,CPU 占用率(百分比),内存占用量(字节))

Parameters:

  • pid (int) – 进程 pid

Returns:

  • 字符串 – 格式"进程名|进程路径|cpu|内存"

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 : 判断窗口是否无响应 7 : 判断窗口是否可用(灰色为不可用) 8 : 另外的方式判断窗口是否无响应,如果 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 代表成功