Загрузка данных


@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

:: Путь, куда скрипт временно выгрузит VBS код
set "VBS_FILE=%TEMP%\NoSleep_Hidden.vbs"

echo =========================================
echo Управление NoSleep (Один файл)
echo =========================================

:: Проверяем, запущен ли скрипт в данный момент
powershell -NoProfile -Command "$p = Get-CimInstance Win32_Process -Filter \"Name='wscript.exe'\"; if ($p -and ($p.CommandLine -match 'NoSleep_Hidden.vbs')) { exit 1 } else { exit 0 }"

if %errorlevel% equ 1 (
    echo [-] Процесс найден. Отключаем скрипт...
    
    :: Убиваем процесс
    powershell -NoProfile -Command "Get-CimInstance Win32_Process -Filter \"Name='wscript.exe'\" | Where-Object {$_.CommandLine -match 'NoSleep_Hidden.vbs'} | Invoke-CimMethod -MethodName Terminate" >nul 2>&1
    
    :: Удаляем временный файл для чистоты
    if exist "%VBS_FILE%" del "%VBS_FILE%"
    
    color 0C
    echo.
    echo NoSleep ДЕАКТИВИРОВАН.
    timeout /t 2 >nul
) else (
    echo [+] Процесс не найден. Запускаем...
    
    :: Генерируем VBS-код прямо из этого батника в папку Temp
    echo Set objShell = WScript.CreateObject^("WScript.Shell"^) > "%VBS_FILE%"
    echo Do While True >> "%VBS_FILE%"
    echo     WScript.Sleep 240000 >> "%VBS_FILE%"
    echo     objShell.SendKeys "{F13}" >> "%VBS_FILE%"
    echo Loop >> "%VBS_FILE%"
    
    :: Скрыто запускаем созданный VBS
    start wscript.exe "%VBS_FILE%"
    
    color 0A
    echo.
    echo NoSleep АКТИВИРОВАН.
    timeout /t 2 >nul
)