c# - Process.Start 中的 ID 有时匹配,有时不匹配

标签 c# .net process system.diagnostics taskmanager

我想从 C# 代码运行 ANSYS Fluent exe file

现在为了比较,我举两个例子

Process fluent = Process.Start(@"C:\Program Files\ANSYS Inc\v130\fluent\ntbin\win64\fluent.exe", @"2ddp file.jou");

Process browser = Process.Start("IExplorer.exe", "http://www.google.com");

为什么 C# 代码中的 browser.ID 与 TaskManager 中的相同?为什么代码中的 Fluent.ID 与 TaskManager 中的不同?

是因为Fluent的特性还是我犯了一些错误?

主要问题:如何运行 Fluent 并在 C# 代码中捕获其 ID?

最佳答案

这几乎可以肯定与 Fluent 的特性有关。如果您无法从 Process.Start 中获取(相关的)PID,您可能需要启动进程,然后进入等待循环并尝试按名称检索进程(请参阅:Process.GetProcessesByName - I认为您会传递 EXE 名称而不带 .exe)。

这个解决方案的鲁棒性到底有多强取决于您预测 Fluent 特性的能力,这看起来已经相当困难了。我绝对推荐使用 Process Explorer(如上所述),并熟悉其他 SysInternals 工具,它们在这些情况下提供了大量的见解。

关于c# - Process.Start 中的 ID 有时匹配,有时不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6189590/

相关文章:

c# - .NET 应用程序中分析程序集依赖性的好工具是什么

c# - .Net Micro 与 Microsoft Azure

windows - 进程被强行杀死时的进程退出代码

c# - ftp 进程不会关闭 (c#)

c# - 用于打开枚举以选择 namespace /类的反射替代方案

c# - 如何在不使用 GroupBox 的情况下为单选按钮赋值并确定选定的单选按钮

c# - Html Agility Pack仍然是最好的.NET HTML解析器吗?

c# - 我怎样才能找出方法可以抛出什么样的异常?

windows - 在 Windows 中抑制应用程序用户界面

c# - 如何使用 Unity 解决静态类中的依赖关系?