跳到主要内容

qk.Window:窗口

桌面上的顶层窗口本身(查找、激活、移动/缩放、置顶、关闭等);窗口里的按钮、输入框等界面元素见 qk.Uia。Win 仅本次运行有效;子窗口只能查询,不能激活/排列/关闭;高权限窗口被拒绝。常见错误码:WINDOW_LIMIT_EXCEEDED(超出次数或枚举上限)、WINDOW_REF_STALE(窗口已关闭)、ELEVATED_TARGET_DENIED(高权限窗口)、WINDOW_UNAVAILABLE(窗口隐藏/最小化或无法校验,不能用于该操作)、WINDOW_CHANGED(操作期间窗口被移动、改变大小或遮挡)。

Window.GetForeground​

Win? GetForeground()

当前前台窗口(顶层);取不到时回退到动作启动时的活动窗口。

返回类型:Win?。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.FromPoint​

Win? FromPoint(Pt? point = null, bool root = true)

指定点下的窗口;没有返回 null。

参数声明说明
Pt? point = null屏幕点;null 为当前鼠标位置。
bool root = truetrue(默认)返回顶层窗口;false 返回点下最深的子窗口/控件(如给 Edit 发 WM_SETTEXT;对顶层窗口发 WM_SETTEXT 改的是标题)。子窗口只能查询与发消息。

返回类型:Win?。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.Find​

Win? Find(string title = "", string process = "", string className = "", bool regex = false, bool hidden = false)

查找首个匹配的顶层窗口;无则返回 null。候选窗口超过枚举上限仍未确定结果时抛 WINDOW_LIMIT_EXCEEDED。

参数声明说明
string title = ""标题包含匹配,不区分大小写(regex 为 true 时为正则)。
string process = ""进程名,完整匹配、不区分大小写,可带 .exe(notepad 或 notepad.exe)。
string className = ""窗口类名(完整匹配,不区分大小写)。
bool regex = false见本成员和所在域的说明。
bool hidden = false包含不可见窗口。

返回类型:Win?。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.FindAll​

Win[] FindAll(string title = "", string process = "", string className = "", bool regex = false, bool hidden = false, int limit = 64)

列出匹配的可见顶层窗口(含空标题窗口;只需标题/进程时直接读 w.Title/w.Process);候选窗口超过枚举上限且结果不足 limit 时抛 WINDOW_LIMIT_EXCEEDED。

参数声明说明
string title = ""见本成员和所在域的说明。
string process = ""见本成员和所在域的说明。
string className = ""见本成员和所在域的说明。
bool regex = false见本成员和所在域的说明。
bool hidden = false包含不可见窗口(同 Find)。
int limit = 64最多返回数量(1–64)。

返回类型:Win[]。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.FindAllInfo​

WinInfo[] FindAllInfo(string title = "", string process = "", string className = "", bool regex = false, bool hidden = false, int limit = 64)

与 FindAll 相同的匹配与上限,但一次返回各窗口的信息快照(含 Bounds/State 与可继续操作的 Window 引用);整次只计 1 次窗口观察,适合“列出后按位置/状态筛选”。

参数声明说明
string title = ""见本成员和所在域的说明。
string process = ""见本成员和所在域的说明。
string className = ""见本成员和所在域的说明。
bool regex = false见本成员和所在域的说明。
bool hidden = false包含不可见窗口(同 Find)。
int limit = 64最多返回数量(1–64)。

返回类型:WinInfo[]。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.ListChildren​

Win[] ListChildren(Win window, string title = "", string className = "")

列出后代子窗口(最多 64 个);子窗口只可查询,不能激活/排列/关闭。

参数声明说明
Win window见本成员和所在域的说明。
string title = ""见本成员和所在域的说明。
string className = ""见本成员和所在域的说明。

返回类型:Win[]。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.Info​

WinInfo Info(Win window)

重新验证窗口并读取最新信息(可返回)。

参数声明说明
Win window见本成员和所在域的说明。

返回类型:WinInfo。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.Activate​

void Activate(Win window)

激活顶层窗口(切换为前台;最小化的窗口会先还原);无返回值,需要最新状态时调用 Info。

参数声明说明
Win window见本成员和所在域的说明。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:激活窗口。某些参数或数据来源会追加能力,详见安全与授权。

Window.ActivateProcess​

Win? ActivateProcess(string process, string? path = null, string? title = null, string? className = null, bool regex = false, string? hotkey = null, bool launch = true)

进程已运行则激活其主窗口,否则按 path 以普通权限启动并等待窗口;未运行且不启动时返回 null。提权窗口在激活前被拒绝。

