Repository navigation
1.0.12
1.0.12
- 修复:未响应的窗口接管不了;本来接管着的窗口一变未响应,按钮就又跑回任务栏。
原因:窗口挂起(未响应)时,跨进程问标题的SendMessageTimeout(WM_GETTEXT, SMTO_ABORTIFHUNG)
会被系统直接放弃(实测 3ms 返回失败、拿到空标题),而候选判据里写着「标题为空就不算一个窗口」——
于是这个窗口每一轮枚举都被踢出接管范围,已经摘掉的任务栏按钮又被还回去。
现在区分两种「空」:问出来了但确实是空的(隐形窗口)仍然排除;
根本没问出来(对方没响应)则保留,标题兜底显示为「(未响应)」。 - 实测确认另外两件事:窗口挂起时
IsWindowVisible/GW_OWNER/GetWindowLongPtr/GetClassName/
DWM cloaked 查询全部正常;ITaskbarList::DeleteTab对挂起窗口依然有效(按钮确实被摘掉)。
也就是说卡住的窗口该被接管、也能被接管,之前只是被标题这一条误杀了。
安装包:ExplorerDock-Setup-1.0.12.exe(x64,自带 .NET 运行时,无需另装)。