Windows 7 “创建简单”的问题;“windows脚本组件”;在Windows7上

Windows 7 “创建简单”的问题;“windows脚本组件”;在Windows7上,windows-7,vbscript,64-bit,windows-scripting,Windows 7,Vbscript,64 Bit,Windows Scripting,我正在尝试让Windows脚本组件在x64开发机器上运行。在x32钻头上工作良好。但似乎无法让它运行,我对JScript和VBScript都有相同的问题 下面是最简单的wsc组件。它所做的一切都会在消息框中弹出“你好”。如果您将下面的snippit保存到一个名为test_lib.wsc的文件中,那么您就可以右键单击并注册它。它现在作为COM组件提供 <?xml version="1.0"?> <component> <?component error="true"

我正在尝试让Windows脚本组件在x64开发机器上运行。在x32钻头上工作良好。但似乎无法让它运行,我对JScript和VBScript都有相同的问题

下面是最简单的wsc组件。它所做的一切都会在消息框中弹出“你好”。如果您将下面的snippit保存到一个名为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>
当我使用cscript或wscript运行test.vbs时,我总是得到以下结果。 “C:\test.vbs(3,1)Microsoft VBScript运行时错误:ActiveX组件无法创建对象:'TestScript.Lib'”

这在32位XP上工作得非常好。 有人知道什么地方可能出了问题吗

非常感谢
Noel.

您需要确保使用32位版本的WScript或CScript运行它

默认情况下,它将以64位版本运行,无法加载32位组件

WScript和CScript的32位版本位于
%SystemRoot%\SysWOW64\

我使用RegEdit添加了一个新的注册表项:-

HKEY\u CLASSES\u ROOT\VBSFile\Shell\Open32\Command

并将其默认值设置为:-

%SystemRoot%\SysWOW64\WScript.exe“%1”%*

这给了我一个VBS文件上下文菜单上的Open32条目


对于CScript执行,您需要确保CScript的路径获得SysWOW64文件夹版本。

从Wndows资源管理器上下文菜单注册wsc,在64位Windows 7上一切正常

我在从32位命令提示符运行时遇到问题,在那里,我必须从
%windir%\sysWOW64
使用regsvr32重新注册wsc,然后在从64或32位命令提示符运行时,它在64位和32位版本的cscript.exe中运行良好

您确定在注册wsc时使用的是
%windir%\sysWOW64
文件夹中的regsvr32吗

regsvr32有两个版本,一个32位(在sysWOW64中),一个64位(在system32中),它们都被命名为regsvr32

困惑?加入我们:)


这里有一个很好的链接,突出显示了64位Windows上的一些缺陷:

我首先尝试了纯64位注册,因为所有的都是64位。无论如何,我注销了组件,用regsvr32注册它,运行了以下“C:\Windows\SysWOW64\cscript.exe C:\test.vbs“但还是遇到了同样的问题。您很正确,使用WOW64文件夹中的最终版本的regsvr32解决了问题。
dim o
set o = createobject("TestScript.Lib")
o.hello()