【问题标题】:Can't access the COM interface无法访问 COM 接口
【发布时间】:2009-12-07 13:50:43
【问题描述】:

我正在处理对应用程序文档的扫描测试(令人震惊),其中的内容似乎具有误导性/矛盾性。我也会问软件公司,但他们的最后回复花了几周时间。与此同时......(谢谢)......

我正在尝试访问我们将调用的 GUI 应用程序的 [alledged] COM 接口:Xyz

我的问题:下面的结果是否暗示您没有可用的 COM 接口,需要注册等等...

用户手册状态:

以下是与应用程序的 COM 接口能力相关的仅有的两个引用:

  1. “由于 Xyz 是使用 COM(组件对象模型)组件的 32 位应用程序, 从网络运行 Xyz……”。

  2. “您可以访问 Xyz.Interface COM 对象以查询信息并以您喜欢的格式呈现”。

代码示例 1:

调暗 xyz_com 设置 xyz_com= CreateObject("Xyz.Interface") xyz_com.Visible=false

结果 1:

“对象不支持此属性或方法:'Visible'”

代码示例 2:

调暗 xyz_com 设置 xyz_com= CreateObject("Xyz.Interface")

结果 2:

出现初始应用程序屏幕 - 如果我按照他们所说的那样以“服务器模式”启动应用程序 - 我认为我不会显示该屏幕。

代码示例 3:

调暗 xyz_com 设置 xyz_com= CreateObject("Xyz.Interface") xyz_com.QueryInterface()

结果 3:

“对象不支持此属性或方法:'QueryInterface'”

【问题讨论】:

    标签: com queryinterface


    【解决方案1】:

    以下结果是否对您有所暗示 没有COM接口 可用,它需要 注册等。 CreateObject调用成功,所以COM接口存在并被注册。

    一些cmets:

    • 不能像VB那样直接调用QueryInterface
    • 在设置 Visible 属性之前,您需要将对象强制转换为正确的接口。试试Dim xyz_com as Xyz.Interface 而不是Dim xyz_com

    【讨论】:

    • 对不起 - 没有提到这是 VBScript/WSH,其中 AS 没有很好地完成。但感谢接口存在并已注册的信息。我比以前更远;)
    • 行得更远一点。使用 VS 我查找了 COM 接口并找到了它们的方法。他们似乎没有我需要的那个(震惊),但更麻烦。当我将 CreateObject() 用于 Excel 应用程序时,我可以选择设置 visible=false 以便 VB 代码可以在不看到屏幕的情况下使用 Excel。这些 COM 接口似乎没有这样的能力:我 CreateObject (Xyz.Interface) 和 BANG 我正在创建一个成熟的 GUI,屏幕等等。这似乎违背了 COM 接口的目的吗?我本可以正常启动 GUI 并获得屏幕......
    猜你喜欢
    • 2010-09-30
    • 2019-11-11
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 2014-01-06
    • 2021-08-26
    相关资源
    最近更新 更多