主题:如何获得进程的用户名称?
seekmm
[专家分:380] 发布于 2007-07-30 09:11:00
C#中如何获得进程的用户名称?就像任务管理器进程那一栏中每个进程都对应一个用户名。我在Process类里找了半天也没找到相关的方法或者属性,还请DX帮忙!
回复列表 (共6个回复)
沙发
jzyray [专家分:20610] 发布于 2007-07-30 12:50:00
Process.StartInfo.UserName
板凳
seekmm [专家分:380] 发布于 2007-07-30 13:17:00
...显示不出来啊~~~~
汗
我的代码如下:
foreach (Process pro in Process.GetProcesses())
{
lvi = new ListViewItem();
lvi.Text = pro.ProcessName;
lviSub = new ListViewItem.ListViewSubItem();
lviSub.Text = pro.StartInfo.UserName;
lvi.SubItems.Add(lviSub);
lviSub=new ListViewItem.ListViewSubItem();
lviSub.Text = "";
lvi.SubItems.Add(lviSub);
lviSub = new ListViewItem.ListViewSubItem();
lviSub.Text = Convert.ToString((pro.PagedSystemMemorySize64) / 1024) + "K";
lvi.SubItems.Add(lviSub);
listView_Pro.Items.Add(lvi);
}
运行结果用户名那一栏依然全部为空~
3 楼
longlong16 [专家分:10670] 发布于 2007-07-30 14:26:00
这种方法是取不到的,你还是使用wmi来做任务管理器一类的程序:
在你的项目里先添加引用System.Management,然后在程序里:
using System.Management;
ManagementObjectSearcher psch=new ManagementObjectSearcher("select * from Win32_Process");
listView1.Columns.Clear();
listView1.Items.Clear();
listView1.Columns.Add("进程ID",120,HorizontalAlignment.Left);
listView1.Columns.Add("进程名",150,HorizontalAlignment.Left);
listView1.Columns.Add("用户",120,HorizontalAlignment.Left);
foreach(ManagementObject mob in psch.Get())
{
ListViewItem li=new ListViewItem();
li.UseItemStyleForSubItems=false;
li.SubItems[0].Text=mob["processID"].ToString();
li.SubItems.Add(mob["Name"].ToString());
//以下显示用户名
string[] pob = new string[2];
mob.InvokeMethod("GetOwner",(object[])pob);
object so=pob[0];
if(so!=null)
li.SubItems.Add(so.ToString());
listView1.Items.Add(li);
}
4 楼
seekmm [专家分:380] 发布于 2007-07-30 16:42:00
呵呵,谢谢你~还有几个地方不太明白
mob["Name"]其中[]里面的字符串是如何确定的?再比如我要找内存占用及CPU使用应该怎么加呢?还有object so = pob[0];这句为何是pob[0]呢?pob中到底寸了什么呢?为什么要判空呢?
授人以鱼不如授人以渔哈!等待你的解释?
5 楼
jzyray [专家分:20610] 发布于 2007-07-30 23:55:00
案例:
http://www.cnblogs.com/KissKnife/archive/2007/06/01/681739.html
详情可参考msdn中wmi部分内容
另外,感谢longlong16指正
很多问题没有亲自实践~~~
6 楼
seekmm [专家分:380] 发布于 2007-07-31 08:28:00
呵呵,感谢楼上。那篇文章我昨天已经看过了。不过由于代码不完整。我有几个地方不太明白。比如mDict 字典的定义是什么?之类的。还请longlong16解释
我来回复