C#获取应用程序列表和程序运行时间

吾非大神 2011-08-15 05:46:15
我从网上看到使用
System.Diagnostics.Process[] myProcesses;
myProcesses = System.Diagnostics.Process.GetProcesses();
foreach (System.Diagnostics.Process p in myProcesses)
{
ListViewItem item=new ListViewItem();

item.Text=shuliang.ToString();

item.SubItems.Add(p.ProcessName.ToString());//获取进程名字
item.SubItems.Add(p.Responding.ToString());//获取进程是否响应
item.SubItems.Add(p.StartTime.ToString());//获取进程的开始时间
item.SubItems.Add(p.TotalProcessorTime.ToString());//获取进程运行时间
item.SubItems.Add(p.MainWindowTitle);//获取进程的主窗口标题
sjc_listview.Items.Add(item);
}
获取进程运行时间,这个时间是一个什么时间?有方法可以获得某个程序总共运行了多久了么?

获取进程主窗口标题这个,总是获得的是空。

望各位指点一二。多谢
...全文
391 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
ppyyhh 2011-08-16
  • 打赏
  • 举报
回复
你是想获取“任务管理器-应用程序-任务列表”吧,那得调用win32 API函数了。例子很多,找一下就行。
ppyyhh 2011-08-16
  • 打赏
  • 举报
回复
呵呵,有区别吗?
吾非大神 2011-08-16
  • 打赏
  • 举报
回复
任务管理器里面显示的应用程序的名称 不是进程名字。
ppyyhh 2011-08-16
  • 打赏
  • 举报
回复
item.SubItems.Add(p.ProcessName.ToString());//获取进程名字
不就是这个吗,还要怎么获取?
吾非大神 2011-08-16
  • 打赏
  • 举报
回复
那如果是想获得 任务管理器里面显示的应用程序的名称,有其他招册吗。
threenewbee 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xl_0715 的回复:]
多谢楼上解说。

item.SubItems.Add(p.MainWindowTitle);//获取进程的主窗口标题
这个老是获得空的您有涉及过吗?
[/Quote]
对于有的编程语言/框架库,比如Delphi或者BCB写的程序,它会使用一个最小化,没有标题的主窗口接收顶层的消息,所以看似是主窗口的程序窗口其实是这个没有标题窗口的子窗口而已。
ppyyhh 2011-08-16
  • 打赏
  • 举报
回复
进程是个winform程序,而且这个winform程序的主窗体有内容时,你才能获得其内容;别的进程本来就没有主窗体内容,所以你不可能获得。
jason成都 2011-08-16
  • 打赏
  • 举报
回复
那就是程序当前没有住窗口标题。
吾非大神 2011-08-16
  • 打赏
  • 举报
回复
多谢楼上解说。

item.SubItems.Add(p.MainWindowTitle);//获取进程的主窗口标题
这个老是获得空的您有涉及过吗?
threenewbee 2011-08-15
  • 打赏
  • 举报
回复
运行时间是指它占用的CPU时间。

比如说一个程序占用50%的CPU,运行了1分钟,那么这个时间是30秒。
如果你想知道一个程序启动到现在有多久,用当前时间减StartTime。

110,561

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