使用csharp发现并读取客户端进程时使用Process.GetProcessesByName函数会发生报错,但在外服可正常获取,所以国服应该添加了权限,那么程序也要进行提权才能够正常读取。提个jj直接最后发现riotclientservices这个进程是不需要提权的,而且他的地址是和LOL同路径的只要进行一个替换就行了。
using System.Diagnostics;
public string clientadd()//获取lol地址
{
string Path;
Process[] ps = Process.GetProcessesByName("riotclientservices");//根据进程名字找到所有进程,返回一个Process[]
if (ps.Length > 0)
{
foreach (Process p in ps)
{
Path = p.MainModule.FileName.ToString();
Path = Path.Replace(@"riot client\riotclientservices.exe", "Game");
return (Path);
}
}
return ("");
}
注意:Process.GetProcessesByName("riotclientservices");进程名不能带上exe否则会报错。
Process.GetProcessesByName("riotclientservices.exe");//这是错误的演示