解决`SQLyog Trial`试用到期的问题(提供一个脚本解决方案)
作者:mmseoamin日期:2023-12-05

文章目录

    • 一、要删除的注册表项
    • 二、写了个脚本干这个事儿
    • 三、最后

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

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

      一、要删除的注册表项

      Win+R打开运行,输入regedit回车,打开注册表

      在HKEY_CURRENT_USER\SOFTWARE路径下,找到{d58cb4b1-47f3-45cb-a209-f298d0c3f756} 这个一串字符串的项

      (不确定大家的是否都一样,自己找找,找到包含InD110、InU值的)

      解决`SQLyog Trial`试用到期的问题(提供一个脚本解决方案),在这里插入图片描述,第1张

      删除这个项,即可解决问题

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

      每过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脚本举例,方法都是相通的,要学会举一反三