使用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");//这是错误的演示

最后修改:2022 年 11 月 14 日
如果觉得我的文章对你有用,请随意赞赏