Latex 4: WinEdt 10试用时间限制的破解

时间:2022-04-26 08:55:45

WinEdt 是目前我发现最好的LaTeX编辑器,但是在国内支付不便,且学生许可需$40,只能出此下策,望有余力者尽量购买正版。

WinEdt 的旧版本的破解方法众所周知,只需定时删除HKCU\SoftWare\WinEdt 7\Inst这个注册表键值即可(这个注册表键记录了安装的时间,以分钟为单位),可以把这个操作写在WinEdt的退出时调用的宏里面。(CTeX发行版里的WinEdt 7也是如此破解的)

但是对于WinEdt的新版本(10.1),这个方法部分失效,我经过试验与对比,发现它会向%AppData%\WinEdt Team\WinEdt 10\WinEdt.dnt里面写东西,第二行那组数字(类似‘1089357896771240110’)与安装时间密切相关。如果发现注册表键不存在,一般会根据这个记录算出一一对应的注册表键写入注册表。但如果这个值是安装后的初始值‘1089357896855742345’,则将当前时间写入注册表,并且计算出当前时间对应的数字写入WinEdt.dnt。另外如果WinEdt.dnt中的数值恰为‘1089357896855742345’时(认为可能被破解者改回?),且注册表中有时间记录,,那这个数字也会被根据注册表中时间计算出的正确的时间替换。所以如果要恢复原始的试用时间,需要同时修改WinEdt.dnt和删除注册表。

WinEdt.dnt在WIN7系统中默认安装位置是:C:\Users\Administrator\AppData\Roaming\WinEdt Team\WinEdt 10,其他系统类似。

现在找到破解方法如下

1.打开菜单option-option interface-Advanced Configuration-Event Handlers-Exit

2.在退出宏中添加以下语句,位置是:在语句Exe(‘%b\Config\Cleanup.edt’);后,在语句PopTagsandRegisters;前

1 RegDeleteValue(HKEY_CURRENT_USER, Software\WinEdt 10, Inst); 2 //I‘m not clear what WinEdt.skd is exactly used for 3 DeleteFile(%B\WinEdt.skd); 4 5 //ONLY FOR WinEdt 10 6 //Tampering WinEdt.dnt 7 ReadFile( "%b\WinEdt.dnt", 1, 0, 0, 0 ); 8 ReplaceInString( "%!1", "1089357896855742345", 4, 23, 0, 2 ); 9 WriteFile( "%b\WinEdt.dnt", "%!2", 0, 0, 0, "" );

即可。

另外我不太清楚WinEdt.skd起什么作用,似乎不删除并无妨,如果有人知道请告诉我,谢谢。

更新:这种方法同样适用于WinEdt 10.2