[英]Can't get names of running applications
我试图获取正在运行的应用程序的名称(mozila,Visual Studio等),但尝试下面的代码,但出现“拒绝访问”异常。 我不知道该怎么解决?
StringBuilder sb = new StringBuilder();
foreach (Process p in Process.GetProcesses("."))
{
try
{
foreach (ProcessModule pm in p.Modules)
{
sb.Append("Image Name:\t" +
pm.ModuleName.ToString()
+ Environment.NewLine);
sb.Append("File Path:\t\t" +
pm.FileName.ToString() +
Environment.NewLine);
sb.Append("Memory Size:\t" +
pm.ModuleMemorySize.ToString() +
Environment.NewLine);
sb.Append("Version:\t\t" +
pm.FileVersionInfo.FileVersion.ToString() +
Environment.NewLine);
sb.Append(Environment.NewLine);
}
}
catch { }
}
您的代码正常,这是特权问题。
也许您正在尝试使用没有权限访问此API的用户帐户来获取此权限。
有一些称为性能计数器用户的组 ,将您的应用程序帐户添加到管理员或性能计数器用户组。
如果您使用的是ASP.NET,则ASPNET帐户(默认配置)没有访问此API的特权。
我解决了。 我将帐户类型从“本地服务”更改为“本地系统”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.