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;前
RegDeleteValue(‘HKEY_CURRENT_USER‘, ‘Software\WinEdt 10‘, ‘Inst‘); //I‘m not clear what WinEdt.skd is exactly used for DeleteFile(‘%B\WinEdt.skd‘); //ONLY FOR WinEdt 10 //Tampering WinEdt.dnt ReadFile( "%b\WinEdt.dnt", 1, 0, 0, 0 ); ReplaceInString( "%!1", "1089357896855742345", 4, 23, 0, 2 ); WriteFile( "%b\WinEdt.dnt", "%!2", 0, 0, 0, "" );