c# - 使用 Process.Start() 方法启动应用程序后的通知

标签 c# .net process.start

我有一段代码,基本上使用 Process.Start() 方法调用应用程序。

ProcessStartInfo psi = new ProcessStartInfo(strAppPath);
psi.WindowStyle = ProcessWindowStyle.Maximized | ProcessWindowStyle.Normal;
//Starts the xyz application process.
Process xyzProcess = Process.Start(psi);
xyzProcess.WaitForInputIdle();

虽然该过程会在几秒钟内启动,但应用程序可能需要一些时间才能完全初始化。即我的应用程序 xyz 可能需要 5 到 10 秒,具体取决于它运行的机器(即在较快的电脑上不到 5 秒,在较慢的电脑上 >10 秒)

我的问题:有没有办法跟踪这个?通过使用 Thread.Sleep(ms) 等待一段时间来轮询一些属性。

我尝试使用以下方法,但没有成功

  1. 轮询 xyzProcess.Responding 属性与一个小的 thread.sleep

  2. 轮询 xyzProcess.MainWindowTitle 直到它返回一些非空值的肮脏方法。

  3. xyzProcess.WaitForInputIdle( sleep 时间);

请帮忙

谢谢

最佳答案

您是在等待应用程序初始化,还是在等待应用程序执行某些操作?

如果只是应用程序需要“做某事”,那么您是否可以不等待退出?

xyzProcess.WaitForExit();

关于c# - 使用 Process.Start() 方法启动应用程序后的通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11050742/

相关文章:

c# - 这种强制不变性的模式有什么缺点?

c# - Selenium 找不到 chromedriver.exe

c++ - 如何获取 C++ 格式的当前 DateTime(如 .NET 中的 System.DateTime.Now)

c# - Protobuf-net 有教程吗?

c# - 当 UAC 被拒绝时,Process.Start 永远不会返回

c# - 在后面的代码中更改光标

c# - System.Action 内部是一个数组吗? += 和 -= 运算符的效率

.net - VB6 格式函数 : analog in . NET

c# - 使用 Process.start() 从 C# 表单执行 C++ exe

C# 将多个参数传递给 BAT 文件