参数声明说明
string process进程名。
string? path = null未运行时启动的目标:exe/.lnk(普通权限),或网址、shell:AppsFolder\…、其他文件(系统 Shell 打开)。
string? title = null窗口标题:包含匹配、不区分大小写(regex 为 true 时为正则,无效正则报 INVALID_ARGUMENT)。
string? className = null窗口类名:完整匹配、不区分大小写(regex 为 true 时为正则)。
bool regex = falsetitle/className 按 .NET 正则匹配。
string? hotkey = null唤出窗口的快捷键(如托盘程序的唤醒键),只接受单个组合键如 "Ctrl+Alt+Q";经输入会话发送,需要键盘能力。
bool launch = true未运行时是否启动。

返回类型:Win?。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息;激活窗口;启动程序或打开文件/网址。某些参数或数据来源会追加能力,详见安全与授权。

Window.RestoreForeground​

void RestoreForeground()

回到弹出面板前的前台窗口;没有记录时不操作。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:激活窗口。某些参数或数据来源会追加能力,详见安全与授权。

Window.SetBounds​

void SetBounds(Win window, Rect bounds)

设置顶层窗口位置和大小(物理像素)。

参数声明说明
Win window见本成员和所在域的说明。
Rect bounds见本成员和所在域的说明。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.SetState​

void SetState(Win window, string state)

设置顶层窗口状态(普通/最小化/最大化)。隐藏/显示用 SetVisible,置于其他窗口之下用 SendToBack。

参数声明说明
Win window见本成员和所在域的说明。
string statenormal|minimized|maximized。 取值:normal、minimized、maximized。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.SetVisible​

void SetVisible(Win window, bool visible)

隐藏或显示顶层窗口(不激活);异步投递,不等待目标窗口处理。隐藏后可用 FindAll(hidden: true) 找回。不能隐藏任务栏、桌面等外壳窗口(INVALID_ARGUMENT)。

参数声明说明
Win window见本成员和所在域的说明。
bool visiblefalse 隐藏,true 显示。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.SendToBack​

void SendToBack(Win window)

把顶层窗口置于其他窗口之下(先取消置顶);异步投递,不等待目标窗口处理。

参数声明说明
Win window见本成员和所在域的说明。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.SetTopmost​

bool SetTopmost(Win window, bool topmost = true)

设置或取消置顶;返回调用后的实际置顶状态。需要切换时写 SetTopmost(w, !qk.Window.Info(w).Topmost)。

参数声明说明
Win window见本成员和所在域的说明。
bool topmost = truetrue 置顶,false 取消。

返回类型:bool。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.SetOpacity​

void SetOpacity(Win window, int alpha)

设置窗口不透明度。

参数声明说明
Win window见本成员和所在域的说明。
int alpha0–255(0 全透明,255 不透明)。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.Close​

void Close(Win window, bool kill = false)

发送关闭请求(程序可能询问保存);不能关闭 Quicker 自身的窗口。

参数声明说明
Win window见本成员和所在域的说明。
bool kill = false未及时关闭时强制结束窗口所属程序(可能丢失未保存数据);需要“强制结束程序”能力,不能用于资源管理器/桌面与 Quicker 及其辅助进程。

返回类型:void。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.WaitFor​

Win? WaitFor(string title = "", string process = "", string className = "", string state = "exists", int timeoutMs = 10000)

等待窗口达到状态;满足时返回窗口,超时返回 null。等待窗口关闭用 WaitForClose。

参数声明说明
string title = ""见本成员和所在域的说明。
string process = ""见本成员和所在域的说明。
string className = ""见本成员和所在域的说明。
string state = "exists"exists|visible|foreground。 取值:exists、visible、foreground。
int timeoutMs = 10000超时毫秒(最长 1 小时);同时受动作超时约束(默认 30 秒墙钟),长等待需在编辑器调大动作超时。

返回类型:Win?。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.WaitForClose​

bool WaitForClose(string title = "", string process = "", string className = "", int timeoutMs = 10000)

等待匹配的窗口全部关闭(含不可见窗口;本来就没有也算关闭):关闭返回 true,超时返回 false(超时不抛错)。

参数声明说明
string title = ""见本成员和所在域的说明。
string process = ""见本成员和所在域的说明。
string className = ""见本成员和所在域的说明。
int timeoutMs = 10000超时毫秒(最长 1 小时);同时受动作超时约束。

返回类型:bool。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.ToScreen​

Pt ToScreen(Win window, Pt offset, string anchor = "topLeft")

