【问题标题】:GetObject within VB6 not working when UAC is turned to Default当 UAC 变为默认值时,VB6 中的 GetObject 不起作用
【发布时间】:2016-08-05 20:20:55
【问题描述】:

我正在尝试连接到已经存在的 Word 窗口。

设置 WordApp = GetObject(, "Word.Application")

如果 UAC 已关闭,则可以正常工作。如果 UAC 设置为“默认”,我会收到错误消息。 “ActiveX 组件无法创建对象”。

我在实验中注意到,如果 Word 以“以管理员身份运行”启动,则一切正常。不幸的是,我希望运行的框/登录可能没有管理员权限。

【问题讨论】:

    标签: vb6 uac


    【解决方案1】:

    这听起来像是 2006 年开发人员接受的一个问题。

    您希望两个进程具有相同的完整性级别。听起来好像您正在运行提升的 IDE 中进行测试,通常情况下应该如此。如果是这样,那么您想要自动化的流程也必须提升。

    正常运行时这应该不是问题,因为这两个进程通常会在同一级别运行,标准用户。如果您需要除此之外的其他内容,则需要带有 uiAccess = True 的清单,并且您的代码必须经过签名并正式安装。

    请参阅Windows Integrity Mechanism Design 中的用户界面特权隔离 (UIPI) 和完整性

    但是automating Office has been deprecated for a very long time.

    【讨论】:

    • 我现在正在查看文档。根据流程资源管理器工具,我可以清楚地看到我的应用程序以等于高的“完整性”运行,并且当我启动一个单词实例(手动)连接时,它的完整性为中等。即使在 IDE 之外问题仍然存在,大概是因为完整性级别不一样?
    猜你喜欢
    • 2021-09-23
    • 2020-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多