来自Process.Start的ID有时或有时不匹配

时间:2011-05-31 15:02:47

标签: 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?

2 个答案:

答案 0 :(得分:2)

这几乎肯定与Fluent的特征有关。如果您无法从Process.Start中获取(相关的)PID,则可能需要求助于启动该过程,然后进入等待循环并尝试按名称检索该过程(请参阅:Process.GetProcessesByName - 我想你在没有.exe的情况下传入EXE的名字。

这个解决方案究竟有多强大取决于你如何预测Fluent的特性,这已经看起来相当困难。我肯定会建议使用Process Explorer(如上所述),以及熟悉其他SysInternals工具,他们在这些情况下提供了大量见解。

答案 1 :(得分:0)

回答Daniel B没问题,但如果我需要启动几个Fluent实例,它就不起作用了。所以我找到的最佳解决方案是适当的CommandLine参数,然后在任务管理器中搜索