先放脚本内容:
::https://baijiahao.baidu.com/s?id=1665560383633884294&wfr=spider&for=pc
::https://www.cnblogs.com/yannana/p/11575549.html
@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 当前运行路径是:%CD%
echo 已获取管理员权限
@ECHO OFF
::游戏路径,修改为你自己炉石的路径
set Rule_Dir=D:\Program Files (x86)\Hearthstone\Hearthstone.exe
::断线时间(5秒更安全)
set Time_Out=3
::防火墙规则名称
set Rule_Name=炉石断线
::如果不存在规则,则添加屏蔽炉石网络权限的规则,否则跳过这一步
netsh advfirewall firewall show rule name="%Rule_Name%" >nul
if %errorlevel% == 0 (
echo 规则%Rule_Name%已经存在,无需添加
)else (
netsh advfirewall firewall add rule name="%Rule_Name%" dir=out program="%Rule_Dir%" action=block
if %errorlevel% == 0 (
echo 防火墙规则 %Rule_Name% 添加成功
)else (
echo 添加防火墙规则失败,请检查是否具备[管理员权限],即将退出...
TIMEOUT /T 5
exit
)
)
::启用指定规则 (禁止炉石访问网络),并更新规则指定的路径
netsh advfirewall firewall set rule name="%Rule_Name%" new program="%Rule_Dir%" enable=yes
if %errorlevel% == 0 (
echo 炉石断网已生效,等待恢复中...
)else (
echo 防火墙规则修改失败,请检查是否具备[管理员权限],即将退出...
TIMEOUT /T 5
exit
)
::等待一段时间,按任意键可以跳过 (数字为秒数,期间按任意键会进入下一步,即提前恢复炉石的网络权限)
TIMEOUT /T %Time_Out%
::禁用指定规则 (允许炉石访问网络)
netsh advfirewall firewall set rule name="%Rule_Name%" new enable=no
if %errorlevel% == 0 (
echo 恢复炉石网络成功
)else (
echo 防火墙规则恢复失败,请检查是否具备[管理员权限],按任意键退出...
TIMEOUT /T 5
pause
exit
脚本来源已经在脚本的第一行和第二行说明了。
原脚本需要用管理员权限运行才有效,所以加了自动获取管理员权限的部分。
复制上面脚本内容后,粘贴到txt中保存,然后将txt更名为bat。
需要注意的是:
- 粘贴后的编码格式需要为ANSI,不然无法正常显示中文。
- 需要在脚本中的第21行指定炉石传说的程序地址,不要加双引号
- 原文中建议在回合结束前8秒左右运行脚本
提示:
- 如果某回合死了,那使用整活脚本就不会中止画面,完结比赛后也没有断线提示。
- 前几回合没有使用的必要
- 虽然可以整活,还是需要控制时间