gpt4 book ai didi

C# 在对它们执行某些操作之前检查 COM 对象是否可用

转载 作者:行者123 更新时间:2023-11-30 12:18:30 24 4
gpt4 key购买 nike

在使用它们运行操作之前,如何检查 COM 对象是否存在(已注册/可用/可以正常运行)?

我的应用程序应该使用其他应用程序的 COM (InteropServices),但在我开始一些操作之前,我想检查我是否可以创建 COM 对象。

如果 COM 在同一个目录中,那不会有问题,但它们不是。

例如。我想检查是否像这样:

CDNBase.ApplicationClass App = new CDNBase.ApplicationClass();

会导致可捕获的异常或其他东西。比我可以创建漂亮的 MessageBox 并阻止一些事件,直到它被修复。任何其他解决方案,如检查 namespace 是否存在或其他,也可以(我猜 :D )

我尝试使用 try/catch,但它失败了,谷歌没有给我带来任何特别的东西,所以我请求你的帮助。

提前致谢

最佳答案

没有人喜欢看到错误信息。但这是特殊情况,不要这样做。 COM 激活一直很难排除故障。但最近的发展,如 64 位操作系统、注册表虚拟化、注册表重定向和 UAC,已经成倍地增加了它可能无法工作的方式的数量。

您客户的 IT 员工最不需要的是另一层代码,它可以静默更改激活规则或抑制诊断信息。当它不起作用而且他们找不到原因时,他们会严厉地抨击你。

首先问问自己,当互操作不起作用时,您的程序是否仍然有用。如果不是,则什么都不做,让异常终止您的程序,但要确保异常详细信息清晰可见。

如果它仍然有用,那么只需向您的程序添加一个配置选项,让它甚至无需尝试即可绕过互操作。

关于C# 在对它们执行某些操作之前检查 COM 对象是否可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2167474/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com