繁体   English   中英

无法获取正在运行的应用程序的名称

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM