初始化提交

This commit is contained in:
2025-06-15 21:29:16 +08:00
commit ef62d8e713
17 changed files with 340 additions and 0 deletions

0
.gitignore vendored Normal file
View File

10
.idea/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,10 @@
# 默认忽略的文件
/shelf/
/workspace.xml
# 基于编辑器的 HTTP 客户端请求
/httpRequests/
# 依赖于环境的 Maven 主目录路径
/mavenHomeManager.xml
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="fastRequestCurrentProjectLocalConfig">
<option name="initFlag" value="1" />
</component>
</project>

13
.idea/material_theme_project_new.xml generated Normal file
View File

@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MaterialThemeProjectNewConfig">
<option name="metadata">
<MTProjectMetadataState>
<option name="migrated" value="true" />
<option name="pristineConfig" value="false" />
<option name="userId" value="17e1e66e:18e5c566226:-8000" />
<option name="version" value="8.13.2" />
</MTProjectMetadataState>
</option>
</component>
</project>

6
.idea/misc.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="corretto-21" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
.idea/modules.xml generated Normal file
View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/navicat-command-script.iml" filepath="$PROJECT_DIR$/.idea/navicat-command-script.iml" />
</modules>
</component>
</project>

9
.idea/navicat-command-script.iml generated Normal file
View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<!-- 此处定义的是定时任务的名称,之后可用于搜索或停止该任务,建议与文件名一致即可 -->
<string>com.chaofan.reset.navicat.premium.trial.period</string>
<!-- 以下两个<string>标签填写需要运行的脚本的绝对路径,请以实际为准 -->
<key>Program</key>
<string>/Users/chaofan/Public/MyShell/reset_navicat.sh</string>
<key>ProgramArguments</key>
<array>
<string>/Users/chaofan/Public/MyShell/reset_navicat.sh</string>
</array>
<!-- 在加载该文件时即启动任务如果不需要可以删掉或改为false -->
<key>RunAtLoad</key>
<true/>
<!-- 在指定时间执行任务 -->
<key>StartCalendarInterval</key>
<dict>
<!-- 下面表示每天9点10分执行任务 -->
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
<!-- 间隔多少秒执行任务下面注释内容表示间隔30秒执行一次任务两种方式只能选一种 -->
<!-- <key>StartInterval</key>
<integer>30</integer> -->
<!-- 运行日志,请以实际为准 -->
<key>StandardOutPath</key>
<string>/Users/chaofan/Public/MyShell/reset_navicat.log</string>
<!-- 错误日志,请以实际为准 -->
<key>StandardErrorPath</key>
<string>/Users/chaofan/Public/MyShell/reset_navicat.log</string>
</dict>
</plist>

4
Mac/16X/reset_navicat.sh Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
defaults delete com.navicat.NavicatPremium 91F6C435D172C8163E0689D3DAD3F3E9
defaults delete com.navicat.NavicatPremium B966DBD409B87EF577C9BBF3363E9614
rm -rf ~/Library/Application\ Support/PremiumSoft\ CyberTech/Navicat\ CC/Navicat\ Premium/

View File

@@ -0,0 +1,49 @@
#!/bin/bash
# https://www.52pojie.cn/forum.php?mod=viewthread&tid=1669993
set -e
file=$(defaults read /Applications/Navicat\ Premium.app/Contents/Info.plist)
regex="CFBundleShortVersionString = \"([^\.]+)"
[[ $file =~ $regex ]]
version=${BASH_REMATCH[1]}
echo "Detected Navicat Premium version $version"
case $version in
"16")
file=~/Library/Preferences/com.navicat.NavicatPremium.plist
;;
"15")
file=~/Library/Preferences/com.prect.NavicatPremium15.plist
;;
*)
echo "Version '$version' not handled"
exit 1
;;
esac
echo -n "Reseting trial time..."
regex="([0-9A-Z]{32}) = "
[[ $(defaults read $file) =~ $regex ]]
hash=${BASH_REMATCH[1]}
if [ ! -z $hash ]; then
defaults delete $file $hash
fi
regex="\.([0-9A-Z]{32})"
[[ $(ls -a ~/Library/Application\ Support/PremiumSoft\ CyberTech/Navicat\ CC/Navicat\ Premium/ | grep '^\.') =~ $regex ]]
hash2=${BASH_REMATCH[1]}
if [ ! -z $hash2 ]; then
rm ~/Library/Application\ Support/PremiumSoft\ CyberTech/Navicat\ CC/Navicat\ Premium/.$hash2
fi
echo " Done"

