首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C# .Net中,如何检测是否显示对话框?

在C# .Net中,如何检测是否显示对话框?
EN

Stack Overflow用户
提问于 2009-12-11 01:29:21
回答 3查看 1.8K关注 0票数 2

我正在开发一个使用Microsoft XPS文档编写器驱动程序打印报告的应用程序。如果用户试图覆盖打开的文件,驱动程序会弹出一个错误对话框,用户无权保存该对话框。然而,在一个QA的机器上,弹出对话框从未出现过。我希望应用程序弹出自己的错误对话框,但只有在驱动程序的错误对话框没有弹出的情况下。如何检测驱动程序错误对话框是否弹出?

EN

回答 3

Stack Overflow用户

发布于 2009-12-11 01:36:10

不要让错误传播到那么远?

询问文件名,检测它(不存在),显示您自己的错误,将文档传递给打印机。

票数 1
EN

Stack Overflow用户

发布于 2009-12-11 01:41:50

我不认为这是你能100%做对的事情。除非有一些你不知道的API,否则判断对话框是否出现的唯一方法是屏幕抓取。也就是说,查看活动窗口集并查看其中是否有指示错误对话框弹出的标题/消息。

不过,这种方法有几个问题。第一个问题是它会产生假阳性。你可能会被一个名字相似的对话框所欺骗。

此外,也不能保证您的代码在用户关闭对话框之前会运行。因此,你最终可能会决定对话框在实际出现的情况下不会出现。

票数 1
EN

Stack Overflow用户

发布于 2009-12-11 01:41:01

要测试窗口是否存在,可以使用类似于FindWindow functionEnumWindows functionEnumChildWindows function的代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1882617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档