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 代表成功