執行大型程式/遊戲時,XP 系統彈出「記憶體無法為 written」(正確訊息應為「記憶體無法為 read 或 written」)錯誤,通常源於 虛擬記憶體磁碟碎片過多 或 系統 DLL/OCX 元件註冊異常。以下提供兩階段完整修復方案。
階段一:虛擬記憶體碎片整理(核心解決)
1. 確認虛擬記憶體所在磁碟
- 我的電腦 右鍵 → 內容 → 進階 索引標籤。
- 「效能」區塊點 「設定...」 → 進階 索引標籤。
- 「虛擬記憶體」區塊點 「變更...」,查看分頁檔案位置(通常在 C:)。




2. 對該磁碟執行碎片整理
- 「我的電腦」→ 右鍵 C: → 內容 → 工具 索引標籤。
- 點擊 「立即碎片整理...」 → 選擇 C: → 「分析」。
- 若分析結果顯示紅色區塊多(碎片嚴重),點擊 「碎片整理」。
- 等待完成(可能需 30 分鐘以上),直到提示「不需要碎片整理」。





階段二:重新註冊所有 DLL 與 OCX 元件(修復系統元件)
- 按 Win + R → 輸入
cmd → 確定,開啟命令提示字元。

- 輸入以下指令並按 Enter(過程約 5-15 分鐘,畫面會快速滾動):
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1

- 繼續輸入以下指令註冊 OCX 元件:
for %1 in (%windir%\system32\*.ocx) do regsvr32.exe /s %1

- 兩條指令皆跑完後,重新開機。
補充說明
- 原理:虛擬記憶體碎片導致分頁檔讀寫不連續,程式存取時觸發錯誤;DLL/OCX 註冊資訊遺失導致函式呼叫失敗。
- 若問題持續:檢查實體記憶體(MemTest86)、硬碟健康度(CrystalDiskInfo)、掃毒、更新顯卡驅動。
- 注意:註冊過程中若彈出個別錯誤視窗請忽略,/s 參數為靜默模式,大多已自動略過。
完成碎片整理與元件重新註冊後,「記憶體無法為 written」錯誤通常徹底消失。