50
Mac/17X/long-trial.sh Normal file
View File

@@ -0,0 +1,50 @@
#!/bin/bash
set -e
file=$(defaults read /Applications/Navicat\ Premium.app/Contents/Info.plist)
regex="CFBundleShortVersionString = \"([^\.]+)"
[[ $file =~ $regex ]]
version=${BASH_REMATCH[1]}
echo "Detected Navicat Premium version $version"
case $version in
"17")
file=~/Library/Preferences/com.navicat.NavicatPremium.plist
;;
"16")
file=~/Library/Preferences/com.navicat.NavicatPremium.plist
;;
"15")
file=~/Library/Preferences/com.prect.NavicatPremium15.plist
;;
*)
echo "Version '$version' not handled"
exit 1
;;
esac
echo -n "Reseting trial time..."
regex="([0-9A-Z]{32}) = "
[[ $(defaults read $file) =~ $regex ]]
hash=${BASH_REMATCH[1]}
if [ ! -z $hash ]; then
defaults delete $file $hash
fi
regex="\.([0-9A-Z]{32})"
[[ $(ls -a ~/Library/Application\ Support/PremiumSoft\ CyberTech/Navicat\ CC/Navicat\ Premium/ | grep '^\.') =~ $regex ]]
hash2=${BASH_REMATCH[1]}
if [ ! -z $hash2 ]; then
rm ~/Library/Application\ Support/PremiumSoft\ CyberTech/Navicat\ CC/Navicat\ Premium/.$hash2
fi
echo " Done"

103
README.md Normal file
View File

