)
ExplorerPatcher WinX菜單失靈Windows 11 22631 快速排障與修復(fù)【免費(fèi)下載鏈接】ExplorerPatcherThis project aims to enhance the working environment on Windows項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcherWindows 11 升到 22631 之后ExplorerPatcher 用戶反饋 WinX 按下去沒有任何反應(yīng)。這個(gè)快捷鍵對(duì)應(yīng)的電源用戶菜單Device Manager、Task Manager 的快捷入口從此打不開。受影響的是系統(tǒng)構(gòu)建 22631.xxxx 的 Windows 11常用設(shè)備管理流程會(huì)卡在這一步。問題復(fù)現(xiàn)按 WinX屏幕完全無反應(yīng)無報(bào)錯(cuò)彈窗無菜單閃現(xiàn)資源管理器進(jìn)程未崩潰任務(wù)欄右鍵菜單正常僅快捷鍵失效根源定位菜單落點(diǎn)坐標(biāo)越出可見屏幕坐標(biāo)公式在 22631 上算出了一個(gè)不可見錨點(diǎn)。GetDefaultWinXPosition位于 ExplorerPatcher/dllmain.c用mi.rcMonitor.right取屏幕右邊緣作錨點(diǎn)。22631 里這個(gè)邊緣多了任務(wù)欄占據(jù)的不可見區(qū)域菜單被整體推出可見范圍像快遞被派送到不存在的門牌號(hào)。菜單繪制接口的簽名變了微軟改了 WinX 菜單的繪制接口。ImmersiveContextMenuHelper_ApplyOwnerDrawToMenu菜單換膚時(shí)調(diào)用的系統(tǒng)函數(shù)在 22631 的參數(shù)列表多了一項(xiàng)。舊簽名繼續(xù)按 5 個(gè)參數(shù)調(diào)用就會(huì)傳錯(cuò)數(shù)據(jù)菜單創(chuàng)建直接失敗像信件按新地址格式投遞被退回??旖萱I消息鏈在顯示環(huán)節(jié)斷開熱鍵本身注冊(cè)成功但后續(xù)鏈路斷了。dllmain.c里注冊(cè)熱鍵后要經(jīng)過窗口句柄系統(tǒng)給每個(gè)窗口的編號(hào)傳遞再交給菜單顯示線程。22631 的窗口行為變化讓這一環(huán)沒走完消息像掉進(jìn)傳送帶縫隙的包裹。三處代碼都在 ExplorerPatcher/ 目錄內(nèi)。修復(fù)操作修改dllmain.c中GetDefaultWinXPosition的右邊緣取法按下圖減去不可見邊距。驗(yàn)證點(diǎn)算出的坐標(biāo)應(yīng)落在屏幕可見區(qū)域內(nèi)。- point.x mi.rcMonitor.right; point.x mi.rcMonitor.right - 10; // 22631 右緣含任務(wù)欄不可見區(qū)在TwinUIPatches.cpp和dllmain.c同步更新ImmersiveContextMenuHelper_ApplyOwnerDrawToMenu的 typedef函數(shù)指針類型聲明并給所有調(diào)用點(diǎn)補(bǔ)上新參數(shù)。驗(yàn)證點(diǎn)全局搜索該函數(shù)名確認(rèn)簽名與實(shí)參數(shù)量一致。核對(duì)熱鍵注冊(cè)返回值與菜單顯示線程的啟動(dòng)順序。驗(yàn)證點(diǎn)斷點(diǎn)確認(rèn)消息能到達(dá)ShowLauncherTipContextMenu線程。用 Visual Studio 重新編譯ExplorerPatcher.sln生成新版 DLL。驗(yàn)證點(diǎn)編譯無錯(cuò)誤、無相關(guān)警告。將新 DLL 覆蓋部署重啟資源管理器進(jìn)程。驗(yàn)證點(diǎn)WinX 在任務(wù)欄角落正常彈出菜單。驗(yàn)證清單單屏WinX 菜單在任務(wù)欄角落彈出位置不偏移 ?逐項(xiàng)點(diǎn)擊 Device Manager、Task Manager、電源選項(xiàng)均可用光標(biāo)停在副屏?xí)r菜單出現(xiàn)在副屏對(duì)應(yīng)角落任務(wù)欄居中/左對(duì)齊/頂部布局下錨點(diǎn)位置均正確切換 1366×768 與 4K 分辨率后菜單不越界連續(xù)開關(guān)菜單 50 次資源管理器無崩潰長(zhǎng)時(shí)間掛機(jī)后重復(fù)觸發(fā)內(nèi)存占用平穩(wěn)長(zhǎng)期建議把版本判斷集中在osutility.h一類的工具頭文件里用global_rovi.dwBuildNumber系統(tǒng)構(gòu)建號(hào)做統(tǒng)一開關(guān)。關(guān)鍵分支留好日志下次接口再變能直接定位到具體環(huán)節(jié)。保持跟進(jìn)項(xiàng)目構(gòu)建與更新CHANGELOG.md 記錄了每個(gè)構(gòu)建號(hào)對(duì)應(yīng)的修復(fù)范圍。向項(xiàng)目反饋問題時(shí)附上系統(tǒng)版本號(hào)與復(fù)現(xiàn)步驟定位會(huì)快很多。 Windows 還在持續(xù)改動(dòng)內(nèi)部接口WinX 只是最先暴露的問題之一。本次排障順序就是坐標(biāo)、簽名、鏈路三條線按序排查基本不會(huì)漏。下次升級(jí)后失效同樣適用?!久赓M(fèi)下載鏈接】ExplorerPatcherThis project aims to enhance the working environment on Windows項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ex/ExplorerPatcher創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考