我如何以编程方式(在 C# 中)确定另一个外部应用程序( native 、java、.NET 或其他...)当前是否需要用户输入?这可以完全在托管代码中完成吗?
我正在寻找的是实现:
static Boolean IsWaitingForUserInput(String processName)
{
???
}
我所说的要求用户输入是指当应用程序要求用户输入一些数据或退出错误消息(模态对话框)并且无法再执行其正常任务时。等待用户绘制内容的绘图应用程序不是这里的意思。
PS:经过编辑以反射(reflect)底部的评论并使问题更清楚,某些评论和答案可能与问题不100%一致。在评估答案和评论时考虑到这一点。
最佳答案
这通常是不可能的。以一种常见的应用程序为例,文字处理器。如今,它将在后台运行拼写检查,它会定期自动保存您的文档,等等。然而,从用户的角度来看,它一直在等待输入。
另一种常见情况是幻灯片查看器。您可以随时按一个键来推进幻灯片。然而,您的典型用户不会将此视为“等待输入”。
总结一下:“等待输入”是一种主观状态,因此无法通过编程方式确定。
关于c# - 以编程方式查明进程是否需要用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404658/