@@ -0,0 +1,103 @@
--------------------------
# Mac/Win定时自动重置NavicatPremium16试用期
## 重要提示
- **使用脚本重置试用期前请务必备份一下数据库连接,防止意外丢失连接!!!**
- **使用脚本重置试用期前请务必备份一下数据库连接,防止意外丢失连接!!!**
- **使用脚本重置试用期前请务必备份一下数据库连接,防止意外丢失连接!!!**
## 免责声明
本脚本为网络收集而来,免费使用,只供个人学习使用,使用需严格遵守开源许可协议。严禁用于商业用途,禁止进行任何盈利活动。对一切非法使用所产生的后果,概不负责!如有侵权,立删!
## 脚本说明
- 脚本只对`Navicat Premium 16`有效,其他版本暂未测试
- 脚本不会破解程序仅仅是删除了Navicat试用期相关的文件数据以达到无限试用的目的因此大家最好在[官网](http://www.navicat.com.cn/download/navicat-premium)下载Navicat才最安全且后续升级方便
- Mac使用`reset_navicat.sh`或者 `reset_navicat_by_52pojie.sh`Win使用`reset_for_windows.bat`(首选)或`reset_navicat.exe`
- 后面主要介绍的是如何在两个系统上设置定时任务自动执行各自的脚本
## 使用说明
**我们假定让自己的电脑在每天上午9:10自动执行脚本重置Navicat Premium 16试用期下面是操作步骤。**
### Mac
1. 下载`com.chaofan.reset.navicat.premium.trial.period.plist``reset_navicat.sh``reset_navicat_by_52pojie.sh`
> 此时只要使用命令`chmod u+x xxx.sh`给`reset_navicat.sh`或`reset_navicat_by_52pojie.sh`文件赋予可执行权限然后双击执行该脚本即可重置NP16的试用期。
2. 按照注释修改`com.chaofan.reset.navicat.premium.trial.period.plist`文件
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<!-- 此处定义的是定时任务的名称,之后可用于搜索或停止该任务,建议与文件名一致即可 -->
<string>com.chaofan.reset.navicat.premium.trial.period</string>
<!-- 以下两个<string>标签填写reset_navicat.sh脚本的绝对路径请以实际为准 -->
<key>Program</key>
<string>/Users/chaofan/Public/MyShell/reset_navicat.sh</string>
<key>ProgramArguments</key>
<array>
<string>/Users/chaofan/Public/MyShell/reset_navicat.sh</string>
</array>
<!-- 在加载该文件时就执行任务如果不需要可以删掉或改为false调试阶段建议打开以便查看脚本执行结果 -->
<key>RunAtLoad</key>
<true/>
<!-- 在指定时间执行任务 -->
<key>StartCalendarInterval</key>
<dict>
<!-- 下面表示每天9点10分执行任务 -->
<key>Hour</key>
<integer>9</integer>
<key>Minute</key>
<integer>10</integer>
</dict>
<!-- 运行日志,请以实际为准,调试阶段建议打开,以便查看脚本执行结果 -->
<key>StandardOutPath</key>
<string>/Users/chaofan/Public/MyShell/reset_navicat.log</string>
<!-- 错误日志,请以实际为准,调试阶段建议打开,以便查看脚本执行结果 -->
<key>StandardErrorPath</key>
<string>/Users/chaofan/Public/MyShell/reset_navicat.log</string>
</dict>
</plist>
```
3. 打开终端,切换到当前目录,依次执行下面的命令加载定时任务
```shell
# 为reset_navicat.sh文件授予可执行权限
chmod u+x reset_navicat.sh
# 将com.chaofan.reset.navicat.premium.trial.period.plist复制到~/Library/LaunchAgents文件夹中当前用户登录后便会自动加载该定时任务
cp com.chaofan.reset.navicat.premium.trial.period.plist ~/Library/LaunchAgents/com.chaofan.reset.navicat.premium.trial.period.plist
# 加载定时任务,如果没有报错则任务就加载成功了,会按照计划执行重置脚本,如果上面开启了加载即执行任务和任务日志输出,此时可以去查看日志文件,获取脚本执行情况
launchctl load -w ~/Library/LaunchAgents/com.chaofan.reset.navicat.premium.trial.period.plist
# 如果要调整plist文件或是停止任务请执行以下命令后再进行调整更多launchctl使用技巧请看文末的参考链接
launchctl unload -w ~/Library/LaunchAgents/com.chaofan.reset.navicat.premium.trial.period.plist
```
### Win
1. 首先[下载](https://gitee.com/chaofan2685_admin/reset_navicat_premium_for_mac/releases)`reset_for_windows.bat`双击执行即可即可重置NP16的试用期
2. `Win+R`打开运行窗口,输入`taskschd.msc`点确定打开`任务计划程序`
3. 鼠标右击`任务计划程序库`,选择`创建基本任务(B)...`,打开`创建基本任务向导`窗口
4. 在`名称(A):`处填写一个自己喜欢的名称,之后点击`下一步(N) >`
5. `希望该任务何时开始?`默认选`每天(D)`即可,之后点击`下一步(N) >`
6. 将`开始(S):`处的时间调整到上午9:10日期和其他选项保持不变即可之后点击`下一步(N) >`
7. `希望该任务执行什么操作?`默认选`启动程序(T)`,之后点击`下一步(N) >`
8. 点击`浏览(R)...`,找到并双击上面下载的`reset_for_windows.bat`,之后点击`下一步(N) >`
9. 点击`完成(F)`
![操作流程](Win/16X/iShot2022-04-18_11.07.08.gif)
## 参考连接
- [yhan219/navicat_reset_mac: navicat16 mac版无限重置试用期脚本 (github.com)](https://github.com/yhan219/navicat_reset_mac)
- [Mac 下的定时任务工具Launchctl](http://wu.run/2019/03/27/mac-launchctl-guidance/)
- [Abeautifulsnow/navicat-premium-crack: This script is used to crack navicat premium application for another 14 days trial. (github.com)](https://github.com/Abeautifulsnow/navicat-premium-crack/)
- [吾爱破解-Mac版本 Navicat16无限试用方案](https://www.52pojie.cn/forum.php?mod=viewthread&tid=1669993)

View File

@@ -0,0 +1,17 @@
@echo off
echo Delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration[version and language]
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium" /s | findstr /L Registration"') do (
reg delete %%i /va /f
)
echo.
echo Delete Info folder under HKEY_CURRENT_USER\Software\Classes\CLSID
for /f %%i in ('"REG QUERY "HKEY_CURRENT_USER\Software\Classes\CLSID" /s | findstr /E Info"') do (
reg delete %%i /va /f
)
echo.
echo Finish
pause

View File

@@ -0,0 +1,22 @@
@echo off
set dn=Info
set dn2=ShellFolder
set rp=HKEY_CURRENT_USER\Software\Classes\CLSID
reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration16XCS /f
reg delete HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Update /f
echo finding.....
for /f "tokens=*" %%a in ('reg query "%rp%"') do (
echo %%a
for /f "tokens=*" %%l in ('reg query "%%a" /f "%dn%" /s /e ^|findstr /i "%dn%"') do (
echo deleteing: %%a
reg delete %%a /f
)
for /f "tokens=*" %%l in ('reg query "%%a" /f "%dn2%" /s /e ^|findstr /i "%dn2%"') do (
echo deleteing: %%a
reg delete %%a /f
)
)
echo re trial done!
pause
exit

BIN
Win/16X/reset_navicat.exe Executable file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB