解决`SQLyog Trial`试用到期的问题(提供一个脚本解决方案)
本文将总结SQLyog Trial试用到期的问题。
其实解决起来很简单,就是将SQLyog相关注册表删掉即可
一、要删除的注册表项
Win+R打开运行,输入regedit回车,打开注册表
在HKEY_CURRENT_USER\SOFTWARE路径下,找到{d58cb4b1-47f3-45cb-a209-f298d0c3f756} 这个一串字符串的项
(不确定大家的是否都一样,自己找找,找到包含InD110、InU值的)
二、写了个脚本干这个事儿
@echo off title batch script for SQLyog REM 以管理员身份运行(开启后每次运行该脚本生成的快捷方式都会闪一下) REM %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit REM 请改为你本地SQLyog安装位置 set sqlyog_dir=E:\Program Files\SQLyog Trial set sqlyog_app=%sqlyog_dir%\SQLyog.exe REM SQLyog注册表key,可能跟你的不一样,如果不一样,请替换为你的 set sqlyog_reg_key=HKEY_CURRENT_USER\SOFTWARE\{d58cb4b1-47f3-45cb-a209-f298d0c3f756} if "%1"=="shortcut" ( call :delete_reg_key call :start_sqlyog ) else ( call :create_shortcut ) exit /b :delete_reg_key REM 判断注册表是否存在,如果存在删除注册表项 reg query %sqlyog_reg_key% if %errorlevel%==0 ( reg delete %sqlyog_reg_key% /f ) goto :EOF :create_shortcut REM 快捷方式信息 set shortcut_name=SQLyog.lnk set shortcut_folder=%UserProfile%\Desktop set shortcut_path=%shortcut_folder%\%shortcut_name% set shortcut_description=This is a shortcut created for the bat script, the script is mainly to delete the registry key about the trial period. REM 判断快捷方式是否存在,如果不存在则创建之,存在则不创建 for %%I in ("%shortcut_path%") do (set existing_shortcut=%%~fI) if exist "%existing_shortcut%" ( goto :EOF ) REM 通过SQLyog.exe获取SQLyog的icon set icon_file=%sqlyog_app% set icon_index=0 set working_dir=%sqlyog_dir% set the_scene=shortcut REM 获取当前脚本的绝对路径 set script_path=%~f0 REM 开始菜单路径 set start_menu_dir=%ProgramData%\Microsoft\Windows\Start Menu\Programs REM 为当前脚本创建快捷方式(为了便于设别,且美观,设置快捷方式的图标为SQLyog的icon) powershell -Command "$WshShell = New-Object -ComObject WScript.Shell; $Shortcut = $WshShell.CreateShortcut('%shortcut_path%'); $Shortcut.TargetPath = '%script_path%'; $Shortcut.WorkingDirectory = '%working_dir%'; $Shortcut.Arguments = '%the_scene%' ; $Shortcut.IconLocation = '%icon_file%,%icon_index%'; $Shortcut.Description = '%shortcut_description%'; $Shortcut.Save()" REM 将创建的快捷方式,copy一份到开始菜单(需要管理员权限运行才能成功copy) echo F | xcopy "%shortcut_path%" "%start_menu_dir%\%shortcut_name%" /y goto :EOF :start_sqlyog REM 启动应用程序并退出脚本 start "" "%sqlyog_app%" goto :EOF
解释说明:
1)理论上脚本放在任何位置都行,但建议放到SQLyog安装目录下;
2)脚本有两处需要修改的地方:
SQLyog安装路径set sqlyog_dir=E:\Program Files\SQLyog Trial,修改为你自己的;
注册表keyset sqlyog_reg_key=HKEY_CURRENT_USER\SOFTWARE\{d58cb4b1-47f3-45cb-a209-f298d0c3f756},如果跟我的不一样,修改为你自己的;
3)脚本首次运行,会在当前用户桌面创建一个快捷方式,该快捷方式是链接到该脚本的,只是快捷方式的icon使用了SQLyog的icon。另外,如果你需要在【开始-菜单】也创建快捷方式,你需要以管理员的身份运行该脚本,否则可能创建不成功;
4)快捷方式创建完成后,每次打开快捷方式,都会先去删除SQLyog的注册表项,然后再启动SQLyog程序,所以每次打开SQLyog程序,都是14天的试用期。
三、最后
其实也可以仅写一个删除注册表的脚本,然后配置到【任务计划程序】中,定期执行删除任务
@echo off REM SQLyog注册表key,可能跟你的不一样,如果不一样,请替换为你的 set sqlyog_reg_key=HKEY_CURRENT_USER\SOFTWARE\{d58cb4b1-47f3-45cb-a209-f298d0c3f756} REM 判断注册表是否存在,如果存在删除注册表项 reg query %sqlyog_reg_key% if %errorlevel%==0 ( reg delete %sqlyog_reg_key% /f )