使用handler處理自訂副檔名(file extension)
- 如果有需要使用自訂的附檔名的檔案,舉例來說(*.abc), 這個.abc檔案必須透過自訂的handler來處理(因為沒有建立關連之前不會有任何程式認得這個檔案格式),因此必須要修改註冊的方式來建立兩者關連。以下透過兩個步驟來達成:
- 寫一個.bat檔建立handler和.abc檔案的關連:
- 這個RegisterFileType.bat 可以當作一部分的部屬元件,客戶端的環境必須執行建立檔案連結
- assoc 是個可以建立副檔名(.abc) 和特定fileType的指令, 使用格式 ASSOC [.ext[=[fileType]]
- ftype 指令連結AbcHandler到可以處理*.abc檔案的Handler的路徑
- 之後使用Reg指令在AbcHandler機碼下面建立一個DefaulIcon的Key, 並且給定資料內容(icon的路徑)
- 另外為了讓*.abc的icon變得漂亮一點(否則就是一片白紙的icon), 因此必須改變handler.exe的icon, 假設這個handler.exe使用visual studio來更改設定,只需要在project properties改變"Icon and manifest”的設定來改變icon
- 什麼時候會需要自訂副檔名處理檔案?
- 很多套裝軟體都會自己的副檔名,像是*.pptx是代表使用簡報程式開啟,*.zip則是壓縮檔程式,因此針對這些被儲存的特定資料,要使用特定的程式來處理
- 另外一種就是情況就是現有的檔案格式有其限制, 舉例來說, 因為windows作業系統本身的限制, 一個Exectable (*.exe)的檔案大小限制為4GB, 甚至到了2GB本身就會有Image leak的問題 (Win32讀入到記憶體的限制), 因此建立一個無限制容量的自訂副檔名(假設來說這個檔案的本身是個.zip archive), 然後使用一個自訂的handler.exe來處理這個超大檔案, 這樣的需求就可以使用自訂副檔名
沒有留言:
張貼留言