我的应用程序正在加载第三方DLL,并且这些DLL中的一些打开MessageBox窗口。
有没有办法让我检测到这个窗户被打开的时候?
windows 命令显示超时的消息框?
链接到MessageBox VC ++ 2008 windows XP中的文件
为什么System.windows.MessageBoxImage具有相同值的枚举子项?
C ++:如何居中MessageBox?
在MessageBox c ++中显示一个variables
当显示MessageBox窗口时,您将需要一个CBT挂钩来接收通知。 您可以通过调用SetwindowsHookEx()函数并为钩子ID参数指定WH_CBT来安装。 钩子回调函数将为您提供MessageBox窗口的句柄,然后您可以使用它来关闭它。
如果您确切地知道何时会期望MessageBox被创建并显示,那么您可以采用比全局钩子更轻且更简单的方法。 这将涉及调用findwindowex函数来获取MessageBox窗口的句柄,您也可以使用它来关闭它。
当然,要正确关闭它,您需要知道它是哪种类型的MessageBox(即,它显示哪个标准按钮选项),以便您可以模拟所需按钮的点击。 简单地设法让MessageBox从屏幕上消失而不提供有效的答案很可能会在库代码方面产生意想不到的结果。
明确提到这是DLL的一部分, 真的是不好的行为。 除非绝对必要,否则不要把任何第三方的代码写在你身上。 如果这是绝对必要的,那么这是一个红旗:努力消除它是必要的。 你不应该编写和维护代码,以解决他们无法得到明显的东西。
总结以上是内存溢出为你收集整理的检测MessageBox的创build全部内容,希望文章能够帮你解决检测MessageBox的创build所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)