【问题标题】:Problem creating simple "windows script components" on Windows 7在 Windows 7 上创建简单的“Windows 脚本组件”时出现问题
【发布时间】:2011-01-15 17:08:27
【问题描述】:

我正在尝试让 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 上运行良好。 有人对可能出现的问题有任何想法吗?

非常感谢 诺埃尔。

【问题讨论】:

    标签: windows-7 vbscript 64-bit windows-scripting


    【解决方案1】:

    从 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

    【讨论】:

    • 你是正确的,使用 WOW64 文件夹中的 regsvr32 的最终版本解决了这个问题。
    【解决方案2】:

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

    默认情况下,它将使用 64 位版本运行,并且无法加载 32 位组件。

    WScript 和 CScript 的 32 位版本在 "%SystemRoot%\SysWOW64\ 中找到

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

    HKEY_CLASSES_ROOT\VBSFile\Shell\Open32\Command

    并给它默认值:-

    "%SystemRoot%\SysWOW64\WScript.exe" "%1" %*

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

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

    【讨论】:

    • 我第一次尝试使用纯 64 位注册,因为所有都是 64 位。无论如何,我用 regsvr32 取消注册组件,运行以下“C:\Windows\SysWOW64\cscript.exe c:\test.vbs”,仍然遇到同样的问题。
    猜你喜欢
    • 2011-12-30
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多