開機出現「拒絕存取,載入 C:\WINDOWS\SYSTEM32\xxx.dll 時發生錯誤」,通常是該 DLL 已被刪除 (病毒掃除、軟體解除安裝不完全),但登錄/啟動項仍保留載入指令。提供三級修復方案。
方案一:系統設定工具 (msconfig) 停用啟動項 (最快、最安全)
- Win+R → `msconfig` → 「啟動」索引標籤。
- 尋找指令欄包含該 DLL 檔名 (如 `xxx.dll`) 的項目 → 取消勾選。
- 確定 → 重新開機。錯誤訊息應消失。
方案二:登錄編輯器刪除殘留 Run 鍵值 (徹底)
- Win+R → `regedit`
- 依序檢查並刪除下列路徑中指向該 DLL 的值:
`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run`
`HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce`
`HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce`
- 若發現值名亂碼 (如 `soft2 vOQ>&wb+Ax`)、資料指向不存在的 DLL/EXE,直接刪除該值。
- 重新開機驗證。
方案三:優化大師/超級兔子/CCleaner 掃描無效登錄 (自動化)
- 執行「掃描登錄錯誤」→ 勾選「缺少檔案參考」、「無效啟動項」等 → 「修復」。
- 工具會自動偵測指向不存在檔案的 Run/RunOnce/Shell/ContextMenuHandlers 等鍵值並清除。
根因分析與預防
| 原因 | 典型情境 | 預防 |
| 病毒/木馬 DLL 被防毒軟體刪除 | Trojan.Kardphisher、瀏覽器劫持器、下載器 | 防毒軟體選「隔離」而非「刪除」,掃毒後重開機再清理隔離區 |
| 軟體解除安裝程式殘留 | 盜版軟體、舊版驅動、工具列、編解碼器包 | 使用 Revo Uninstaller、Geek Uninstaller 監控安裝並完整移除 |
| 惡意軟體自我保護機制 | 登錄 `Run` 寫入隨機值名、設定 `DisableTaskMgr` | 定期 `autoruns.exe` (Sysinternals) 檢視所有自動啟動點 |
進階:若點擊「確定」後系統正常運作
表示該 DLL 非核心系統元件,僅為殘留載入指令。依上述方案清理即可,無需重灌系統。