c# - 以编程方式查明进程是否需要用户输入

标签 c# user-interface automation modal-dialog

我如何以编程方式(在 C# 中)确定另一个外部应用程序( native 、java、.NET 或其他...)当前是否需要用户输入?这可以完全在托管代码中完成吗?

我正在寻找的是实现:

static Boolean IsWaitingForUserInput(String processName)
{
    ???
}

我所说的要求用户输入是指当应用程序要求用户输入一些数据或退出错误消息(模态对话框)并且无法再执行其正常任务时。等待用户绘制内容的绘图应用程序不是这里的意思。

PS:经过编辑以反射(reflect)底部的评论并使问题更清楚,某些评论和答案可能与问题不100%一致。在评估答案和评论时考虑到这一点。

最佳答案

这通常是不可能的。以一种常见的应用程序为例,文字处理器。如今,它将在后台运行拼写检查,它会定期自动保存您的文档,等等。然而,从用户的角度来看,它一直在等待输入。

另一种常见情况是幻灯片查看器。您可以随时按一个键来推进幻灯片。然而,您的典型用户不会将此视为“等待输入”。

总结一下:“等待输入”是一种主观状态,因此无法通过编程方式确定。

关于c# - 以编程方式查明进程是否需要用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1404658/

相关文章:

automation - 如何解决这个上下文无关语法

c# - Excel Range.BorderAround(), 边框总是黑色

c# - 此模式需要正则表达式 : point(latitude, 经度)

html - 我想在右下角和左下角留出间隔,以便使曲线图像更令人满意

android - PlacePicker.IntentBuilder 打开后立即关闭

windows - 如何在没有 GUI 的情况下运行 makecert.exe?

c# - VS 2017 .NET 核心二进制格式化程序

c# - 如何从 DateTime 和 TimeSpan 类型创建 DateTime 对象?

java - 使用 JavaFX 或 Swing 的 MDI

excel - 删除工作表的自动化错误