解决`SQLyog Trial`试用到期的问题(提供一个脚本解决方案)

本文将总结SQLyog Trial试用到期的问题。

其实解决起来很简单,就是将SQLyog相关注册表删掉即可

一、要删除的注册表项

Win+R打开运行,输入regedit回车,打开注册表
HKEY_CURRENT_USER\SOFTWARE路径下,找到{d58cb4b1-47f3-45cb-a209-f298d0c3f756} 这个一串字符串的项
(不确定大家的是否都一样,自己找找,找到包含InD110、InU值的)

在这里插入图片描述
删除这个项,即可解决问题

二、写了个脚本干这个事儿

每过14天都要手动删除一下这个,好像也还能接受,但我还是写了一个脚本来完成这项工作。
直接上脚本内容(bat脚本)

@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
)

关于如何创建定时任务,可参考:Windows 下创建定时任务执行Python脚本
虽然文章是拿Python脚本举例,方法都是相通的,要学会举一反三

猜你喜欢

转载自blog.csdn.net/B11050729/article/details/132844131