在开启了Windows的“Linux子系统”和“虚拟机平台”,也就是使用WSL2(方便从业人工智能开发人员调试代码的平台)后,在玩英雄联盟(LOL)的过程中会出现间歇性掉帧的问题,非常影响游戏体验。经过检查发现是腾讯的ACE-Guard进程(AntiCheatExpert Service)在作怪,这东西对于LOL是十分多余的。不知道它是不是一直在后台扫我的虚拟机内核,总之两者关其一就不会出现掉帧的情况。
对此,我选择关闭ACE-Guard。以下是一个简单的关闭该进程的脚本,在打开WeGame后会自动吊起一个监控程序,当发现你进入LOL的召唤师峡谷后就会杀死AntiCheatExpert Service然后退出。
@echo off
REM 此处开启WeGame,具体路径根据你的安装目录进行修改。
start "WeGame" "D:\Program Files (x86)\WeGame\wegame.exe"
REM 下文负责查杀AntiCheatExpert。
set processToMonitor=CrossProxy.exe
set gameToMonitor=LeagueClient.exe
set serviceToStop=AntiCheatExpert Service
set monitoringInterval=60
:MonitorLoop
timeout /t %monitoringInterval% /nobreak >nul
for /f %%i in ('tasklist /fi "imagename eq %processToMonitor%" ^| find /c /v ""') do set count1=%%i
for /f %%i in ('tasklist /fi "imagename eq %gameToMonitor%" ^| find /c /v ""') do set count2=%%i
sc query "%serviceToStop%" | find "STATE" | find "RUNNING" >nul
if %count1% equ 5 if %count2% equ 4 if not errorlevel 1 (
net stop "%serviceToStop%"
exit
)
goto :MonitorLoop
REM 如果不想该程序一次性查杀后就退出,可以注释掉16行的"exit",这样程序就会一直后台监控。
将以上代码复制到一个txt文件里,然后把后缀名改成bat,再创建一个快捷方式,每次打开游戏通过该快捷方式打开就可以了。需要注意的是该监控只会杀死ACE-Guard服务一次就退出, 因为发现只要杀一次,下次再进游戏就不会出现掉帧现象了。如果想它一直活着,出现ACE-Guard服务就杀死,可以注释掉代码第16行的“exit”。