枚举进程加载模块信息问题
win7操作系统 .net4.7,测试进程QQProtect
同样的代码创建新的工程执行没问题,改变.net框架到4.0就变了,再改回来还是一样,只有重新建立的工程没问题.代码如下:using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace testProcess2
{
class Program
{
static void Main(string[] args)
{
Process[] pname = Process.GetProcesses();
//遍历进程
foreach (Process p in pname)
{
//如果查找到进程名称 返回
try
{
if (p.MainModule.FileName.ToLower().IndexOf("QQProtect".ToLower()) != -1)
{
Console.WriteLine(p.MainModule.FileName + "\n");
Console.WriteLine("模块数" + p.Modules.Count + "\n");
for (int i = 0; i < p.Modules.Count; i++)
{
Console.WriteLine(p.Modules[i].FileName + "\n");
}
Console.WriteLine("\n");
}
}
catch (Exception)
{
continue; //遍历无访问权限的进程时会跑出异常
}
}
Console.ReadKey();
}
}
}不正常.net框架4.0下正常.net框架4.6.1下正常框架版本号
win7操作系统 .net4.7,测试进程QQProtect
同样的代码创建新的工程执行没问题,改变.net框架到4.0就变了,再改回来还是一样,只有重新建立的工程没问题.代码如下:using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace testProcess2
{
class Program
{
static void Main(string[] args)
{
Process[] pname = Process.GetProcesses();
//遍历进程
foreach (Process p in pname)
{
//如果查找到进程名称 返回
try
{
if (p.MainModule.FileName.ToLower().IndexOf("QQProtect".ToLower()) != -1)
{
Console.WriteLine(p.MainModule.FileName + "\n");
Console.WriteLine("模块数" + p.Modules.Count + "\n");
for (int i = 0; i < p.Modules.Count; i++)
{
Console.WriteLine(p.Modules[i].FileName + "\n");
}
Console.WriteLine("\n");
}
}
catch (Exception)
{
continue; //遍历无访问权限的进程时会跑出异常
}
}
Console.ReadKey();
}
}
}不正常.net框架4.0下正常.net框架4.6.1下正常框架版本号
我这个是vs2017 我刚新建的工程测试的 确实有问题哦!
你易管理员身份运行VS,应该与哪个.NET框架没有太大关系
我这个是vs2017 我刚新建的工程测试的 确实有问题哦!
我试了一下你的代码,我不管用哪个.NET框架都是现实你上面不正常的那个
我这个是vs2017 我刚新建的工程测试的 确实有问题哦!
我试了一下你的代码,我不管用哪个.NET框架都是现实你上面不正常的那个
我刚新建的工程默认版本4.6.1就没问题
22805715+qq测试一下