使用前:必须完全关闭 Navicat 所有窗口,后台进程也要关掉
bat
@echo off
setlocal enabledelayedexpansion
echo 正在关闭Navicat进程...
taskkill /f /im navicat.exe >nul 2>&1
:: 自动删除所有Registration开头项(适配17、18,不用写死版本后缀)
for /f "tokens=*" %%a in ('reg query "HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium" /s ^| findstr "Registration"') do (
reg delete %%a /f
)
reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Update /f
echo 清理CLSID里Info/ShellFolder项
set rp=HKEY_CURRENT_USER\Software\Classes\CLSID
for /f "tokens=*" %%a in ('reg query "%rp%"') do (
reg query "%%a" /f "Info" /s /e | findstr /i "Info" >nul
if !errorlevel! equ 0 (
echo 删除 %%a
reg delete %%a /f
)
reg query "%%a" /f "ShellFolder" /s /e | findstr /i "ShellFolder" >nul
if !errorlevel! equ 0 (
echo 删除 %%a
reg delete %%a /f
)
)
echo 操作完成!
pause
exit
每13天自动跑这个脚本
可以把上面这个bat保存,然后Windows任务计划程序设置每13天自动执行,但是有坑:
- 任务执行时 Navicat必须处于关闭状态,否则清理无效;
- 脚本修改注册表,任务计划要勾选【使用最高权限运行】;
- 依然存在误删系统注册表项的风险。
总结
- 自动匹配所有Registration注册表项,适配18;
- 这种重置试用的方式属于破解试用限制,不建议商用;新版Navicat后续可能增加额外校验,导致脚本失效。