我在WindowsForm(c#.net 3.5)中,单击按钮后,使用Process.Start()启动另一个外部应用程序(也是.net 3.5),并在启动后了解何时可用。

    ProcessStartInfo psInfo = new ProcessStartInfo(@"MyApplication.exe");
psInfo.RedirectStandardOutput = true;
psInfo.RedirectStandardError = true;
psInfo.UseShellExecute = false;
psInfo.CreateNoWindow = true;
Process proc = Process.Start(psInfo);

proc... IsFullyLoaded()?


我该怎么做?

最佳答案

要等待该过程创建其表单,请调用WaitForInputIdle方法。

要确定它是否准备就绪,请尝试以下操作:

bool isReady = proc.WaitForInputIdle(0);


或者,

bool isReady = (proc.MainWindowHandle != IntPtr.Zero);


您还可以使用MainWindowHandle属性使用SendMessage API函数将消息发送到表单

关于c# - 如何知道Process.Start何时加载Winform?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1177956/

10-10 18:30