【发布时间】:2009-09-10 11:10:17
【问题描述】:
我如何以编程方式(在 C# 中)确定另一个外部应用程序(本机、java、.NET 或其他什么...)当前是否需要用户输入?这可以完全在托管代码中完成吗?
我正在寻找的是:
static Boolean IsWaitingForUserInput(String processName)
{
???
}
要求用户输入是指当应用程序要求用户输入一些数据或退出错误消息(模式对话框)并且不再能够执行其正常任务时。此处不指等待用户绘制内容的绘图应用程序。
PS:经过编辑以反映底部的 cmets 并使问题更清晰,某些 cmets 和答案可能与问题不是 100% 一致。在评估答案和评论时要考虑到这一点。
【问题讨论】:
-
您能在 GUI 应用程序中定义“等待用户输入”吗?鼠标点击不也是用户输入吗?
-
等待用户输入我的意思是指一切让第三方工具自动继续工作的事情。这包括等待退出一个对话框(在我们大多数情况下就像一个错误消息框)
-
我理解你的意思吗,“第三方工具”和“ANOTHER外国应用程序”都是指同一个应用程序,你要检查谁的状态?
-
对!我想了很多关于如何清楚地表述问题,令人惊讶的是人类交流中总是存在这么多问题:-)
-
我知道这没有回答您的问题,但我相信您正在寻找的应用程序状态的名称是“input-idle”。尝试搜索它,看看是否有任何有用的点击。
标签: c# user-interface automation modal-dialog