【问题标题】:Starting time of a process进程的开始时间
【发布时间】:2009-05-29 04:31:13
【问题描述】:

如何使用 c# 代码检索进程的开始时间?如果可能的话,我还想知道如何使用 Widows 内置的功能来做到这一点。

【问题讨论】:

    标签: c# .net


    【解决方案1】:
     public DateTime GetProcessStartTime(string processName)
     {
            Process[] p = Process.GetProcessesByName(processName);
            if (p.Length <= 0) throw new Exception("Process not found!");
            return p[0].StartTime;
     }
    

    如果你知道进程的ID,你可以使用Process.GetProcessById(int processId)。另外,如果进程在网络上的另一台机器上,对于 GetProcessesByName() 和 GetProcessById(),您可以将机器名称指定为第二个参数。

    要获取进程名称,请确保应用正在运行。然后转到“应用程序”选项卡上的任务管理器,右键单击您的应用程序并选择“转到处理”。在进程选项卡中,您会看到突出显示的进程名称。在 c# 代码中使用 .exe 之前的名称。例如Windows 窗体应用程序将被列为“myform.vshost.exe”。在代码中你应该说

     Process.GetProcessesByName("myform.vshost"); 
    

    【讨论】:

    • 如何在没有代码的情况下知道开始时间。我的意思是从 Windows 本身。
    • “来自 Windows 本身”是什么意思?您的问题是“在 C# 代码中”。
    • 我也需要代码。只是我想知道如何从 Windows 中获取它?
    • 编辑了我的回复。这是否回答了您的问题,或者您还需要其他什么。
    【解决方案2】:

    进程有一个属性“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

    【讨论】:

    • 如何在没有代码的情况下知道开始时间。我的意思是从 Windows 本身。
    • 这是一个单独的问题,可能与编程无关。
    【解决方案3】:

    在代码中

    假设您要查找记事本的启动时间,当前运行的 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
    

    【讨论】:

      【解决方案4】:

      您可以通过检查Process.GetProcessesByName()返回的Process对象来获取进程元数据。

      【讨论】:

        【解决方案5】:
        System.Diagnostics.Process.GetProcessById(xxx).StartTime;//fails for certain processes with access denied
        

        【讨论】:

          猜你喜欢
          • 2021-05-11
          • 2011-08-15
          • 1970-01-01
          • 1970-01-01
          • 2021-05-20
          • 1970-01-01
          • 2010-09-17
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多