【问题标题】:VBScript and CreateObject issueVBScript 和 CreateObject 问题
【发布时间】:2012-02-13 11:06:13
【问题描述】:

如果是关于 VBScript,我并没有真正尝试过,但我有机会通过论坛阅读了很多东西,实际上昨天我帮助某人检查了为什么他的脚本不起作用并为他找到了解决方案。所以我在本地修改了这个脚本,并按照我的方式进行了操作,并且它可以工作,但是在另一方,无法初始化对象之一。

罪名是这样的

    Set WshNet = WScript.CreateObject("WScript.Network")

另一个人告诉要删除 WScript 东西,它似乎在提问者方面有效。

我最初认为这可能与我使用 Wscript.exe 和该人使用 CScript.exe 相关(我的假设),但我在命令行中检查了这一点,但它仍然有效。 所以,我想知道和理解的是为什么会这样? 为什么调用 CreateObject 的脚本可以与“WScript”一起使用。但在另一个系统上,您需要删除该“WScript”。让它继续工作? 感谢您的时间和回答。 ;) 最好的问候。

【问题讨论】:

    标签: vbscript createobject


    【解决方案1】:

    “WScript.CreateObject”或“WScript.Echo”中的“WScript”是由 c|wscript.exe 脚本宿主提供的(对象的名称)。如果您在其他主机(例如 ie 或 mshta)下/中运行 VBScript,则没有此类对象。

    语言本身有一个(不同的!,请参阅文档以获取详细信息)“CreateObject”函数,可以在所有 VBScripts 主机下/中使用。所以为了安全起见,请使用普通的“CreateObject”。

    “WScript.Network”中的 WScript 是 COM 对象的 ProgId 的一部分,它可能安装在您的计算机上(或未安装)。那些“名字”为“WScript”的 COM 对象与 c|wscript.exe 提供的 WScript 对象完全不同。

    所以我的第一个假设是:“某人”在 ie 或 mshta 下/中执行了代码,并通过删除“WScript”解决了问题。从“WScript.CreateObject”,即回退到VBScript自己的CreateObject。

    【讨论】:

    • 我认为这是一个不错的答案。
    猜你喜欢
    • 2010-12-24
    • 2012-12-22
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 2014-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多