gpt4 book ai didi

c# - 如何从 Process.start() 获取 processID

转载 作者:行者123 更新时间:2023-11-30 12:28:03 24 4
gpt4 key购买 nike

我有以下代码

log.Info("Starting jar");
System.Diagnostics.ProcessStartInfo si = new ProcessStartInfo(procName);
si.RedirectStandardOutput = true;
si.RedirectStandardError = true;
si.UseShellExecute = false;
si.CreateNoWindow = false;
si.WorkingDirectory = System.IO.Directory.GetParent(Application.ExecutablePath) + "\\" + Properties.Settings.Default.rootDirectory;

//start a new process for Client
Process process = new Process();
process.StartInfo = si;
process.Start();
String name = process.ProcessName;
javaClientProcessId = process.Handle;
int javaProcessID = process.Id;

通过使用此代码,我将 cmd 作为进程名称,在 taskManager 中它显示为 java.exe。从代码中它给出 5412 作为 process.id1029 作为 process.Handle 其中 6424java.exe 的进程 ID
是否有任何其他方法可以从 TaskManager 中获取相同的 Process ID

注意procName 是它运行 jar 文件的 Bat 文件的路径。

已编辑

当我执行下面的代码时,它给出了 process.Kill() 行的错误。

if (process != null)
{
process.Kill();
process.Close();
process.Dispose();
}

无法处理请求,因为进程 (6504) 已退出

最佳答案

这是我的代码片段

try
{
Process[] javaProcList = Process.GetProcessesByName("java");
foreach (Process javaProc in javaProcList)
{
javaProc.Kill();
javaProc.Close();
javaProc.Dispose();

Console.WriteLine("StopJar -Java Process Stopped ");
log.Debug("StopJar -Java Process Stopped ");
}
}
catch (Exception exp)
{
log.Error("StopJar - Unable to kill Java Process", exp);
Console.WriteLine("Error while closing: " + exp.Message);
}

关于c# - 如何从 Process.start() 获取 processID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23426711/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com