如何查找进程是否已完全加载

时间:2012-01-07 13:04:52

标签: c# wpf

在我当前的项目中,我需要将密钥发送到我已启动的进程(我在此过程中没有任何控制权,但它是第三方)。现在要通过这些命令,EA的Origin必须在其主屏幕上(即登录后完全加载)。

现在,我不知道在达到这一点时我怎么能发现。我已经尝试等待输入空闲,但输入空闲是在我可以发送密钥的时间点之前实现的。

我可以使用其他方法来检测程序何时达到此状态?我想也许我可以检测到(如果)应用程序何时发出信号,但我不确定如果它发出信号,或者它发出信号要听它的话我怎么能找到。

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:1)

如果主窗口有一个不同的标题,您可以反复enumerate windows并等到进程主窗口出现。

BTW - 我对发送密钥有一些不好的经验(有时密钥没有通过),我发现将Send Key与读取进程UI(再次 ​​- 枚举窗口)结合起来效果最好。

答案 1 :(得分:1)

应用程序中是否有任何可视指示符,例如特定标签文本,在准备好接受输入时显示?如果是这样,您可以使用windows accessibility API(通过P / Invoke)来监视并将其用作触发器。也可以使用API​​来监视实际输入控件何时获得焦点。您甚至可以使用API​​代替SendKeys来获得更可靠的互动。