Scripting.Dictionary源於Microsoft Scripting Runtime(\Windows\System32\scrrun.dll),是讓我有機會在VB6, VBScript使用Hashtable的救星。

我一直以為Scripting Runtime是所有Windows內建且必備的核心元件,今天才發現並不盡然...

寫了個VBA,在User的機器上一直出現ActiveX Component can't create object.(ActiveX元件無法產生物件)的錯誤訊息,開始我以為是裡面用到的MSXML2.XMLHttp30版本不存在,後來才發現其實錯在建立Scripting.Dictionary時,仔細檢查了一下專案參照,scrrun.dll好好地躺在Windows\System32目錄下,若非是Scripting Host的安裝損壞了嗎??

用regedit搜尋,沒看到Scripting.Dictionary的元件註冊機碼,已有重裝Scripting Host的心理準備。暫且先Goggle了一下,發現有人提到遇到Scripting.Dictionary或FileSystemObject建立失敗時,可以先跑一下regsvr32 scrrun.dll,試試也沒損失... 噹噹~~~ 註冊scrrun.dll後,功能就正常了。

【結論】大家如果遇到Scripting.*家族的物件無法建立時,記得先試試regsvr32 scrrun.dll,如果還不行,就乖乖重裝Scripting Host吧!

參考文章


Comments

# by chicken

八成被某些兩光的防毒軟體給移掉的吧... 一堆 .vbs 病毒, 竟然看過很兩光的解決辦法: 把 scrrun.dll 註冊資訊移掉... [:@]

# by 小胖

最近也遇到了這個怪問題 不過沒有黑大這麼幸運,重新註冊 scrrun.dll 後,依然是無法建立 scripting.dictionary 相關物件 ! 準備重新安裝 WSH 了 ~ ORZ

Post a comment