当“启动后窗口”选择“关闭”时,我点击右上角的“获取前台浏览器网页”或者按下Ctrl+N就会自动退出动作
问题:主窗口打开后,按 Ctrl+N 抓取前台浏览器网页时,窗口会直接关闭,而不是正常抓取。
原因:doAutoFetch 抓取前台浏览器时会调用 SetForegroundWindow(browserHwnd) 或 win.Hide(),导致主窗口失焦;而窗口的 Deactivated 事件在非持续模式下会失焦关窗。但 doAutoFetch 抓取前没有把 IgnoreDeactivate 设为 true,只在抓取完成后才设回 false,于是触发 SafeClose() 关窗。
修复建议:在 doAutoFetch 开头、bool originalTopmost = win.Topmost; 之前加一句:
IgnoreDeactivate = true;
抓取完成后已有 IgnoreDeactivate = false; 的恢复逻辑,不用改。
另附一个小问题:窗口位置保存后每次仍居中,是因为第 863.2 步「自定义窗口」的「窗口位置」设为 CenterScreen,覆盖了代码里恢复 win.Left/win.Top 的逻辑。建议把「窗口位置」从 CenterScreen 改为 Manual/空白,让保存的位置生效。以上是AI给的反馈,不知道有没有用
问题:主窗口打开后,按 Ctrl+N 抓取前台浏览器网页时,窗口会直接关闭,而不是正常抓取。
原因:doAutoFetch 抓取前台浏览器时会调用 SetForegroundWindow(browserHwnd) 或 win.Hide(),导致主窗口失焦;而窗口的 Deactivated 事件在非持续模式下会失焦关窗。但 doAutoFetch 抓取前没有把 IgnoreDeactivate 设为 true,只在抓取完成后才设回 false,于是触发 SafeClose() 关窗。
修复建议:在 doAutoFetch 开头、bool originalTopmost = win.Topmost; 之前加一句:
IgnoreDeactivate = true;
抓取完成后已有 IgnoreDeactivate = false; 的恢复逻辑,不用改。
另附一个小问题:窗口位置保存后每次仍居中,是因为第 863.2 步「自定义窗口」的「窗口位置」设为 CenterScreen,覆盖了代码里恢复 win.Left/win.Top 的逻辑。建议把「窗口位置」从 CenterScreen 改为 Manual/空白,让保存的位置生效。
以上是AI给的反馈,不知道有没有用