C# Winform项目中,MainWindowHandle获取不到窗口句柄,返回值为零。请问如何解决。
在C# Winform项目中,通过Process打开了计算器(代码如下)。
Process pro = null;
pro = new Process();
pro.StartInfo.FileName = @"Calc.exe";
pro.Start();
IntPtr hwndCalc = pro.MainWindowHandle; //取不到计算器的窗口句柄,返回值为零。
pro.MainWindowHandle获取不到计算器的窗口句柄,返回值为零。
需要增加一个2秒的延时(代码如下)。
Process pro = null;
pro = new Process();
pro.StartInfo.FileName = @"Calc.exe";
pro.Start();
System.Threading.Thread.Sleep(2000); //新增了延时2秒
IntPtr hwndCalc = pro.MainWindowHandle; //增加了延时2秒,这样就可以获取计算器的窗口句柄
请问为什么一定要增加延时2秒后,才能获取到计算器的窗口句柄。如果不加延时2秒,可以有其它方法获取到计算器的窗口句柄?