c# - 通过互操作调用 dll 函数时,是否有捕获或终止弹出窗口的方法?

标签 c# interop dllimport messagebox

我正在编写一个 C# 应用程序,它在使用非托管代码编写的 DLL 中调用一个函数。

在大多数情况下,调用工作正常,被调用的函数返回一个整数值,指定成功或少量错误代码。但是,对于一些错误代码,DLL 似乎还会弹出一个消息框,提供有关该错误的更多信息。

我无法知道对于给定的函数调用是否会发生这种情况,并且不想用这些消息框来打扰用户,因为有时我会在批处理过程中调用此函数数千次并且我宁愿用户不必按“确定”键,无论发生多少次失败。

是否有任何方法可以确定在给定调用后显示了消息框,或者通常禁用或不允许在给定调用期间显示任何窗口或表单?这似乎不太可能,但我想无论如何我都会问。

谢谢, M先生

最佳答案

正如您所怀疑的,您将无法从您未编写的代码中抑制弹出窗口,除非调用具有可以为您执行此操作的特定参数。消息框是否与特定错误代码相关联?

有一些可用的程序可以监视您的计算机是否有特定的窗口,并在它们出现时单击它们上的按钮,当然要求用户也运行它会有点负担。 [编辑:Joe 指出您可以在单独的线程上自己完成此操作。也是一种选择。]

在使用依赖项时总是需要权衡取舍,您必须在依赖项的有用性和必要性与它可能需要您做出的妥协之间取得平衡。

关于c# - 通过互操作调用 dll 函数时,是否有捕获或终止弹出窗口的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5979572/

相关文章:

c# - 托管 C++ 和 C# 中的等效代码(VB6 中的事件)

c# - routes.MapMvcAttributeRoutes() 和 context.Routes.MapMvcAttributeRoutes() 有什么区别?

c# - 如何将 const unsigned char * 从 C++ 传递到 C#

c++ - 如何链接到 C++/Cli 混合模式 dll 中的 native 类

c# - 为什么不能使用自动布局编码结构

c# - 涉及指针时如何P/Invoke

c++ - 关于 dllexport/dllimprt 的困惑

c# - 使用动态类型而不是不可能的通用属性

c# - 在 WPF 中将 Image.Source 绑定(bind)到字符串?

c# - TabTip 键盘 c# 的设置位置不起作用