2010-10-07 67 views
0

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

对于本次讨论,我们假设MsgBox标题为“SQL Application”,消息为“SQL Error - Try Again”。

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

可以避免这种情况吗?

回答

0

嗯,你可以像弯路(见http://research.microsoft.com/en-us/projects/detours/),并写出您加载到进程的MessageBox绕道而行,但也有几个问题:

1)它只有32位,除非你支付pro版本 2)所涉及的开发工作可能不平凡,尤其是如果您没有很多C/C++内部经验。我想你可以写一个托管包装绕道而行,但这听起来也有些牵连。 3)你不能在没有Pro版本的情况下使用它。

这是你继承的应用程序吗?

+0

不,它绑定到我放在窗体上的控件。它有一个MsgBox在某些情况下会触发,但我需要隐藏它。没有事件发生,因此我不能以这种方式拦截它。 – 2010-10-07 22:29:00

+0

而对于那些想知道的,不...它不是一个正在尝试阻止的授权(唠叨屏幕)消息。这都是合法的。 – 2010-10-07 22:29:38

+0

不,他们不能。谢谢,但我更愿意专注于这个问题。我很感谢你的回答。我检查了绕道。我期待着更多的“内置”.Net。如果没有其他答案,我会接受你的。它在技术上做我在问什么。 – 2010-10-07 23:15:05