解决不能创建WScript.Shell对象以及SnippetCompiler无法找到入口的问题

搭了一天的环境,竟然是windows的版本DLL的问题,实在是崩溃啊!!!!!!

 

 

 

 

今天网上闲逛,发现几款据说是.Net开发的必备工具,其中包括一个小的代码编写工具SnippetCompiler,于是下了,但是有占郁闷的是运行后出现提示:

      “Snippet Compiler - 无法找到入口”
      “无法定位程序输入点 DoOpenPipeStream 于 ScrRun.dll 上。”

如下图:
       

      点击发送错误报告,得到的信息是:
      “检索 COM 类工厂中 CLSID 为 {F935DC22-1CF0-11D0-ADB9-00C04FD58A0B} 的组件失败,原因是出现以下错误8007007f ”。然后打开注册查寻CLSID为{F935DC22-1CF0-11D0-ADB9-00C04FD58A0B}的COM组件正是WScript.Shell,然后写了用下VBS脚本测试发现有错误:

       dim objShell
       set objShell=wscript.createObject("WScript.Shell")

       错误消息和前面的一样“WSript.exe - 无法找到入口 ”,无法创建名为“Wscript.Shell”的对象。于是开始了疯狂百度,原因是说要么脚本被禁用(不可能,因为弹出消息来了嘛),二是文件被改动。网上一般是说注册两个组件就OK了,如下:

       regsvr32 srcrun.dll
       regsvr32 wshom.ocx

       前一个执行成功,后一个怎么弄都是错误,消息是“LoadLibary("wshom")失败,找不到指定的程序”,看了看system32目录下,wshom.ocx是有的。后来开始认识到可能是wshom.ocx被破坏了,于是找了相同版本的电脑(我的是XP SP3),然后写段脚本,把下面的文件拷出来:

mkdir c:\repair
set source=%windir%\system32
set target=c:\repair
copy %source%\cscript.exe %target%
copy %source%\jscript.dll %target%
copy %source%\scrobj.dll %target%
copy %source%\scrrun.dll %target%
copy %source%\vbscript.dll %target%
copy %source%\wscript.exe %target%
copy %source%\wshext.dll %target%
copy %source%\wshom.ocx %target%
pause

并将对方机器上的c:\repair目录拷贝到我的c:\下,然后用下列脚本更新:

set source=c:\repair
set target=%windir%\system32
copy %source%\cscript.exe %target%
copy %source%\jscript.dll %target%
copy %source%\scrobj.dll %target%
copy %source%\scrrun.dll %target%
copy %source%\vbscript.dll %target%
copy %source%\wscript.exe %target%
copy %source%\wshext.dll %target%
copy %source%\wshom.ocx %target%
regsvr32 %target%\jscript.dll
regsvr32 %target%\scrobj.dll
regsvr32 %target%\scrrun.dll
regsvr32 %target%\vbscript.dll
regsvr32 %target%\wshext.dll
regsvr32 %target%\wshom.ocx
pause

完成后使用脚本测试CreateObject("WScript.Shell")成功,打开SnippetCompiler成功。

你可能感兴趣的:(问题,dll)