Skip to content

1.0.12

Choose a tag to compare

@v4806 v4806 released this 19 Sep 21:59
· 13 commits to main since this release

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 运行时,无需另装)。