mirror of
https://github.com/NapNeko/NapCatQQ.git
synced 2026-01-18 06:20:29 +00:00
55 lines
1.5 KiB
Batchfile
55 lines
1.5 KiB
Batchfile
@echo off
|
|
chcp 65001 >nul
|
|
net session >nul 2>&1
|
|
if %ERRORLEVEL% == 0 (
|
|
echo Administrator mode detected.
|
|
) else (
|
|
echo Please run this script in administrator mode.
|
|
powershell -Command "Start-Process 'wt.exe' -ArgumentList 'cmd /k cd /d \"%cd%\" && \"%~f0\" %*' -Verb runAs"
|
|
exit
|
|
)
|
|
setlocal enabledelayedexpansion
|
|
|
|
set NAPCAT_PATCH_PACKAGE=%cd%\qqnt.json
|
|
set NAPCAT_LOAD_PATH=%cd%\loadNapCat.js
|
|
set NAPCAT_INJECT_PATH=%cd%\NapCatWinBootHook.dll
|
|
set NAPCAT_LAUNCHER_PATH=%cd%\NapCatWinBootMain.exe
|
|
set NAPCAT_MAIN_PATH=%cd%\napcat.mjs
|
|
set NAPCAT_RESTART_SIGNAL=%cd%\napcat.restart
|
|
|
|
:loop_read
|
|
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\QQ" /v "UninstallString"') do (
|
|
set "RetString=%%~b"
|
|
goto :napcat_boot
|
|
)
|
|
|
|
:napcat_boot
|
|
for %%a in ("%RetString%") do (
|
|
set "pathWithoutUninstall=%%~dpa"
|
|
)
|
|
|
|
set "QQPath=%pathWithoutUninstall%QQ.exe"
|
|
|
|
if not exist "%QQPath%" (
|
|
echo provided QQ path is invalid
|
|
pause
|
|
exit /b
|
|
)
|
|
|
|
set "ST_MAIN_PATH=%NAPCAT_MAIN_PATH:\=/%"
|
|
echo (async () =^> {await import("file:///%ST_MAIN_PATH%")})() > "%NAPCAT_LOAD_PATH%"
|
|
|
|
if exist "%NAPCAT_RESTART_SIGNAL%" del "%NAPCAT_RESTART_SIGNAL%"
|
|
|
|
echo [%date% %time%] [Watchdog] Starting NapCat...
|
|
"%NAPCAT_LAUNCHER_PATH%" "%QQPath%" "%NAPCAT_INJECT_PATH%" %*
|
|
|
|
:watchdog
|
|
timeout /t 3 /nobreak >nul
|
|
if exist "%NAPCAT_RESTART_SIGNAL%" (
|
|
echo [%date% %time%] [Watchdog] Restart signal received. Restarting...
|
|
del "%NAPCAT_RESTART_SIGNAL%"
|
|
goto napcat_boot
|
|
)
|
|
goto watchdog
|