2014年7月16日 星期三

使用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的路徑)
      • image
    • 另外為了讓*.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來處理這個超大檔案, 這樣的需求就可以使用自訂副檔名

沒有留言:

張貼留言