[VB6][VBA]製作一個可以封裝 VBA 或 Office 文件的封裝程式

  • 10813
  • 0
  • VB6
  • 2017-11-23

[VB6][VBA]製作一個可以封裝 VBA 或 Office 文件的封裝程式

  DBD.exe 是用 VB6 開發的小工具,當時覺得 VB6 的封裝佈署工具太過龐大,介面外觀也不夠秀氣。 過去經常有把包含 VBA 巨集的 Office 文件帶出去介紹的場合。通常我會把要用到檔案和素材、放在獨立的資料夾裡再用 rar 壓成一個自解檔放在 Ftp 或隨身碟上,等到了現場再解開來操作,這些檔案有時也需要散布給聽眾或學員參考使用。

  目標文件可能是一組簡報檔、一份 Word 文件檔或是一個 VBA 巨集專案……等等,尤其在散發文件資料後作者還會有修改、更新的情形。漸漸覺得這個模式很像是應用軟體的封裝和散布,因為它也要能支援偵測版本,以及從網路自動更新的能力,只是主角未必是一個標準的 exe 執行檔

  這個程式是2005年寫的,那時教育部在全面推動所謂的「資訊科技融入教學計畫」,鼓勵中小學教師自製資訊融入教材並應用在教學上,個人是團隊成員之一,面對當時環境和工作上的需求寫了一些東西,這個小工具也是那個時期的作品,而它的「網路版本更新」功能倒和現在微軟的 (Click Once) 相同。

 


  • 程式說明:程式分三個專案以專案群組方式開發:
    1. 主程式。
      負責建立檔頭、索引以及執行合併、分解等工作,並處理使用者介面。
    2. 自解檔的部分。
      單獨編譯為可執行檔後以 Resource 的角色加入主程式,讓輸出檔案具有 exe 規格,輸出後可擔任火車頭的工作。
    3. 進行網路版本更新時的中繼程式。
      當主程式發現有最新版本時,為了讓程式可在執行中被更新,需要一個暫時接管控制權的中繼程式對執行檔做同名複製的動作。

  • 使用說明
    1. 把多個檔案合併為單一檔案。
      1. 合併檔的副檔名為 .dbd(是檔包檔的音譯)於第一次執行時會修改註冊表和主程式產生關聯。
      2. 要打包檔案時可利用(由主程式開啟)(拖曳到)(傳送到)三種方法。
      3. 以右鍵傳送打包說明如下:
         
        選取檔案→傳送到 DBD 選擇輸出為 dbd 檔包檔 完成後 Click 輸出位置

        Snap32

        Snap33

        Snap34

         

      4. 解包:
         
        DoubleClick 生出的 .dbd 檔 原檔案會放在這個同名資料夾裡
        Snap37 Snap38
    2. 做為簡報 pps 或 Office VBA 專案封裝工具。
      1. 把簡報檔和用到的其它檔案一併用 dbd 打包。
      2. 打包設定時選擇輸出[安裝程式包]。
      3. 設定一些參數,包含是否要有桌面捷徑、圖示..等等。
      4. 圖解說明如下:
         
        右鍵傳送 pps 和一些素材到 dbd 選擇輸出 .exe安裝程式包 產生了 setup.exe 檔
        image

         

        image

        image

      5. 解包進行安裝:
         
        DoubleClick 生出的 .exe 檔 桌面出現了簡報的捷徑 開啟它..
        image

         

        image

        image


         
    3. 應用程式封裝:
      1. 應用程式封裝方式和前節相同。
      2. 如果封裝 VS.net 程式只要把主要專案輸出的組件包進去即可(不必勾選註冊 dll & ocx,除非你用到它)。
      3. 如果封裝 VB6 的執行檔或 VBA 巨集文件,要自行認知要包哪些東西進去。
      4. 因為沒有支援打包資料夾結構,所以留了個[解包後置命令]的功能,讓有此需求時可以用 rar 等工具配合解決。
      5. 圖解說明如下:
         
        右鍵傳送檔案到 dbd 選擇輸出 .exe安裝程式包 產生了 xxx_setup.exe 檔
        image

         

        image

        image

      6. 進行安裝:
         
        DoubleClick 安裝檔 順利的出現桌面捷徑 執行成功
        image

         

        image

        image



ku3