【问题标题】:Block MsgBox From External Application Using VB.Net使用 VB.Net 阻止来自外部应用程序的 MsgBox
【发布时间】:2010-10-07 18:55:03
【问题描述】:

有没有办法从外部应用程序拦截 MsgBox() 并使用 VB.Net 阻止它?

对于本次讨论,假设 MsgBox 标题为“SQL 应用程序”,消息为“SQL 错误 - 重试”。

我发现了一些寻找要弹出的 MsgBox 的示例(通过查看窗口标题),然后发送键以按 OK,但我很好奇是否可以避免整个过程。否则,即使只是暂时的,用户仍然会看到 MsgBox 或“flash”。

是否可以避免这种情况?

【问题讨论】:

    标签: windows vb.net block intercept msgbox


    【解决方案1】:

    好吧,你可以像 detours 一样(见 http://research.microsoft.com/en-us/projects/detours/),并为你加载到你的进程中的消息框写一个 detour,但是有几个问题:

    1) 它只有 32 位,除非您为专业版付费 2) 所涉及的开发工作可能很重要,尤其是如果您没有很多内部 C/C++ 经验。我想您可以为绕道编写一个托管包装器,但这听起来也很复杂。 3) 如果没有专业版,你不能在商业上使用它。

    这是你继承的应用吗?

    【讨论】:

    • 不,它与我放置在表单上的控件相关联。它有一个在某些情况下会触发的 MsgBox,但我需要隐藏它。触发的控件没有事件,因此我无法以这种方式拦截它。
    • 对于那些想知道的人,不...这不是我试图阻止的许可(唠叨屏幕)消息。都是合法的。
    • 不,他们不能。谢谢,但我更愿意专注于这个问题。我很感激你的回答。我检查了绕道。我期待 .Net 更“内置”一些东西。如果没有其他答案,我会接受你的。从技术上讲,它可以满足我的要求。
    猜你喜欢
    • 2018-11-10
    • 2017-02-08
    • 1970-01-01
    • 2020-05-08
    • 2013-02-25
    • 1970-01-01
    • 2019-12-12
    • 2020-07-23
    • 1970-01-01
    相关资源
    最近更新 更多