Win8下使用C#的Process类的StartTime属性出现Win32Exception错误

这几天系统由Win7换成Win8,就把原来写的程序运行了一下,结果发现一个原来运行正常的程序现在报错,原程序如下:

listBox1.Items.Clear();
Process[] processes = Process.GetProcesses();
foreach (Process p in processes)
{
if (p.Id != 0)
{
    listBox1.Items.Add(String.Format("{0,-30}{1:h:m:s}", p.ProcessName, p.StartTime));
}
}
错误信息

未处理System.ComponentModel.Win32Exception
  HResult=-2147467259
  Message=拒绝访问。
  Source=System
  ErrorCode=-2147467259
  NativeErrorCode=5


经过排查发现是Process类的StartTime属性引起的,难道是有些进程的StartTime属性禁止被访问?

果断加try-catch语句,变成:

listBox1.Items.Clear();
            Process[] processes = Process.GetProcesses();
            foreach (Process p in processes)
            {
                //if (p.ProcessName != "Idle")
                try
                {
                    //if (p.Id != 0)
                    //{
                    //    listBox1.Items.Add(String.Format("{0,-30}{1:h:m:s}", p.ProcessName, p.StartTime));
                    //}
                    listBox1.Items.Add(String.Format("{0,-30}{1}", p.ProcessName, p.StartTime));
                }
                catch (Exception ex)
                {
                }

成功!

随即发现如下进程被拒绝访问:

MsMpEng:拒绝访问。
SearchIndexer:拒绝访问。
atiesrxx:拒绝访问。
lsass:拒绝访问。
dwm:拒绝访问。
csrss:拒绝访问。
csrss:拒绝访问。
services:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
sqlwriter:拒绝访问。
winlogon:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
ZhuDongFangYu:拒绝访问。
WUDFHost:拒绝访问。
spoolsv:拒绝访问。
atieclxx:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
svchost:拒绝访问。
Fuel.Service:拒绝访问。
wininit:拒绝访问。
System:拒绝访问。
svchost:拒绝访问。
smss:拒绝访问。
Idle:拒绝访问。


但是以上进程在Win7中可以被访问,然后本人又实用管理员权限运行程序,发现只有:Idle:拒绝访问,ID:0

现在明白了是为什么了,Win8的权限管理比Win7更严格,所以导致了问题!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值