自動(dòng)化字體加載工具SubtitleFontHelper

又來(lái)碎碎念了:
????上一次寫的ListAssFonts其實(shí)更偏向于發(fā)布向的,批量導(dǎo)出ASS字幕所需字體,然后打包發(fā)布。此次要寫的SubtitleFontHelper更偏向于個(gè)人使用,自動(dòng)化加載ASS字幕所需的字體,無(wú)需安裝字體的過程,釋放安裝過多字體的壓力,也更加的“小白”化。自動(dòng)化是真滴香喔!

接下來(lái)是正片:
1.獲取字體大包?
不重復(fù)寫了,直接參考上一篇專欄吧

2.下載并安裝SubtitleFontHelper
你可以從Anime字幕論壇(原VCB分享論壇)下載到此軟件(見下方鏈接)或者從Github頁(yè)面進(jìn)行下載。
論壇帖:https://bbs.acgrip.com/thread-6358-1-1.html
Github:https://github.com/Apache553/SubtitleFontHelper
論壇頁(yè)面可以直接下載壓縮包。github訪問不暢的,同樣可以使用上篇中推薦的“watt toolkit”?進(jìn)行輔助。
打開github頁(yè)面,點(diǎn)擊右側(cè)的Releases,下載最新版的v1.0.4的ReleaseBuild.zip壓縮包。


下載后解壓到電腦合適的位置,比如我存放在圖示的位置。

配置SubtitleFontHelper
將字體大包文件夾直接拖拽到FontDatabaseBuilder.exe上釋放

會(huì)彈出命令行窗口,選N即可

(此處選N是將生成的索引文件FontIndex.xml存放在了字幕大包的文件夾里,也可以選Y更改為其它目錄,不過我更改目錄后沒生成FontIndex.xml,你可以自行嘗試這種操作)
將解壓后的SubtitleFontHelper.example.xml文件,重命名為SubtitleFontHelper.xml。
打開SubtitleFontHelper.xml,更改其中的配置:
wmiPollInterval
?指定WMI查詢的間隔時(shí)間,毫秒數(shù)。較低的值導(dǎo)致較高的CPU使用率。較高的值可能會(huì)導(dǎo)致注入進(jìn)程不夠及時(shí)。
lruSize
?指定服務(wù)啟動(dòng)時(shí)預(yù)加載的條目最大大小。
IndexFile
元素 每個(gè)元素指定了索引文件的位置,在這里列出程序所使用的索引。元素開始和結(jié)束之間的所有字符(包括換行等字符)將會(huì)被當(dāng)作文件路徑使用,若提示找不到文件請(qǐng)檢查相關(guān)內(nèi)容。
MonitorProcess
元素 每個(gè)元素指定了要監(jiān)視的進(jìn)程的路徑或者進(jìn)程名。由于程序使用了rundll32.exe
作為注入過程中的輔助程序,指定該進(jìn)程可能會(huì)導(dǎo)致災(zāi)難性的后果。

wmiPollInterval保持默認(rèn)即可
第三行IndexFile調(diào)整為剛才你生成FontIndex.xml的實(shí)際路徑,你可以右鍵FontIndex.xml屬性,在安全選項(xiàng)卡下復(fù)制對(duì)象名稱。

MonitorProcess代表監(jiān)控并注入的軟件名稱(可指定路徑),可指定多個(gè)exe,直接復(fù)制粘貼該行,然后更改對(duì)應(yīng)的exe名稱即可。
(注意僅支持傳統(tǒng)桌面程序,不支持UWP等軟件哦)
本程序可以對(duì)用戶存放字體文件的目錄進(jìn)行掃描后建立字體信息的索引,在后臺(tái)監(jiān)視特定進(jìn)程的創(chuàng)建并注入Dll劫持特定API的調(diào)用,使其在真正調(diào)用相關(guān)API之前先查詢索引并裝載相應(yīng)的字體,從而實(shí)現(xiàn)自動(dòng)加載字體。
目前,僅支持使用GDI相關(guān)函數(shù)來(lái)查詢/加載字體的傳統(tǒng)Win32桌面程序,不支持UWP應(yīng)用,不支持使用IDWriteFontCollection/IDWriteFontSet等DirectWrite接口來(lái)查詢/加載字體的程序。
exe路徑尋找方法
比如我從官網(wǎng)下載并裝了potplayer64位的版本,此時(shí)打開potplayer,打開任務(wù)管理器(快捷鍵:ctrl+ shift+ esc),選中Potplayer,打開“文件所在位置”,彈出文件管理器,并發(fā)現(xiàn)藍(lán)框選中在PotPlayerMini64.exe上,那么就將PotPlayerMini64.exe填入到SubtitleFontHelper.xml中。

另一種方式:以aegisub為例
開始菜單找到aegisub,右鍵更多,打開文件位置。
桌面快捷方式也是同理右鍵。

此時(shí)定位到到開始菜單的快捷方式文件上
直接右鍵屬性查看到對(duì)應(yīng)exe名稱aegisub64.exe。
或者右鍵繼續(xù)“打開文件所在位置”定位exe。

點(diǎn)擊保存后退出即可。
xml里可以根據(jù)你自己的需求,按需填入exe即可,目前我就用到這些,你也可以嘗試整些新活。
注冊(cè)與啟動(dòng)相關(guān)
右鍵registerETW.ps1,點(diǎn)擊“使用PowerShell運(yùn)行”,進(jìn)行注冊(cè)。
右鍵enableAutoStart.ps1,點(diǎn)擊“使用PowerShell運(yùn)行”,開啟開機(jī)自啟動(dòng)。
注意檢查啟動(dòng)目錄內(nèi)是否有相應(yīng)快捷方式。

如需遷移軟件位置,請(qǐng)先取消注冊(cè)(運(yùn)行unregisterETW.ps1)再進(jìn)行注冊(cè)(registerETW.ps1)。
取消開機(jī)自啟動(dòng)可以通過運(yùn)行disableAutoStart.ps1或刪除啟動(dòng)內(nèi)的快捷方式等方法。

到此就已經(jīng)設(shè)置完成了。
來(lái)檢查下效果吧。
運(yùn)行SubtitleFontAutoLoaderDaemon.exe,右下角就可以看到圖標(biāo)了。
來(lái)對(duì)比下效果吧!


Aegisub沒想到也能支持,好耶!整字幕更加方便了。
快去給作者點(diǎn)個(gè)小星星!
