aardio 文档

process.desktop 库模块帮助文档

私有桌面运行进程

process 成员列表 #

process.desktop #

私有 Win32 桌面:后台启动进程、枚举和等待窗口。
不切换前台桌面,不是任务视图虚拟桌面或安全沙箱。

process.desktop() #

创建自动命名的私有桌面。
失败返回 null,错误信息,Win32错误码。

返回对象:processDesktopObject

processDesktopObject 成员列表 #

processDesktopObject.close() #

关闭桌面句柄并释放内部跟踪句柄,不终止任何进程;可重复调用。
成功返回 true,失败返回 null,错误信息,Win32错误码。
调用后不能再 dispose 清理此前的进程。GC 只调用 close,不会强杀进程。

processDesktopObject.dispose(timeout=2000) #

强制终止本对象 start 直接启动的进程,限时等待后调用 close;可重复调用。
不终止孙进程、不终止经 path 从外部启动的进程。
timeout 是总等待毫秒数;成功返回 true,失败返回 null,错误信息,错误码。
失败保留内部句柄,可重试。返回给调用方的 process 对象不被 free。

processDesktopObject.each(cls,title,processOrPid) #

创建顶层窗口快照迭代器,返回 hwnd,title,threadId,processId。
参数可省略;cls、title 支持 aardio 模式匹配;title 为空字符串时仅匹配空标题。
processOrPid 可以是 process 对象或数值 PID。
失败返回 null,错误信息[,Win32错误码];需要检查错误时先取得迭代器。

processDesktopObject.find(cls,title,processOrPid) #

查找首个匹配的顶层窗口,返回 hwnd,threadId,processId。
参数与 each 相同;未找到返回 null,出错返回 null,错误信息[,Win32错误码]。

processDesktopObject.handle #

HDESK 指针,只读使用;由 close 或 dispose 释放。
不要用 raw.closeHandle 关闭桌面句柄。

processDesktopObject.list() #

返回本桌面的顶层 HWND 快照数组(包含隐藏窗口和有所有者的窗口,不含子控件)。
正常空结果为 [],失败返回 null,错误信息[,Win32错误码]。

processDesktopObject.name #

自动生成的桌面名称,只读使用。

processDesktopObject.path #

窗口站名\桌面名,可用于 STARTUPINFO.desktop,只读使用。

processDesktopObject.start() #

返回对象:processObject

processDesktopObject.start(exe,args,startInfo) #

在本桌面启动程序,返回 process 对象;失败返回 null,错误信息。
参数同 process,自动覆盖 startInfo.desktop。
waitInputTimeout 默认为 0,showWindow 默认为 1,调用方的参数表不被修改。
返回的 process 对象仍由调用方管理;库另持独立句柄供 dispose 使用。

processDesktopObject.wait(cls,title,processOrPid,timeout=8000) #

有限时等待匹配窗口,返回 hwnd,threadId,processId。
参数与 find 相同;传入 process 对象时进程退出可提前结束等待。
timeout 单位毫秒;0 或负数只检查一次。
失败返回 null,错误信息[,Win32错误码],超时错误码为 258。
同步阻塞调用线程,GUI 程序建议在工作线程创建和使用本对象。

Markdown 格式