如何使用c#代码检索进程的启动时间?如果可能的话,我也想知道如何使用Windows内置功能来实现。
public DateTime GetProcessStartTime(string processName)
{
Process[] p = Process.GetProcessesByName(processName);
if (p.Length <= 0) throw new Exception("Process not found!");
return p[0].StartTime;
}
Process.GetProcessesByName("myform.vshost");
进程有一个属性"StartTime": http://msdn.microsoft.com/en-us/library/system.diagnostics.process.starttime.aspx
你想要获取"当前"进程的启动时间吗?Process.GetCurrentProcess可以给你这个信息: http://msdn.microsoft.com/en-us/library/system.diagnostics.process.getcurrentprocess.aspx
System.Diagnostics.Process.GetProcessById(xxx).StartTime;//fails for certain processes with access denied
在代码中
假设您想要查找正在运行的PID为4548的记事本的启动时间。您可以使用PID或进程名称来查找它,并像这样将其打印到调试窗口:
//pick one of the following two declarations
var procStartTime = System.Diagnostics.Process.GetProcessById(4548).StartTime;
var procStartTime = System.Diagnostics.Process.GetProcessesByName("notepad").FirstOrDefault().StartTime;
System.Diagnostics.Debug.WriteLine(procStartTime.ToLongTimeString());
在Windows中
您可以使用Process Explorer,它有一个选项来显示进程启动时间,或者您可以通过以下命令行列出所有当前运行的进程及其启动时间:
wmic process get caption,creationdate