如何找到最后打开的EXCEL.EXE开放时间?

时间:2016-03-18 17:11:18

标签: vb.net

假设您的计算机在任务管理器上运行了多个EXCEL.EXE。

如何查找上次打开的EXCEL.EXE开放时间?

以下代码不是okey因为每个循环都不遵循EXCEL.EXE开放顺序!

   For Each prog As Process In System.Diagnostics.Process.GetProcessesByName("EXCEL")
        Label1.Text = prog.StartTime.ToString
    Next

2 个答案:

答案 0 :(得分:1)

这样的东西可以获得最老的运行实例。

  Dim oldestStartTime as DateTime = DateTime.Now
  Dim oldestProg as Process

 For Each prog As Process In System.Diagnostics.Process.GetProcessesByName("EXCEL")
  If prog.StartTime < oldestStartTime Then
    oldestStartTime = prog.StartTime
    oldestProg = prog
  End If

 Next

答案 1 :(得分:0)

这是一个LINQ查询,用于查找最后/最近打开的Excel实例:

Dim latest = (
    From p In System.Diagnostics.Process.GetProcessesByName("EXCEL")
    Order By p.StartTime Descending
).FirstOrDefault()
If latest IsNot Nothing Then
    Label1.Text = latest.StartTime.ToString()
End If

您可以删除Descending以获取第一个/最早开放的实例。

不如循环效率高,因为它必须对进程进行排序。 MoreLINQ有一个更好的MaxBy方法:

Dim latest = System.Diagnostics.Process.GetProcessesByName("EXCEL") _
    .MaxBy(Function(p) p.StartTime)