Skip to content

Releases: v4806/ExplorerDock

v1.0.19

Choose a tag to compare

@v4806 v4806 released this 11 Oct 15:21

修复:在设置里关掉「显示悬浮栏」之后启动会弹出 Hwnd of zero is not valid.,托盘图标建不起来;由于这个异常中断了启动流程,Alt+Tab 接管、剪贴板接管、退出监听也一并没有装上(表现为程序半启动、--quit 发不进去)。现在托盘挂靠窗口会按需创建句柄,不再依赖悬浮栏是否显示。

v1.0.18

Choose a tag to compare

@v4806 v4806 released this 03 Oct 22:05

修复:未响应的程序窗口会把悬浮栏一起拖住(点击没反应、退出后任务栏按钮不归还);「开机自启」在笔记本用电池时经常不生效;靠边隐藏时中键关闭窗口会误收回;贴右边时内容没有右对齐、宽度变化会让悬浮栏左右漂移。

v1.0.17

Choose a tag to compare

@v4806 v4806 released this 21 Sep 17:20

修复 Alt+Tab 卡片列表:预览区点不动、预览被遮罩盖住、滚动时预览消失。

v1.0.16

Choose a tag to compare

@v4806 v4806 released this 21 Sep 11:06

修复贴边收纳后悬浮栏偶发卡在屏幕外、鼠标碰边也唤不出来的问题。

v1.0.15

Choose a tag to compare

@v4806 v4806 released this 20 Sep 20:42

修复

  • 双屏时「居中模式」把悬浮栏摆到两块屏的正中间
    居中与默认位置原先按整块虚拟桌面计算(双屏时那是两块屏的并集),现在改为按窗口所在的那块显示器算(MonitorFromWindow + 显示器 rcMonitor,并按窗口 DPI 折算)。单屏行为不变;贴边判定仍是桌面外沿(两块屏的交界不算屏幕边)。
  • 未响应的窗口仍然会短暂出现在任务栏
    诊断日志确认:窗口一挂起,是 shell 自己把任务栏按钮重建出来的(不是程序还回去的)。常规补刀 2.8 秒太慢,现在未响应期间每轮(约 350ms)补一次,暴露时间压到一个轮询周期内。

其他

  • 新增 %TEMP%\ExplorerDock.taskbar.log 诊断(记录按钮还原、未响应补刀),遇到任务栏按钮异常时可用它定位。

v1.0.14

Choose a tag to compare

@v4806 v4806 released this 20 Sep 17:30

修复

  • 在窗口按钮上按住拖动悬浮栏,松手时会误触发该按钮的点击(窗口被切换或最小化)

v1.0.13

Choose a tag to compare

@v4806 v4806 released this 20 Sep 12:11

修复

  • 启动后第一次快速拖动悬浮栏没反应 / 像残影一样滞后(第二次起正常)
  • 拖到屏幕边缘后继续往外拖时界面闪动
  • 贴边隐藏后的呼出位置与重启后不一致
  • 锁定位置时按住悬浮栏动一下鼠标,会误触发贴边收纳。
  • 左键再点已在前台的图标不会最小化。
  • 未响应(挂起)的窗口接管不了、中途脱离接管。
  • 开机不自启:计划任务命令行缺引号,改由提权宿主进程创建并回读校验。

新增

  • 右键菜单 →「悬浮栏」新增「居中模式」与「锁定位置」两个开关。

1.0.12

Choose a tag to compare

@v4806 v4806 released this 19 Sep 21:59

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

1.0.11

Choose a tag to compare

@v4806 v4806 released this 19 Sep 19:17

1.0.11

  • 右键「关掉这个程序的所有窗口」跟着 1.0.10 一起放宽:
    带 WS_EX_APPWINDOW 的 owned 窗口(比如 Blender 的「偏好设置」)在任务栏上占着自己的按钮,
    现在关这个程序时会一起关掉;没带这个样式的普通对话框仍然跳过,不会误关。
  • 只动了这一处判定,其他行为与 1.0.10 相同。

安装包:ExplorerDock-Setup-1.0.11.exe(x64,自带 .NET 运行时,无需另装)。

1.0.10

Choose a tag to compare

@v4806 v4806 released this 19 Sep 19:14

1.0.10

  • 修复:同一个程序里「窗口标题不一样」的窗口接管不了。
    具体是 Blender 的「偏好设置」这类窗口 —— 它的 owner 是主窗口,但带了 WS_EX_APPWINDOW,
    所以任务栏上确实有它自己的按钮。原来的候选判据「有 owner 的一律不算独立窗口」把它挡在接管范围外。
    现在的规则:有 owner 但带 WS_EX_APPWINDOW(任务栏上真有按钮)的窗口也纳入接管;
    没带这个样式的普通对话框仍然不接管(它们在任务栏上本来就没有按钮)。
  • 顺带说明:这条判据是悬浮栏接管和 Alt+Tab 候选共用的,所以这类窗口现在在 Alt+Tab 面板里也会出现。

安装包:ExplorerDock-Setup-1.0.10.exe(x64,自带 .NET 运行时,无需另装)。