98 lines
3.6 KiB
Batchfile
98 lines
3.6 KiB
Batchfile
@echo off
|
|
%SystemRoot%\System32\chcp.com 65001 >nul 2>&1
|
|
:: Быстрый запуск — выбрать пресет и запустить winws2
|
|
:: Для полного управления (сервис, диагностика) используйте service.bat
|
|
|
|
setlocal EnableDelayedExpansion
|
|
|
|
:: Системные пути (не зависят от PATH)
|
|
set "SYS32=%SystemRoot%\System32"
|
|
set "PS_EXE=%SYS32%\WindowsPowerShell\v1.0\powershell.exe"
|
|
|
|
set "BASE_DIR=%~dp0"
|
|
if "%BASE_DIR:~-1%"=="\" set "BASE_DIR=%BASE_DIR:~0,-1%"
|
|
|
|
set "PRESETS_DIR=%BASE_DIR%\presets"
|
|
set "WINWS2_EXE=%BASE_DIR%\exe\winws2.exe"
|
|
set "ACTIVE_PRESET=%BASE_DIR%\utils\preset-active.txt"
|
|
set "STATE_FILE=%BASE_DIR%\utils\current_preset.txt"
|
|
|
|
%SYS32%\net.exe session >nul 2>&1
|
|
if %errorlevel% neq 0 (
|
|
%PS_EXE% -NoProfile -Command "Start-Process '%~f0' -Verb RunAs"
|
|
exit /b
|
|
)
|
|
|
|
title Zapret2 Quick Launch
|
|
|
|
:menu
|
|
cls
|
|
echo.
|
|
echo ZAPRET2 QUICK LAUNCH
|
|
echo ======================================== 2>nul
|
|
|
|
if exist "%STATE_FILE%" (
|
|
set /p CURRENT_PRESET=<"%STATE_FILE%"
|
|
echo Текущий: !CURRENT_PRESET! 2>nul
|
|
) else (
|
|
set "CURRENT_PRESET="
|
|
echo Текущий: не выбран 2>nul
|
|
)
|
|
|
|
%SYS32%\tasklist.exe /FI "IMAGENAME eq winws2.exe" 2>nul | %SYS32%\find.exe /I "winws2.exe" >nul
|
|
if %errorlevel% equ 0 (echo winws2: ЗАПУЩЕН 2>nul) else (echo winws2: ОСТАНОВЛЕН 2>nul)
|
|
|
|
echo.
|
|
|
|
set "count=0"
|
|
for %%F in ("%PRESETS_DIR%\*.txt") do (
|
|
set "fname=%%~nF"
|
|
if not "!fname:~0,1!"=="_" (
|
|
set /a count+=1
|
|
set "preset[!count!]=%%~nF"
|
|
set "preset_path[!count!]=%%~fF"
|
|
set "m= "
|
|
if defined CURRENT_PRESET if "!fname!"=="!CURRENT_PRESET!" set "m=> "
|
|
if !count! lss 10 (echo !m! !count!. %%~nF 2>nul) else (echo !m!!count!. %%~nF 2>nul)
|
|
)
|
|
)
|
|
|
|
echo.
|
|
echo [S] Стоп [R] Рестарт [M] service.bat [Q] Выход 2>nul
|
|
echo [T] TG Группа [B] Bypass Block [V] VPN Bot 2>nul
|
|
echo.
|
|
set "c="
|
|
set /p "c= Выбор (1-%count%): " 2>nul
|
|
|
|
if /i "!c!"=="q" goto :eof
|
|
if /i "!c!"=="m" (start "" "%BASE_DIR%\service.bat" & goto :eof)
|
|
if /i "!c!"=="s" (%SYS32%\taskkill.exe /F /IM winws2.exe >nul 2>&1 & %SYS32%\timeout.exe /t 1 /nobreak >nul & goto menu)
|
|
if /i "!c!"=="t" (start "" "tg://resolve?domain=vpndiscordyooutube" & goto menu)
|
|
if /i "!c!"=="b" (start "" "tg://resolve?domain=bypassblock" & goto menu)
|
|
if /i "!c!"=="v" (start "" "tg://resolve?domain=zapretvpns_bot" & goto menu)
|
|
if /i "!c!"=="r" (
|
|
%SYS32%\taskkill.exe /F /IM winws2.exe >nul 2>&1
|
|
%SYS32%\timeout.exe /t 2 /nobreak >nul
|
|
for %%s in (WinDivert WinDivert14 Monkey Monkey14) do (%SYS32%\sc.exe query "%%s" >nul 2>&1 && (%SYS32%\net.exe stop "%%s" >nul 2>&1 & %SYS32%\sc.exe delete "%%s" >nul 2>&1))
|
|
%SYS32%\timeout.exe /t 1 /nobreak >nul
|
|
if exist "%ACTIVE_PRESET%" (start "" /D "%BASE_DIR%" /MIN "%WINWS2_EXE%" @"%ACTIVE_PRESET%")
|
|
%SYS32%\timeout.exe /t 2 /nobreak >nul
|
|
goto menu
|
|
)
|
|
|
|
set "valid=0"
|
|
for /l %%i in (1,1,%count%) do (if "!c!"=="%%i" set "valid=1")
|
|
if "!valid!"=="0" goto menu
|
|
|
|
set "SEL_NAME=!preset[%c%]!"
|
|
set "SEL_PATH=!preset_path[%c%]!"
|
|
|
|
%SYS32%\taskkill.exe /F /IM winws2.exe >nul 2>&1
|
|
%SYS32%\timeout.exe /t 2 /nobreak >nul
|
|
for %%s in (WinDivert WinDivert14 Monkey Monkey14) do (%SYS32%\sc.exe query "%%s" >nul 2>&1 && (%SYS32%\net.exe stop "%%s" >nul 2>&1 & %SYS32%\sc.exe delete "%%s" >nul 2>&1))
|
|
%SYS32%\timeout.exe /t 1 /nobreak >nul
|
|
copy /Y "!SEL_PATH!" "%ACTIVE_PRESET%" >nul
|
|
echo !SEL_NAME!>"%STATE_FILE%"
|
|
start "" /D "%BASE_DIR%" /MIN "%WINWS2_EXE%" @"%ACTIVE_PRESET%"
|
|
%SYS32%\timeout.exe /t 2 /nobreak >nul
|
|
goto menu
|