線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1431
推到 Plurk!
推到 Facebook!

如何讓Windows的程式不用改寫成ActiveX Form而直接可以用IE執行

 
t0922610976
一般會員


發表:11
回覆:16
積分:15
註冊:2003-09-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-15 14:21:18 IP:210.64.xxx.xxx 未訂閱
Web Module 前言 「Write once, run everwhere on Windows」用這句話來形容「EEP Web Module」是最貼切的,因為對於EEP平台所開發出來的應用程式而言,只要加入Web Module,根本不必要把每個由Delphi所開發出來的Form,轉成ActiveX Form,祇要幾個簡單安裝設定,即可讓應用程式呈現在Internet Browser中使用。 有別於一般Html網頁的方式,「EEP Web Module」是使用ActivX元件技術搭配EEP平台的Package分割程式開發架構,實作出Windows的使用界面和Web的使用界面相同,讓程式開發方式只要一次,即可昇級至WEB,讓企業用戶使用瀏覽器的方式來操作系統,而不需要花費大筆的金錢建置Terminal Server的作業環境,徒增MIS人員的負擔。 Web Module的ActiveX原生技術架構 訊光科技所研發的「EEP平台」採原始碼開放的方式,每個使用EEP的開發人員,皆可利用原始碼來瞭解整個平台的來龍去脈,提昇技術及開發的能力。在此為各位同好解說基本原理,讓大家有空時也可以自行開發Web Thin Client的系統。「EEP Web Module」大致上使用「ActiveX元件」、「MIDAS」以及EEP平台的Package架構為主。 首先開發一個ActiveX元件,這個元件主要負責檔案的下載,有點類似FTP的功能。再來就是利用ActiveX元件來啟動Thin Client程式。所以如果各位有興趣的話,可以利用這個概念,實作出屬於自己的Web方式。 EEP Web Module的實作架構 運作原理大致如下說明: 1. 首先會先開啟一個新的Browser來執行,不會干擾到原來的Browser網頁畫面。 2. 根據網頁上傳給這個ActiveX元件的參數,ActiveX元件開始嘗試用"ServerAddress"的定義位址來和EEP AP Server連線。連線有可能失敗,若是失敗則產生錯誤訊息,執行停止。 3. ActiveX元件連上AP Server後,就會檢查而且必要時下載EEP ThinClient執行檔(一個Exe檔),下載到Windows的Temp目錄中,產生的一個叫EEP Web Client的子目錄中。 4. 順利檢查到(或是順利下載)EEP ThinClient主程式後,接下來ActiveX元件就啟動ThinClient,把執行控制交給ThinkClient同時、也把ActiveX本身所有的參數定義都傳給ThinClient。 5. ThinClient開始執行後,根據ActiveX元件傳給它的參數連線到AP Server,ActiveX元件傳過來的參數中還包含了要啟動的ProgID,此時ThinClient會根據這個ProgID來檢查Local端的必須檔案,必要時從AP Server中執行下載。 6. Client程式不存在、或是Client程式中的檔案版本和Server上的檔案版本不合時,ThinClient都會執行下載動作,但是ThinClient並不會一次全部下載一整個ProgID指定的Client的全部檔案,只會下載Client執行必要的基本檔案。 7. 指定的ProgID的Client程式基本檔案檢查下載完後,ThinClient就會啟動指定ProgID中的Client Bin檔("ClientRunFile"參數所指定),並且把其它的參數一樣傳給Client Bin檔。 8. Client Bin檔執行後,ThinClient就將自己關掉了。Client Bin根據傳進來的參數("ServerAddress"、"MainDatabase"... 等)來和AP Server連線運作,開始正式執行所指定的AP Client程式。 9. 出現Client Login畫面。 EEP Web Module的安裝及設定 【AP Server的設定和管理】 在AP Server所在的目錄下有一個子目錄,叫Client DownLoad Files,這個子目錄中所放的檔案就是直接要被下載到Client端中的檔案,這個下載區的結構如下: 1. 下載區(Client DownLoad Files)第一層只放一個檔案,就是ThinClient主程式(EEPThinClient.exe),以便ActiveX元件在Client端執行時可以更新下載。 2. 在下載區下,又分成不同的子目錄,每一個子目錄的名稱就對應到ProgID的名稱,也就是說,這樣的每一個子目錄下,都是對應到不同ProgID可以執行的Client應用程式的完整檔案。 3. 在Server端上ProgID對應的子目錄,雖然含有整套應用程式Client端完整的檔案,但是Client端在執行時並不是一次全部下載到Client端。在Client電腦執行ThinClient檢查檔案時,只會檢查下載ProgID同名子目錄中第一層中所有的檔案,這些就是基本必須的執行檔,在這一層目錄中放的全部檔案,不管任何類型,都會在ThinClient一開始執行時一次全下載到Client端電腦上。 4. 其它ProgID子目錄中非第一層中的檔案,例如往下一層的SysBPL中的 *.bpl檔,則是等到Client程式真正執行時有需要用到時,才會RunTime從Server端下載。 5. 下載區(Client DownLoad Files)中有一個特別的子目錄名稱,叫做Common Files,這一個子目錄並沒有對應到任何的ProgID(同時也請使用者不要把ProgID命名成 “Common Files”),這一個子目錄的用意是,有些檔案是不管那一個EEP Client的應用程式都是共通要使用的,例如VCL50.bpl等Delphi的標準BPL,把這些檔案特別放在這個區域讓它們只下載一次到Client端電腦後就可以在Client電腦上直接Copy給所有的ProgID Client使用。這樣就不用每一份ProgID下載子目錄中都放一份這些檔案,才不會浪費Server端空間而且還每一個ProgID Client都要浪費時間下載一次。 【安全性簽章】 EPWebXClientLoader.cab(ActiveX)是經過VeriSign Class3 Code Signing 2001-4 CA確認,表示是安全的。 結語 當您的企業是屬於兩岸三地或是跨國企業或是有多個營運點或是分店,甚至於是企業內部有上百個使用者時,透過WEB Module自動化安裝及程式分發更新功能,則可省去MIS維護及安裝的成本。除此之外,當您的系統遇到上百個使用者,大量的資料、多點、自行開發等問題時,複製EEP的成功開發經驗模式,是最簡單的方式,因為只要照著作,成功的專案是顯而易見的。
系統時間:2024-05-15 12:24:25
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!