C# 等待另一个进程窗口已完全加载

C# 等待另一个进程窗口已完全加载,c#,process,devexpress,wait,C#,Process,Devexpress,Wait,我想知道如何才能知道我从Process.Start()启动的另一个应用程序是否已完全加载(所有控件都已准备就绪等),因为WaitForInput似乎无法工作。。。在我的例子中,我需要创建Automation Elements树,但有些DevXPress应用程序会动态创建控件,我不知道如何检查其状态。我也在用WindowPattern和WindowInteractionState检查窗口,但这并不能解决问题。我认为这取决于应用程序。其中一些包括标志或通信方法,可以告诉您这一点,而另一些则没有 您没

我想知道如何才能知道我从Process.Start()启动的另一个应用程序是否已完全加载(所有控件都已准备就绪等),因为WaitForInput似乎无法工作。。。在我的例子中,我需要创建Automation Elements树,但有些DevXPress应用程序会动态创建控件,我不知道如何检查其状态。我也在用WindowPattern和WindowInteractionState检查窗口,但这并不能解决问题。

我认为这取决于应用程序。其中一些包括标志或通信方法,可以告诉您这一点,而另一些则没有


您没有说是否正在使用DevExpress expressAppFramework,但根据我对XAF 12.1及更高版本的体验,有一个函数
xafhappendingcallbacks()
。如果可以找到查询此函数的方法,则应该能够验证DevExpress回调是否完成

例如,我使用Selenium

function waitForCallbacks() {
    selenium.waitForCondition("typeof selenium.browserbot.getUserWindow().xafHasPendingCallbacks == 'function';", timeout);
    selenium.waitForCondition("selenium.browserbot.getUserWindow().xafHasPendingCallbacks() == false;", timeout);
}
如果您使用的是纯DevExpress控件(没有XAF),那么我认为这种方法不起作用,但是如果您可以修改页面脚本,也许您可以创建类似的功能