dsh-quiet-browser:讓 DSH 內置瀏覽器不搶前臺、不遮擋

前言

在 DeepSeek Harness(DSH)裏用內置瀏覽器加載網頁時,工具需要一個真實的 Electron 窗口。默認情況下,這個窗口會頂到最前並搶走鍵盤焦點,你在別的應用裏打字、看文檔的流程會被打斷。若你只是希望 Agent 在後臺照常加載頁面、執行腳本或截圖,並不想每次都被瀏覽器窗口「拽」回來,就需要單獨處理窗口行爲。

dsh-quiet-browser 是社區維護的 DSH 插件,分類爲聯網工具。它不改動 dsh-builtin-browser 和 DSH 本體,而是在 Windows 上用守護進程監聽窗口事件,把標題以 dsh-browser 開頭的瀏覽器窗口壓到最底層,並設爲不可激活,從而儘量不搶焦點、不遮擋你正在用的窗口。

這是什麼

  • 名稱:dsh-quiet-browser(倉庫 Yyhy110421/dsh-quiet-browser)
  • 維護者:Yyhy110421
  • 定位:DSH 窗口行爲插件;內置瀏覽器繼續工作,窗口儘量不蓋住前臺、不搶鍵盤焦點
  • 平臺:僅 Windows(宿主通過 PowerShell + Win32 API 操作窗口)

社區插件目錄見 SkillHub 插件頁。目錄站與 DeepSeek / 幻方無官方從屬關係,安裝前建議自行查看倉庫源碼與 MIT 許可證;插件隨當前 DSH 進程權限運行。

核心功能

下面介紹插件在資料中明確寫到的能力。

  • 只處理 DSH 瀏覽器窗口:僅匹配標題以 dsh-browser 開頭的窗口,不碰 DSH 主窗口、微信、資源管理器以及你自開的 Chrome / Edge。
  • 功能不因「靜默」而失效:窗口仍存在,頁面照常加載、點擊、執行 JS、截圖;截圖優先走 CDP,原生 capturePage 失敗時會自動回退,資料中寫明實測 dsh_browser_screenshot 正常。
  • 不搶焦點:爲窗口加上 WS_EX_NOACTIVATE;若瀏覽器仍搶到前臺,守護進程會嘗試把上一個用戶窗口切回(SetForegroundWindow,失敗再試 SwitchToThisWindow)。
  • 不遮擋普通窗口:通過 SetWindowPos(HWND_BOTTOM) 把瀏覽器壓到所有普通窗口下面。
  • 可隨時開關:DSH 設置 → 靜默瀏覽,可啓用或暫停;暫停後會去掉「不激活」樣式,瀏覽器恢復普通行爲,便於手動接管或處理驗證碼。

安裝與啓用

先做插件安裝,再重啓 DSH。

  1. 在 DSH 中打開 設置 → 插件管理器。
  2. 從下列來源之一安裝(命令須與倉庫 README 一致):
github:Yyhy110421/dsh-quiet-browser

若本機已有倉庫副本,也可用本地路徑(實體拷貝):

file:<本倉庫的絕對路徑>
  1. 安裝完成後 重啓 DSH 生效。

說明:file: 安裝是實體拷貝,改源碼後需卸載再裝纔會更新;update 僅支持 npm 註冊表插件,本插件不發佈到 npm。

配置

配置文件路徑:$DSH_HOME/data/quiet-browser.json;未設置 DSH_HOME 時使用 ~/.dsh。

{
  "enabled": true,
  "pollMs": 200
}
  • enabled:是否啓用;也可在設置頁切換。
  • pollMs:兜底輪詢間隔(毫秒,範圍 50–5000),默認 200。窗口創建、顯示或切前臺時由 WinEvent 鉤子立即處理,輪詢僅作兜底。

工作方式(便於排查)

經過上面的安裝步驟後,插件隨 DSH 啓動隱藏的 PowerShell 守護進程(lib/quiet-browser.ps1),大致流程如下:

  1. 使用 SetWinEventHook 監聽前臺切換、窗口顯示、標題變化。
  2. 命中目標窗口時添加 WS_EX_NOACTIVATE,並調用 SetWindowPos(HWND_BOTTOM)。
  3. 插件卸載或暫停時,守護進程清除 WS_EX_NOACTIVATE,窗口恢復正常。

開發與自測時,可在倉庫目錄執行(資料原文):

# 查看當前目標窗口與「不激活」狀態
powershell.exe -NoProfile -ExecutionPolicy Bypass -File lib/quiet-browser.ps1 -Action status

# 前臺運行守護進程(Ctrl+C 退出)
powershell.exe -NoProfile -ExecutionPolicy Bypass -File lib/quiet-browser.ps1 -Action watch -PollMs 100

宿主部分零第三方依賴;窗口操作集中在 lib/quiet-browser.ps1(Add-Type + Win32 API)。

適用場景與注意

適合誰:在 Windows 上長期開着 DSH、頻繁讓 Agent 用內置瀏覽器抓頁或操作 DOM,又不希望瀏覽器窗口反覆蓋住 IDE、終端或聊天窗口的開發者。

已知限制(以 README 爲準):

  • 瀏覽器窗口創建瞬間可能仍有一幀閃動,顯示後守護進程會立即壓回。
  • 按窗口標題匹配;若有其他程序故意使用 dsh-browser 標題,也會被壓到底層。
  • 瀏覽器被壓在最底層後,正常情況下可能被 DSH 主窗口擋住;需要目視頁面時,在設置裏暫停或等任務結束。
  • 僅 Windows。

結尾

dsh-quiet-browser 用獨立守護進程調整 DSH 內置瀏覽器窗口的 Z 序與激活策略,在不改瀏覽器工具本身的前提下,減輕「彈窗搶焦點」對日常操作的干擾。需要進一步瞭解能力、限制與安裝方式時,可查閱 SkillHub 目錄頁 與 GitHub 倉庫。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