[前言]
大約一年多沒更新SI插件了,主要原因是我從SI換到了sublime,使用SI少了,插件也就停止更新了.不過看到園子里這么多網友的留言,覺得還是有必要更新一下,算是給還在用SI的朋友們一個交代.(另外吐槽下博客園的安全問題導致我延遲了2個月才能發這篇文章)
[新的LOADER]
之前提供的插件,sihook.dll 標簽插件(M),siutf8.dll utf8插件(M)這兩個dll為功能插件(實現擴展功能),可根據實際情況選擇使用,引導插件是msimg32.dll,利用了MS的一個漏洞來自動加載兩個功能插件,使用起來非常方便.
但是有部分機器,可能是補丁或者殺毒軟件的原因,導致不能用msimg32自動加載,有不少網友也反應了這個問題(和x32/x64無關,我自己電腦也是x64位,完美使用),因此就有了這個新loader.新loader有2個文件,loader.exe和loaderdll.dll.和以往一樣,將這兩文件放在SI的同一目錄,創建一個loader.exe的快捷到桌面,想啟用插件的時候,雙擊loader.exe運行.
(20151015更新)
1,根據@JasonBu的提示,改進了下loader代碼,強制從loader的路徑去尋找dll,這樣即時選擇loaderex打開PR文件也可以正常加載.
2,固化插件模式(只需運行一次),使用方法:
打開cmd命令行,cd到SI的安裝目錄,運行loaderex /install,固化插件到SI主程序,loaderex /uninstall 卸載固化;固化成功之后就不再需要loaderex,直接雙擊SI啟動即會帶插件.
(20151027更新)
1,修正打開方式打開loaderex未傳遞項目給SI的問題;
[UTF8]
如果項目不是UTF8的,建議不啟用UTF8插件(目錄中刪除dll即可),因為UTF8的實現原理用了API HOOK,繞過了SI的某些流程,所以類似"當utf8編碼文件在外部改變時,SI不會檢測到更新.需要重新關閉SI再打開"這樣的問題,是由其實現方式引發的,無法解決.
(20151015更新)
該BUG已解決(自己實現了一套檢測機制),並改進了UTF8編碼檢測算法.
[源碼]
GIT地址:https://github.com/redxu/sihook
https://github.com/redxu/siutf8
.想自行編譯的網友可以下載CodeBlocks進行編譯.
(用慣了gcc,沒辦法,對VS的傻逼行為無力吐槽),VS編譯器很可能編不過去(之前我一個小項目給朋友源碼,均反應無法編譯-.-).gcc也順便阻止了一些無恥之徒的盜版^_^.