窗口内相对坐标转屏幕坐标:可见边界(DWM 扩展边框,不含阴影,与“鼠标”步骤一致)的锚点加 offset,返回屏幕物理像素。

参数声明说明
Win window见本成员和所在域的说明。
Pt offset相对锚点的偏移(Pt,窗口相对的物理像素)。
string anchor = "topLeft"topLeft|topRight|bottomLeft|bottomRight|center;右/下边界为可见外沿,向内偏移用负数。 取值:topLeft、topRight、bottomLeft、bottomRight、center。

返回类型:Pt。空值、用户取消和异常行为以成员及域说明为准。

基础能力:读取窗口信息。某些参数或数据来源会追加能力,详见安全与授权。

Window.SendMessage​

long SendMessage(Win window, int message, long wParam = 0, object? lParam = null, bool post = false, int timeoutMs = 5000)

【高风险】向窗口(可为子控件)发送窗口消息并返回结果;需要“发送窗口消息”能力。拒绝 Quicker 自身窗口与提权窗口;计 1 次排列操作。

参数声明说明
Win window见本成员和所在域的说明。
int message见本成员和所在域的说明。
long wParam = 0见本成员和所在域的说明。
object? lParam = nullnull/整数;string 只允许 WM_SETTEXT(0x000C) 与 WM_COPYDATA(0x004A,宿主封装 COPYDATASTRUCT,dwData 取 wParam),不能 post;其他消息带 string 报 INVALID_ARGUMENT。系统按指针封送的消息(WM_GETTEXT、EM_GETLINE 等)只接受 0。
bool post = falsetrue:PostMessage(不等待,返回 0)。
int timeoutMs = 5000同步发送的超时 1–60000 毫秒;目标无响应报 WINDOW_MESSAGE_TIMEOUT。

返回类型:long。空值、用户取消和异常行为以成员及域说明为准。

基础能力:发送任意窗口消息(高风险)。某些参数或数据来源会追加能力,详见安全与授权。

Window.CloseSimilar​

int CloseSimilar(Win window, bool keepCurrent = false)

向同一程序(可执行文件路径相同;资源管理器只限文件夹窗口)的顶层窗口发送关闭请求(程序可能询问保存或拒绝关闭),返回已发出的请求数(不等于实际关闭数);部分失败时返回成功数;共享宿主进程或不适用的窗口报 WINDOW_ARRANGE_FAILED;计 1 次排列操作。

参数声明说明
Win window见本成员和所在域的说明。
bool keepCurrent = false保留 window 本身(只关闭其他类似窗口)。

返回类型:int。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.MinimizeSimilar​

int MinimizeSimilar(Win window)

最小化同一程序的顶层窗口(不抢焦点),返回受影响的窗口数(已最小化的不计);其余规则同 CloseSimilar。

参数声明说明
Win window见本成员和所在域的说明。

返回类型:int。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.RestoreSimilar​

int RestoreSimilar(Win window)

还原同一程序中已最小化的顶层窗口(不抢焦点),返回还原的窗口数;其余规则同 CloseSimilar。

参数声明说明
Win window见本成员和所在域的说明。

返回类型:int。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。

Window.ActivateSimilar​

Win? ActivateSimilar(Win window, bool previous = false)

切换到同一程序的下一个(previous 为 true 时上一个)窗口并激活,返回该窗口;没有其他窗口返回 null。计 1 次激活操作。

参数声明说明
Win window见本成员和所在域的说明。
bool previous = false见本成员和所在域的说明。

返回类型:Win?。空值、用户取消和异常行为以成员及域说明为准。

基础能力:激活窗口。某些参数或数据来源会追加能力,详见安全与授权。

Window.SetEdgeHide​

bool SetEdgeHide(Win window, bool enabled = true, string edge = "auto")

贴边隐藏(由 Quicker 托管,脚本结束或停止后继续生效,需要撤销时显式 SetEdgeHide(window, false)):enabled 为 true 启用、false 停用;返回调用后的实际状态(是否启用)。启用时窗口置顶;停用时停在贴边处的可见位置并取消置顶(不还原原位置)。计 1 次排列操作。

参数声明说明
Win window见本成员和所在域的说明。
bool enabled = true见本成员和所在域的说明。
string edge = "auto"auto|left|top|right|bottom;已启用时再次启用不改变贴靠的边。 取值:auto、left、top、right、bottom。

返回类型:bool。空值、用户取消和异常行为以成员及域说明为准。

基础能力:改变窗口状态或位置。某些参数或数据来源会追加能力,详见安全与授权。