我正在尝试使Windows脚本组件能够在x64开发计算机上运行。在x32位上工作正常。但似乎无法使其运行,JScript和VBScript都存在相同的问题。
这是最简单的wsc组件。它所做的所有事情都会在消息框中弹出“ Hello”。如果将以下代码段保存到名为test_lib.wsc的文件中,则可以右键单击并注册它。现在可以作为COM组件使用。
<?xml version="1.0"?>
<component>
<?component error="true" debug="true"?>
<registration
description="Test Script Library"
progid="TestScript.Lib"
version="1.00"
classid="{314042ea-1c42-4865-956f-08d56d1f00a8}"
>
</registration>
<public>
<method name="Hello">
</method>
</public>
<script language="VBScript">
<![CDATA[
Option Explicit
Function Hello()
MsgBox("Hello.")
End Function
]]>
</script>
</component>
接下来,创建以下示例vb脚本并将其保存到名为test.vbs的文件中
dim o
set o = createobject("TestScript.Lib")
o.hello()
当我使用cscript或wscript运行test.vbs时,总是得到以下内容。
“ C:\ test.vbs(3,1)Microsoft VBScript运行时错误:ActiveX组件无法创建对象:'TestScript.Lib'”
在32位XP上,这可以正常工作。
有人对可能出什么问题有任何想法吗?
谢谢一大堆
诺埃尔
最佳答案
从Wndows Explorer上下文菜单中注册wsc,在64位Windows 7上一切正常。
我在32位命令提示符下运行时遇到问题,必须从%windir%\sysWOW64
中使用regsvr32重新注册wsc,然后从64或32位版本运行cscript.exe的64位和32位版本都可以命令提示符。
确定要注册wsc时,是否正在使用%windir%\sysWOW64
文件夹中的regsvr32?
regsvr32有两种版本,一种是32位(在sysWOW64中),一种是64位(在system32中),它们都被命名为regsvr32。
困惑?加入我们其他人:)
这是一个很好的链接,重点介绍了64位Windows上的一些陷阱:All the same yet very different