因为启动外部程序需要时间,尤其是外部程序是大程序的话...计算机再快执行也需要时间的,何况Windows是抢占式多任务系统...

解决方案 »

  1.   

    哦,那如何保证我的外部程序已经完全启动后,再去findwindow呢?
      

  2.   

    Process.WaitForExit();
    指示 Process 组件无限期地等待关联进程退出。
    该如何用在我的程序中呢,来判断外部程序启动完成。
    Process.Start(appName); 
    //Delay(500); 
    while (WinAPI.FindWindow(null,p.MainWindowTitle) == IntPtr.Zero); 
    ParenthWnd = WinAPI.FindWindow(null,p.MainWindowTitle); 
      

  3.   

    不用太麻烦, p.MainWindowHandle就是你想获取的ParenthWnd 
      

  4.   

    Process.Start(appName);后返回 Process    然后写个while循环去读MainWindowHandle  直到句柄不为Intptr.Zero则继续向下执行