《多媒體軟件設(shè)計技術(shù)》課件第9章_第1頁
《多媒體軟件設(shè)計技術(shù)》課件第9章_第2頁
《多媒體軟件設(shè)計技術(shù)》課件第9章_第3頁
《多媒體軟件設(shè)計技術(shù)》課件第9章_第4頁
《多媒體軟件設(shè)計技術(shù)》課件第9章_第5頁
已閱讀5頁,還剩149頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

9.1VB多媒體應(yīng)用系統(tǒng)的發(fā)布和測試9.2Authorware多媒體作品的發(fā)布本章小結(jié)練習(xí)九9.1.1使用SetupFactory制作安裝程序

SetupFactory貫徹了快速方便的開發(fā)理念,讀者無需長時間學(xué)習(xí)便可達到熟練使用的程度。它強大的功能、方便易用的操作界面較適合大多數(shù)程序員,而且其安裝程序也非常精美。用戶要做的只是在界面中通過鼠標(biāo)點擊將軟件文件和目錄直觀地添加到目錄中,整個過程完全邏輯化和無縫化。除此之外,SetupFactory支持創(chuàng)建一個安裝文件包或一個單獨的setup.exe文件,生成文件可以運行于任意版本的Windows中,包括Windows95到WindowsXP及其以上版本,且更利于用戶的發(fā)布,比如通過網(wǎng)站、CD/DVD刻錄和局域網(wǎng)等。9.1VB多媒體應(yīng)用系統(tǒng)的發(fā)布和測試?yán)肧etupFactory安裝程序制作向?qū)Ы缑鏁r,即使對安裝制作不了解,也可以生成專業(yè)性質(zhì)的安裝程序;可建立快捷方式,也可直接在Windows系統(tǒng)的注冊表中加入內(nèi)容,還可在Win.ini和System.ini文件內(nèi)加入設(shè)定值,更可建立反安裝選項等。它內(nèi)附的向?qū)Э梢砸徊揭徊降匾龑?dǎo)用戶做出既漂亮又專業(yè)的安裝程序。下面就以SetupFactory?7.0版為例,介紹這個軟件的一般的使用方法,并簡要說明如何使用SetupFactory來制作一個安裝程序。

1.SetupFactory的一般制作過程

運行SetupFactory7.0軟件后,默認(rèn)會跳出一個工程向?qū)У慕缑?。此時可點擊“創(chuàng)建”來新建一個工程,或是按Esc鍵退出工程向?qū)?,直接進入軟件主界面,如圖9-1所示。圖9-1SetupFactory軟件主界面現(xiàn)在可以開始制作安裝程序。先添加安裝文件,在菜單的工程中選擇“添加文件”,或在主界面左側(cè)的“文件”中選擇“添加文件”,然后點擊“添加”按鈕。文件加入后,用鼠標(biāo)右鍵單擊某一文件(也可選中多個文件對其編輯),選擇“文件屬性”,可修改相應(yīng)設(shè)置。目標(biāo)中默認(rèn)為%AppFolder%,該變量表示安裝路徑,可以修改成其他自帶變量或自定義變量。如果該文件為可執(zhí)行文件,那么默認(rèn)會在“開始”菜單建立相應(yīng)的快捷方式,以進行相關(guān)設(shè)置;如果不需要快捷方式,可取消。文件加入后,可以設(shè)置安裝程序的相關(guān)信息,如變量定義、軟件卸載等,如圖9-2所示。在左側(cè)設(shè)置中點擊“會話變量”,這些變量是SetupFactory自帶的變量,在此處定義或在代碼中定義后,即可在安裝過程中使用。新建安裝程序默認(rèn)會創(chuàng)建卸載,如果軟件不需要卸載,那么單擊主界面左側(cè)卸載中的“設(shè)置”,即可關(guān)閉“創(chuàng)建卸載”。下面來制作安裝過程中的屏幕。屏幕分三部分:安裝前、安裝中、安裝后。單擊主界面左側(cè)屏幕中的“工程主題”,在跳出的窗口下方選擇工程主題可改變安裝屏幕的樣式。點擊“安裝之前”,可在窗口左側(cè)添加或刪除相應(yīng)的屏幕,如圖9-3所示。選中某一屏幕后,點擊窗口下方的“編輯”按鈕,即可對該屏幕進行編輯。在“屬性”中可修改屏幕標(biāo)題和按鈕等。在“操作”中可對該屏幕事件進行編程。通過窗口底部的“添加操作”和“添加代碼”,可加入相應(yīng)的代碼來實現(xiàn)所需功能,如圖9-4所示。圖9-2設(shè)置安裝程序的相關(guān)信息圖9-3制作安裝前的屏幕圖9-4編碼設(shè)定屏幕的屬性在“安裝之時”選項卡中,取消“安裝期間顯示進程屏幕”的選擇,該進程的屏幕在安裝時將不再出現(xiàn)。如果只是想在安裝過程中不顯示復(fù)制的文件名稱及其路徑,那么點擊“編輯”按鈕,并取消“顯示狀態(tài)文本”的選擇。在“安裝之后”選項卡中可編輯安裝完畢后的屏幕界面。上述過程完成后,一個簡單的安裝程序就可以發(fā)布了,點擊菜單“發(fā)布”中的“構(gòu)建”,默認(rèn)選擇“Web(單個文件)”,再點擊“下一步”按鈕即可。也可以發(fā)布成其他軟盤、光盤等形式。確定輸出安裝程序的文件夾及安裝程序文件名稱,然后點擊“構(gòu)建”按鈕。等待向?qū)?gòu)件安裝文件,最后單擊“完成”按鈕結(jié)束整個過程?,F(xiàn)在就可以測試做好的安裝程序了。測試前,可將SetupFactory工程保存到電腦上。

2.SetupFactory對VB工程的特別支持

SetupFactory可以方便地為VB應(yīng)用創(chuàng)建安裝程序。它不僅提供了VB運行時文件(Runtime),并且可以對VB項目、INI及DEP文件進行掃描。部分VB開發(fā)者因其強大、易用和可靠,而偏愛使用SetupFactory。如果不希望制作的安裝程序具備過多的交互功能,也就是說不想在程序安裝過程中讓用戶過多參與選擇的話,則可刪除一些選項。反過來,也可自行添加一些選項以增加安裝程序的靈活性??傊?,要想讓安裝程序做得更專業(yè),設(shè)置ScreenManager中的選項內(nèi)容是十分重要的。設(shè)置好以上參數(shù)后,點擊“確定”按鈕并退出該頁。如果不想讓打包的程序安裝一些動態(tài)鏈接庫文件和外部控件,那么現(xiàn)在就可以進行安裝程序的生成步驟了;否則還得進行以下操作(尤其對VB的項目)。點擊SetupFactory主界面左邊工具欄中的“RuntimeSupport”來設(shè)置運行時支持文件。若程序是用VB寫的,那么在出現(xiàn)的下拉選項中選擇“MicrosoftVisualBasic”,然后點擊“Next”按鈕,隨后選擇“程序開發(fā)平臺VB”。點擊“下一步”按鈕,選擇VB程序的工程文件名(一般用VB開發(fā)的程序編譯后應(yīng)該保留工程文件,而不應(yīng)該像平時那樣把工程文件和窗體文件及模塊代碼等文件備份后就從目錄中刪除,保留工程對制作VB安裝程序至關(guān)重要)。根據(jù)工程文件,軟件會自動找到程序所用到的全部動態(tài)鏈接庫文件和全部控件,包括在開發(fā)過程中用到的第三方控件。點擊“完成”按鈕,軟件會把找到的文件在文件列表中全部列出來,這時還可根據(jù)需要進行取舍。最后,點擊“Edit”菜單中的“Addfiles”,在出現(xiàn)的選擇框中選擇想打包的目標(biāo)文件,確定后,此文件會和已選擇的控件文件等一起出現(xiàn)在文件列表中。然后按“F7”鍵開始建立安裝程序,軟件會提示輸入生成文件的文件名和存放位置等,根據(jù)需要填好后點擊“Output”,一個專業(yè)的安裝程序就做好了。當(dāng)然,SetupFactory的功能遠不止這些,比如讓安裝程序在運行時向系統(tǒng)注冊表寫入信息,各種反安裝方式的設(shè)定,給軟件添加安全保護等很多實用功能,靈活使用這些功能會讓安裝程序更專業(yè)、更漂亮。9.1.2使用VB自帶的打包和展開向?qū)е谱靼惭b程序

對于本書重點介紹的VB應(yīng)用軟件而言,專門的制作工具將是用戶的首選,而VB就自帶了一款這樣的工具——打包和展開向?qū)?PackageandDeploymentWizard)。

1.打包和展開向?qū)Ы榻B

打包和展開向?qū)荲isualBasic自帶的工具,它能為VisualBasic應(yīng)用程序創(chuàng)建包裝,并將它們安裝到最終用戶的機器上。也可以使用打包和展開向?qū)?chuàng)建從屬文件(?.dep),只是在運行該向?qū)е埃仨氂幸粋€保存并編譯了的工程。為發(fā)布VB應(yīng)用程序,利用該向?qū)Э梢詣?chuàng)建標(biāo)準(zhǔn)包裝(setup.exe)、Internet包裝和部件一起分發(fā)的從屬文件。該向?qū)?yīng)用程序部件包裝為壓縮文件(?.cab)。另外,如果需要再次包裝或部署相同的應(yīng)用程序,則在向?qū)е泄ぷ鲿r,可以將設(shè)置保存為腳本,以便重復(fù)使用。也可以將打包和展開向?qū)ё鳛镸icrosoftVisualBasic的外接程序或一個獨立應(yīng)用程序啟動。

打開和展開向?qū)в腥缦乱恍┲匾墓δ苓x項:

(1)“激活工程”:顯示當(dāng)前工程的名稱和路徑名。只有將向?qū)ё鳛橥饨映绦蜻\行時才可用。

(2)“選定工程”:顯示選定工程的名稱和路徑名,同時列出以前的工程,可以輸入工程的名稱和路徑名,或者從列表中選擇一個工程。只有將向?qū)ё鳛楠毩⒉考\行時才可用。

(3)“瀏覽...”:顯示一個可以用來瀏覽工程的對話框。只有將向?qū)ё鳛楠毩⒉考\行時才可用。

(4)“打包”:包裝工程的第一步。在包裝完應(yīng)用程序后,可以返回到主屏幕并部署包裝。

(5)“展開”:部署包裝的第一步。如果有一個包裝好的工程想要發(fā)布到軟盤、網(wǎng)絡(luò)或本地文件夾,則可以使用向?qū)У倪@一部分。

(6)“管理腳本”:顯示“管理腳本”對話框,在這里可以重命名、復(fù)制或刪除包裝和部署腳本。

2.打包和展開向?qū)У囊话阒谱鬟^程

程序開發(fā)工具中自帶的打包程序,如VB自帶的打包和展開向?qū)В诠δ芎鸵子眯陨喜皇欠浅M晟?,但對?yīng)用程序的開發(fā)人員來說也不難,應(yīng)該掌握。下面詳細介紹用VB自帶的打包程序?qū)椖窟M行打包的操作步驟:

(1)運行打包和展開向?qū)?,如圖9-5所示。圖9-5“打包和展開向?qū)А敝黜撁?/p>

(2)點擊“瀏覽”按鈕,選擇要打包的工程。然后單擊“打包”按鈕,進入下一個頁面,如圖9-6所示。

(3)選擇要打包的類型。普通的EXE工程選擇“標(biāo)準(zhǔn)安裝包”;控件類要看使用的地點,如果是在網(wǎng)頁中使用,則選擇“Internet軟件包”。然后點擊“下一步”按鈕,如圖9-6所示。

(4)選擇打包文件的存放位置,如圖9-7所示。圖9-6選擇包的類型圖9-7打包文件的存放位置

(5)向?qū)ё詣诱页隽斯こ讨袘?yīng)用的控件、DLL等文件,需要到工程中檢查一下,看看所包含的文件是否齊全,第三方控件所帶的文件一定要帶上。然后點擊“下一步”按鈕,如圖9-8所示。

(6)根據(jù)需要選擇打包的文件類型:如果用光盤發(fā)布,則選擇“單個的壓縮文件”;如果用軟盤發(fā)布,則選擇“多個壓縮文件”。然后單擊“下一步”按鈕,如圖9-9所示。圖9-8包含文件列表圖9-9壓縮文件類型

(7)確定安裝程序的標(biāo)題,也就是確定在安裝背景上要顯示的文字。然后單擊“下一步”按鈕,如圖9-10所示。

(8)可以設(shè)置在“開始菜單”中顯示哪些項目,比如可以設(shè)置加載、卸載程序項。選擇“新建項”按鈕,然后在“目標(biāo)”欄中輸入$(WinPath)\st6unst.exe-n"$(AppPath)\ST6UNST.LOG",注意應(yīng)包括雙引號。在“開始”項目中選擇“$(WinPath)”,不包括雙引號。然后點擊“確定”按鈕,如圖9-11所示。圖9-10確定安裝程序的標(biāo)題圖9-11啟動菜單項設(shè)置

(9)在此可以更改文件夾的安裝位置,然后點擊“下一步”按鈕。在此,還可以將文件設(shè)置為共享(即文件可以被多個程序使用)。

到此為止,安裝制作完成。安裝完之后,會生成三個文件和一個文件夾,如圖9-12所示。其中:SETUP.LST為安裝信息文件;.CAB文件包是數(shù)據(jù)文件,安裝的文件全部在包里;setup.exe是安裝的主文件;Support是壓縮包中包含的所有文件,它內(nèi)部的所有文件如圖9-13所示。圖9-12生成的文件和文件夾圖9-13壓縮包中所包含的文件這個文件夾里有一個比較重要的文件就是“執(zhí)照套打.BAT”這個批處理文件(不同的工程,文件名會不一樣),當(dāng)工程改動之后,可以將工程重新編譯一下,然后將執(zhí)行文件拷貝到此Support目錄下,執(zhí)行這個批處理文件,就可以重新打包,而不必每次改動時都運行打包和展開向?qū)А?/p>

還有一個比較重要的文件是SETUP1.EXE文件,這是安裝的主文件,安裝時看到的界面就是這個文件運行產(chǎn)生的。該文件是用VB編寫的,源程序在VB的安裝目錄下:C:\ProgramFiles\MicrosoftVisual

Studio\VB98\Wizards\PDWizard\Setup1\SETUP1.VBP??梢杂肰B直接編輯這個工程,改成具有個性的安裝界面。如果在安裝之后想在桌面上添加程序的快捷方式,則可以編譯這個工程,打開“frmSetup1”窗口,在其代碼中加上如下代碼:下面介紹由向?qū)傻腟ETUP.LST(安裝信息文件),其內(nèi)容如圖9-14所示,其中SetupTitle是解壓窗口的標(biāo)題,SetupText是解壓窗口的內(nèi)容,將SetupText的內(nèi)容改為“正在復(fù)制文件,請等待”后,其效果如圖9-15所示。接下來介紹SETUP.LST文件的Setup區(qū),其內(nèi)容如圖9-16所示,其中,如果將Color設(shè)置為不同的值,就可以改變安裝窗口的背景色(默認(rèn)為藍色)。把Color設(shè)置為16之后,窗口的背景就會變?yōu)榫G色(當(dāng)然還有其他的顏色,讀者可以自行設(shè)置),其顯示效果如圖9-17所示。圖9-14SETUP.LST文件的內(nèi)容圖9-15改動之后的運行界面圖9-16SETUP.LST文件中Setup區(qū)的內(nèi)容圖9-17安裝窗口的背景色的變化

VB自帶的打包和展開向?qū)С绦蛲耆怯肰B編寫的,源程序位于“C:\ProgramFiles\MicrosoftVisualStudio\VB98\Wizards\PDWizard\”的目錄下,用戶可以自行修改。9.1.3VB打包和展開向?qū)Т虬膯栴}與對策

打包和展開向?qū)Э梢詣?chuàng)建兩種軟件包:標(biāo)準(zhǔn)軟件包或Internet軟件包。如果計劃通過磁盤、光盤或網(wǎng)絡(luò)共享來發(fā)布應(yīng)用程序,則應(yīng)創(chuàng)建一個標(biāo)準(zhǔn)軟件包。如果計劃通過Intranet或Internet站點來發(fā)布應(yīng)用程序,則應(yīng)創(chuàng)建一個Internet軟件包。還可以使用VisualBasic的打包和展開向?qū)?yīng)用程序創(chuàng)建到軟盤、CD、本地或網(wǎng)絡(luò)驅(qū)動器以及Web上的軟件包。在這些制作過程中,可能會出現(xiàn)各種問題,下面從兩個方面匯總了一些問題與對策。

1.標(biāo)準(zhǔn)軟件包部分

如果使用打包和展開向?qū)?,則向?qū)⒆詣觿?chuàng)建Setup.lst文件。如果需要自定義該文件,則可以在該文件被創(chuàng)建后手工進行編輯。Setup.lst文件描述了應(yīng)用程序必須安裝到用戶機器上的所有文件,此外還包含了有關(guān)安裝過程的關(guān)鍵信息。例如,Setup.lst文件告訴系統(tǒng)每個文件的名稱、安裝位置以及應(yīng)如何進行注冊等。

Setup.lst文件共有五個段:

(1)?BootStrap段:列出了關(guān)于應(yīng)用程序的核心信息。例如,應(yīng)用程序的主安裝程序的名稱,在安裝過程中使用的臨時目錄,以及在安裝過程的起始窗口出現(xiàn)的文字。BootStrap段包含下述成員:

●?SetupTitle:當(dāng)Setup.exe將文件復(fù)制到系統(tǒng)時所出現(xiàn)的對話框中顯示的標(biāo)題。

●?SetupText:當(dāng)Setup.exe將文件復(fù)制到系統(tǒng)時所出現(xiàn)的對話框中顯示的文字。

●?CabFile:應(yīng)用程序的?.cab文件的名稱,如果軟件包有多個?.cab文件,則表示第一個?.cab文件的名稱。

●?Spawn:當(dāng)Setup.exe完成處理后要啟動的應(yīng)用程序名稱。在大多數(shù)實例中,這個名稱將是Setup1.exe文件。

●?TmpDir:存放在安裝過程中產(chǎn)生的臨時文件的位置。

●?Uninstall:用作卸載程序的應(yīng)用程序名稱。一般來說,該程序是st6unst.exe,這個文件是由向?qū)?chuàng)建所有的軟件包時自動打包加入的。

(2)?BootStrapFiles段:列出了主安裝文件所需的所有文件,通常這部分只包括VisualBasic運行時的文件。BootStrapFiles段列出了在加載應(yīng)用程序和從屬文件之前,必須載入用戶機器的所有文件。這些預(yù)安裝的(或稱為引導(dǎo))文件包括運行任何VisualBasic應(yīng)用程序所必需的核心文件,例如VisualBasic運行時的DLL(Msvbvm60.dll)文件,安裝程序在安裝和啟動主安裝程序之前將安裝這些文件。

(3)?Setup1Files段:列出應(yīng)用程序所需的所有其他文件,例如?.exe文件、數(shù)據(jù)、文本。

(4)?Setup段:Setup.lst文件的Setup段是一個簡單的列表,它列出了安裝過程的其他部分所使用的信息。下面列出了Setup段所包含的信息。

●?Title:將出現(xiàn)在安裝期間的快速顯示屏幕、“啟動”菜單的程序組以及程序項名稱上的應(yīng)用程序名稱?!?DefaultDir:缺省的安裝目錄。用戶可以在安裝過程中指定一個不同的目錄。

●?ForceUseDefDir:如果為空,則會提示用戶輸入一個安裝目錄。如果設(shè)為1,則應(yīng)用程序?qū)⒆詣影惭b到SETUP.LST的“DefaultDir”所指定的目錄中。

●?AppToUninstall:應(yīng)用程序在“控制面板”中的“添加/刪除程序”實用程序中出現(xiàn)的名稱。

●?AppExe:應(yīng)用程序的可執(zhí)行文件的名稱,例如Myapp.exe。

(5)?IconGroups段:包含了關(guān)于安裝過程所創(chuàng)建的“啟動”菜單的程序組的信息。每個要創(chuàng)建的程序組首先在IconGroups部分列出,然后指定一個單獨部分(Group0,Group1,Group2等),在此部分中包含關(guān)于這個程序組的圖標(biāo)和標(biāo)題的信息。程序組從0開始順序編號。

注意在安裝過程中要用到兩個安裝程序:一個是Setup.exe,這是一個預(yù)安裝程序;另一個是Setup1.exe,這是由安裝工具包編譯生成的。BootStrap部分將為Setup.exe文件提供指示。下面是用這個工具來創(chuàng)建一些額外安裝信息的例子。

1)創(chuàng)建“啟動”菜單的程序組

按照向?qū)?,選擇“下一步”按鈕,打開“啟動”菜單項。選中“programs”、“新建組”、輸入“啟動”、“新建”項,輸入想加入啟動項中的名稱如“啟動應(yīng)用程序”,按“下一步”按鈕直至“完成”按鈕。打開生成的Setup.lst文件,注意IconGroups段中的條目及其相關(guān)的字段:當(dāng)運行向?qū)鶆?chuàng)建的安裝程序時,該選項就會出現(xiàn)在“選擇程序組”,現(xiàn)在就可以把程序放在“啟動程序組”中了。

2)提供一個聯(lián)機幫助安裝選項

除了使用安裝工具包工程來創(chuàng)建自定義安裝工程外,還可以將安裝工具包工程與打包和展開向?qū)б黄鹗褂谩T谶@種情況下,可以使用安裝工具包工程來自定義安裝過程的屏幕或其它部分,然后使用向?qū)韯?chuàng)建和部署應(yīng)用程序的軟件包。例如,可以提供一個聯(lián)機幫助,而用戶可以不安裝它。可以按照需要添加任意的安裝選項,還可以將安裝工具包與打包和展開向?qū)б黄鹗褂茫瑸榘惭b工程添加新的對話框,以便提示用戶選擇是否安裝應(yīng)用程序的可選功能。

(1)在Setup1.vbp工程中,編輯Setup1.frm窗體中的Form_Load事件的代碼,在調(diào)用ShowBeginForm函數(shù)(SubShowBeginForm)的代碼塊之后添加如下代碼(該示例顯示了如何添加一個對話框,來詢問用戶是否要安裝可選文件):

(2)關(guān)閉Setup1.frm,保存該窗體以及安裝工具包工程,并編譯創(chuàng)建Setup1.exe文件。

(3)運行打包和展開向?qū)В闹髌聊恢羞x擇“打包”,根據(jù)向?qū)У母鱾€屏幕進行適當(dāng)?shù)倪x擇。對上面的示例,可以在“添加和刪除”屏幕列出的“自定義”對話框中確認(rèn)用戶可以選擇安裝的所有可選文件。在完成打包和展開向?qū)У乃胁僮骱?,將生成發(fā)布媒體。

(4)對Setup.lst文件進行必要的更改。在上面的示例中,可以在代碼CopySection所使用的部分中添加一個新的部分。在這種情況下,這個部分可能會像下面這樣:

(5)部署并測試軟件包。當(dāng)用戶運行本過程所示的安裝程序時,安裝程序?qū)⒉榭此械腂ootStrap文件。CalcDiskSpace語句將確定在用戶機器上是否有足夠的磁盤空間來存放幫助文件。然后該程序會安裝Setup.lst中的Setup1Files部分列出的所有文件。接下來,程序?qū)⒃贉y試一次LoadHelp標(biāo)記。如果用戶選擇安裝幫助文件,Setup1.exe就開始為幫助文件執(zhí)行CopySection語句,然后安裝Setup.lst的[Help]部分所列的文件。

2.Internet軟件包部分

Internet軟件包是基于?.cab的安裝程序,是專為從Web站點下載而設(shè)計的。InternetExplorer使用一個稱為“Internet部件下載”的過程來安裝Internet應(yīng)用程序。打包和展開向?qū)ё詣影ㄆ渌鶆?chuàng)建的軟件包所需的信息??梢允褂肰isualBasic的打包和展開向?qū)Э焖佥p松地將ActiveX部件打包以供Internet下載。打包和展開向?qū)О巡考虬梢粋€瀏覽器能識別的文件,并創(chuàng)建一個Web頁面,用戶可以從其中下載。然后,就可將打包的結(jié)果部署到用戶能存取的Web頁面上了。

向?qū)⒉考捌渌P(guān)聯(lián)的文件打包到一個壓縮(?.cab)文件中,供瀏覽器下載部件時使用。向?qū)Т_定運行工程需要哪些文件,然后收集這些文件,將它們壓縮為一個?.cab文件,并生成指向部件的HTML;向?qū)⒋蚝冒奈募渴鸬竭x擇的Web服務(wù)器上??梢员淮虬㊣nternet部署的主要類型包括:在Web頁上顯示的ActiveX控件(?.ocx文件),用于在客戶或Web服務(wù)器上運行的ActiveX.exe或?.dll文件,代替Web頁顯示的ActiveX文檔,DHTML應(yīng)用程序,基于客戶的、通過使用動態(tài)的HTML來鏈接HTML頁與VisualBasic代碼的應(yīng)用程序,IIS應(yīng)用程序,基于服務(wù)器的、鏈接HTML頁與webclass對象的應(yīng)用程序Internet軟件包的部分。

Internet軟件包包括的主要文件有:應(yīng)用程序的主要?.cab文件,所有必需的支持文件,應(yīng)用程序的任何輔助?.cab文件。

●主要?.cab文件包括工程部件,例如應(yīng)用程序的可執(zhí)行文件?.DLL、控件的?.ocx文件、一個引用輔助?.cab文件、包含安全性和注冊表信息的?.inf文件,以及不屬于輔助?.cab文件的所有必需的從屬文件;

●支持文件包括HTML文件、ActiveServerPages(?.asp)文件、各種格式的圖形文件或應(yīng)用程序運行時必須訪問的其它文件;●輔助.cab文件提供了一個有效的途徑,可以確保用戶使用的是該部件的最新版本。如果輔助.cab文件中部件的較新版本已經(jīng)可以從外部Web站點上獲得,則下載應(yīng)用程序的用戶將自動收到該部件的更新版本。

注意:如果不能或不愿意讓應(yīng)用程序的安裝程序與Internet連接,則可以將輔助.cab文件放置在Intranet的服務(wù)器上。Intranet服務(wù)器通常提供了更快的下載,并允許用戶從安全的網(wǎng)絡(luò)下載。在為供下載的Internet應(yīng)用程序或部件打包之后,就可以將其部署到Web服務(wù)器上的一個特定位置,用戶可以從該位置訪問這些應(yīng)用程序或部件。通常,軟件包被作為一個現(xiàn)存Web頁面的一部分來引用,也就是說,控件或其它部件宿駐在一個Web頁面上。當(dāng)用戶訪問宿駐軟件包的Web頁面時,系統(tǒng)將該軟件包下載到用戶的計算機上。該軟件包在確認(rèn)安全性、打開、注冊、安裝之后被激活。所有這些都發(fā)生在后臺,并由瀏覽器控制。在準(zhǔn)備好供下載的Internet應(yīng)用程序和部件后,必須將它們打包為一個可通過瀏覽器發(fā)布給用戶的文件。此外,還必須執(zhí)行一些安全性設(shè)置,以確保應(yīng)用程序不會損害用戶的計算機。這些步驟包括:對部件進行數(shù)字署名,以便用戶能驗證部件的內(nèi)容,并知道是該軟件的開發(fā)者;設(shè)置安全性級別來保證部件不會損害用戶的計算機或毀壞其數(shù)據(jù);為任何需要許可證的部件安排許可。當(dāng)添加一個ActiveX控件到Web頁面時,可以將其發(fā)布給從該頁面下載該控件的任何用戶。除非對該控件進行了許可,否則很難防止最終用戶取走控件并在其他的應(yīng)用程序中使用。許可證可以作為控件的一種版權(quán),來防止未經(jīng)授權(quán)的使用。

打包和展開向?qū)г跒镮nternet部件下載打包代碼時創(chuàng)建兩種類型的文件:發(fā)布文件和支持文件?!癜l(fā)布文件放在啟動向?qū)r指定的目錄中,該目錄一般包含.cab文件和任何與之相關(guān)聯(lián)的?.htm文件。注意:如果生成?.cab文件后對工程進行了修改,例如修改文件列表,以使其包括在下載中或?qū)Σ考M行數(shù)字簽名,則需要重新生成?.cab文件。

●向?qū)橹С治募?chuàng)建一個目錄并把.cab的輸入文件(?.inf)放入該目錄。此外,支持文件目錄還包括DiamondDirectives(?.ddf)文件及其他下載需要的文件。以下列出了向?qū)?chuàng)建的所有文件類型:

●?.cab文件是Windows安裝文件或包含?.ocx文件、?.inf文件和其他從屬文件的“壓縮包”文件??梢詫λM行數(shù)字簽名以防止被篡改。

●?.htm文件是用于顯示W(wǎng)eb頁面的HTML文件,該文件包含指向?.cab文件的鏈接并用于啟動下載過程。●?.ddf文件是DiamondDirectives文件,是用于創(chuàng)建.cab文件的工程文件。

●?.inf文件是代碼下載信息文件,該文件包含有關(guān)如何安裝控件的信息,并允許自定義。

●?.ocx文件是ActiveX控件,可以對它進行數(shù)字簽名以防止被篡改。

●?.dll文件是ActiveX文檔或代碼部件。以下為向?qū)ё詣觿?chuàng)建的?.htm文件:示例中的第二個OBJECT標(biāo)記包含了一個類標(biāo)識符5D970D42-D857-11D2-A0A1-

0080C8E2D955,版本號為1,0,0,91。所創(chuàng)建的每個ActiveX控件都有一個不同的類標(biāo)識符。此類標(biāo)識符用于創(chuàng)建HTML頁面上控件的實例,與將控件放置到VisualBasic窗體的過程類似。InternetExplorer使用類標(biāo)識符檢查注冊表來判斷控件是否存在,當(dāng)不存在或現(xiàn)有控件的版本比CODEBASE屬性中指定的舊時,InternetExplorer將下載并安裝指定的文件。

OBJECT標(biāo)記的重要部分包括:

(1)?CLASSID類標(biāo)識符,包含部件的類標(biāo)識符。

(2)?ID部件的名字,用于腳本中,與VisualBasic窗體中控件的Name屬性相同。

(3)?CODEBASE所需控件的最低版本號和安裝位置。

3.Internet軟件包部分的問題與對策

由于Internet軟件包中問題比較多,因此向?qū)е袆?chuàng)建的文件往往不能正常工作。下面就常見的幾個問題分析其原因及解決方法。

1)程序不能下載

問題表象:在一個Intranet上建立內(nèi)部查詢網(wǎng)頁,服務(wù)器操作系統(tǒng)為WindowsNT4.0,在客戶機上用VB6.0的中文企業(yè)版生成一個ActiveX用戶控件(*.ocx),文件存于服務(wù)器,在此客戶機上通過IE?4.0瀏覽器完全可運行此程序,然而在另一客戶機上則無法運行此控件,用IE?4.0瀏覽器瀏覽時,屏幕上一個進度條窗口很快一閃而過,然后瀏覽器窗口什么也不顯示。

問題解決:問題出在打包程序生成html文件上。用記事本打開html文件可以發(fā)現(xiàn),該文件使用FRAME調(diào)用html文件,這是不正確的。在本地用IE打開html文件時,IE把SRC所指的文件按文件方式讀入,IE可以識別html文件的結(jié)構(gòu)并正確運行??墒菑木W(wǎng)上下載html文件時,IE通過Server接收html文件的數(shù)據(jù)。而在正常情況下,F(xiàn)RAME語句中的SRC所指應(yīng)為一個HTML文檔。這里,ActiveX用戶控件是利用〈FRAMESRC="..."〉調(diào)用的,這在本機瀏覽時不會遇到問題。但InternetExplorer在從服務(wù)器調(diào)用HTML時,認(rèn)為凡是出現(xiàn)在〈FRAMESRC="..."〉中的都應(yīng)該是HTML文檔,如果無法識別該文件,就下載并保存該文件。屏幕上一個進度條窗口很快一閃而過就是IE在下載文件。若要解決這個問題,不要使用〈FRAMESRC="..."〉,而改用〈A〉〈/A〉鏈接方式,一般就不會有問題了。所以,只要修改html文件,用如下的方法調(diào)用就可以解決問題:

〈ahref=http://YourIpA/firstdoc.vbd〉test〈/a〉

把YourIpA改為地址并把html文件放入正確的目錄中。

例如,需要由Left.htm調(diào)用同一目錄下的“記帳單.htm”,可以使用如下方法。Left.htm內(nèi)容如下:

2)程序下載后卻不運行

問題表象:用VB生成一個簡單的ActiveX用戶控件(*.ocx),并設(shè)定編譯時版本自動加1,按照微軟的提示編譯成OCX文件,再用打包程序生成Internet下載程序,在本機上用IE瀏覽器瀏覽正常,其他機器用IE瀏覽時卻不能運行,查看C:\WINDOWS\Downloaded

ProgramFiles及C:\WINDOWS\TemporaryInternetFiles目錄,從版本號可知下載程序已下載。

問題解決:原因是ActiveX控件沒有被正確地安裝在客戶機上,還有一些所需要的文件并沒有下載到客戶機,此問題與VB運行所需要的鏈接庫有關(guān)。當(dāng)然,可以手工在客戶機上安裝這個控件,或者每一臺機器上都安裝一次VB,但太麻煩并且很難保證版本一致性。還是借助向?qū)硗瓿蛇@一工作較好。

在向?qū)е羞x擇“下一步”按鈕,繼續(xù)下去,直至“包含文件”項。

由于生成的ActiveX用戶控件(*.OCX)中使用了別的一些控件,因此在下載時會自動尋找相關(guān)的一些文件,如果找不到,則程序不會下載。所以,需要把相關(guān)的一些文件手工地添加進去。由于該ActiveX用戶控件(*.OCX)還引用了其他的一些相關(guān)文件(常見的有DLL、OCX、TLB等),如DATLSCHS.DLL、DBRPRCHS.DLL、FlashControls_Hefawu.ocx、MSADO20.TLB等,因此,也需要為這些文件生成一個CAB文件,當(dāng)該ActiveX用戶控件(*.OCX)用到時會自動查找并下載。

在“包含文件”項中把用到的相關(guān)文件選中,然后選擇“下一步”按鈕,來到“文件源”,將所用到的一些相關(guān)文件在指定的目錄中生成CAB文件。重要提示:發(fā)布的DLL、OCX、TLB等文件要與生成的CAB文件同名,并且每一個相關(guān)的文件都要生成自己的CAB文件。

例如,選中FlashControls_Hefawu.ocx,并選擇“從其他web站點下載”項,然后輸入指定的目錄位置http://server/vb6/及生成的CAB文件,文件名為FlashControls_Hefawu.CAB。。相應(yīng)地,DATLSCHS.DLL對應(yīng)為http://server/vb6/DATLSCHS.CAB;DBRPRCHS.DLL對應(yīng)為http://server/vb6/DBRPRCHS.CAB。另外有些特別的,如MSADO15.DLL對應(yīng)為http://server

/vb6/MSADO15.CAB;VB6RuntimeANDOLEAutomation對應(yīng)為http://server/vb6/Vb6RUN.CAB。當(dāng)然,自己要生成的ActiveX用戶控件(*.OCX)要選擇“包含在此壓縮文件中”選項最后,向?qū)蓚€文件:*.cab和*.htm,并且在http://server/vb6/目錄中生成許多壓縮包。*.cab文件包括了ActiveX控件,應(yīng)該把它放在服務(wù)器上。*.htm的核心是修改Object標(biāo)簽的Codebase屬性。這樣,用戶機的IE4.0在瀏覽時如果沒有在客戶機找到控件,就會利用Codebase屬性從服務(wù)器上下載*.cab文件,并自動解包、安裝并注冊ActiveX控件。打包和展開向?qū)軌驗樽约旱腣isualBasic應(yīng)用程序創(chuàng)建和發(fā)布專業(yè)的安裝程序。除了為應(yīng)用程序創(chuàng)建?.cab文件之外,該向?qū)н€通過編譯隨VisualBasic一起安裝的安裝工具包工程來為應(yīng)用程序創(chuàng)建安裝程序,使程序在不同的計算機環(huán)境下都能“安居樂業(yè)”,打包和展開向?qū)У拇_是程序員的好幫手。

4.其他問題與對策

下面介紹一些制作VisualBasic安裝程序時常遇到的問題及其解決方法。

問題1假如VB5.0開發(fā)的程序很簡單,只用到了ShellExecute()這個API以及CommandButton,這時能不能不做安裝盤,而在所有客戶機上(Windows95/98/NT/XP)都能正常使用程序?如不制作安裝程序,則與EXE放在一起的應(yīng)該包括哪些文件?解決方法:對于一個非常簡單的VB6.0程序,沒有使用額外的OCX控件,在Windows98/2000下是可以正常運行的,而不需要制作安裝盤。因為Windows98/2000/XP帶有VB?6.0程序所需要的DLL文件。但在Windows95/NT4.0下一般是不行的,因為缺少必要的文件。如果用戶的機器上安裝有IE,那么是可以不制作安裝盤的。在一般情況下,不制作安裝盤就不能保證程序的正確運行。制作的安裝盤所包括的DLL中,除了Vb5stkit.dll只是安裝時使用,安裝后就不需要了,其他DLL都是不可缺少的。雖然對于某些機器而言,由于安裝過其他軟件而可能不需要某個DLL,但要想在所有的機器上都正確運行,則一個文件都不能少。所以,為了避免由于缺少某個文件或注冊不正確而使程序無法運行,建議還是制作安裝盤比較保險。如果程序是放在網(wǎng)上供別人下載的,為了減少下載文件的大小,則可以這樣做:將程序單獨打成一個包,如果用戶已經(jīng)有了運行VB6.0程序所需要的有關(guān)文件,就只需下載程序,然后,在網(wǎng)頁上提供一個VB6.0的運行時間庫的鏈,如果用戶的機器上沒有這些文件,則讓它單獨下載運行庫。這是一種比較通行的方法。問題2若在一個程序中使用了其他的控件,則如何在沒有注冊該控件的機器上運行?是不是一定要制作安裝程序或注冊該控件?

解決方法:在Windows?95/98下,如果控件和EXE文件在同一個目錄中,或者控件文件放置在System目錄中,則EXE程序運行時會自動找到所需要的OCX文件并注冊。但是這種方法在WindowsNT下不適用,在Windows?NT下必須先注冊控件才能保證EXE程序的正常運行。另外,這種自動注冊有一些毛病,如果機器已經(jīng)存在一個低版本的控件,自動注冊可能會失敗。所以,如果希望自己的程序能夠非常好地工作,最好還是制作安裝程序,否則可能會有麻煩。問題3用VB6.0制作了一個程序,但在某個機器上安裝時,會出現(xiàn)以下錯誤:systemerror&H80004005(02147467259)未指定錯誤;“cannotfound‘c:\windows\temp\msftqws.pdw\

st6unst.exe’”無法開始系統(tǒng)安裝程序。

解決方法:這是由于VB?6.0的一個BUG導(dǎo)致的,可以升級到VB6SP3,在這個升級版本中修復(fù)了這個錯誤。問題4用VB6.0制作了一個程序,但在安裝該軟件時系統(tǒng)報告錯誤:

在C:WINDOWS\SYSTEM\expsrv.dll中未發(fā)現(xiàn)DllRegisterServer()的\WINDOWS\SYSTEM

\expsrv.dll“輸入點

***在本操作期間:DllSelfRegister:”C:

***錯誤:注冊文件‘C:\WINDOWS\SYSTEM\expsrv.dll’時出錯

***錯誤:(用戶響應(yīng)‘忽略’)

忽略錯誤后安裝完成。在Windows98下安裝也有同樣的問題。解決方法:DLL有兩種,一種是標(biāo)準(zhǔn)DLL,另一種是ActiveXDLL。前者拷貝到用戶機器上就可以工作了,而后者還需要調(diào)用DLL中的DllRegisterServer或者使用RegSvr32進行注冊才能使用。打開VB98\Wizards\PDWizard\VB6dep.ini文件,下面是這個文件的片斷:從上面的文件中可以看到,MSRD2x35.dll比ExpSrv.dll多一行Register=$(DLLSelfRegister),這是因為MSRD2x35.dll是ActiveXDLL,ExpSrv.dll是普通的DLL,沒有DllRegisterServer,也用不著注冊。所遇到的問題是VB6.0的一個BUG(在VB6?SP3中已經(jīng)修復(fù))。如果VB6dep.ini文件的ExpSrv.dll多了Register一行,則應(yīng)該刪除;或者打開安裝程序的Setup.lst,刪除ExpSrv.dll一行中的“$(DLLSelfRegister)”字樣。問題5用VB+Access開發(fā)數(shù)據(jù)庫系統(tǒng),發(fā)布時用VB自己的發(fā)布向?qū)?,程序目錄中子目錄的文件卻加入不正常,向?qū)Р话醋幽夸泤^(qū)分,都加入程序目錄中。怎么辦?

解決方法:VB的安裝向?qū)侵С职ㄗ幽夸浀陌惭b程序的。運行安裝向?qū)У健拔募〗Y(jié)”一步,在對話框中選擇“添加”按鈕,然后選擇應(yīng)該放置在子目錄中的文件,將其添加到文件列表中。然后從文件列表中選擇該文件,點擊“文件詳細資料”按鈕。在對話框中設(shè)置的目標(biāo)路徑,最好不要用絕對路徑(如C:\MyProject)來指定安裝位置,這樣會給用戶帶來不便。安裝向?qū)褂煤陙碇甘疚募惭b的位置,這些宏只在安裝程序中有效。宏的含義參見表9-1。如果要將文件放置在應(yīng)用程序目錄下的\Data子目錄下,可以使用$(AppPath)\Data來指定安裝路徑。表9-1安裝向?qū)褂玫暮昙捌浜x問題6安裝時,用VB自己的“打包與展開向?qū)А敝谱靼惭b盤,不知道怎么使程序在桌面上放置一個快捷方式?

解決方法:VB“打包和展開向?qū)А彼傻陌惭b程序的工作步驟是這樣的:先運行Setup.exe,這個程序?qū)B的運行庫安裝到用戶的機器上,同時將?.cab文件中的文件釋放到臨時目錄中,然后調(diào)用臨時目錄中Setup1.exe,完成余下的安裝工作。Setup1.exe是用VB編寫的(正是這個原因,所以要先安裝VB的運行庫),其源程序可以在VB98\Wizards\

PDWizard\Setup1中找到。如果對VB的安裝程序不滿意,希望添加新功能,則可以直接修改Setup1.vbp。具體到問題,在VB中可以打開Setup1.vbp,然后修改Setup1.frm的Form_Load事件,在其中可以找到如下幾行:在If..EndIf中加上:重新編譯Setup1.vbp,用Setup1.exe替換原來的Setup1.exe即可。問題7用VB6.0的安裝向?qū)е谱鞯某绦虬惭b包里,總有一個?.dep文件,這個文件有什么用?是否與OCX注冊有關(guān)?如何打開?如何編輯?解決方法:只有在為ActiveX控件制作安裝包的時候,才會出現(xiàn)?.dep文件。這個文件主要是供使用ActiveX控件的程序設(shè)計者制作自己的程序的安裝盤時使用的。用戶在使用SetupWizard制作安裝盤時,SetupWizard會讀取這個文件,檢查ActiveX控件需要哪些DLL支持。一般不用手工修改這個文件,如果認(rèn)為確有必要,可以使用記事本打開修改。

問題8在制作安裝文件后,安裝過程中系統(tǒng)缺省的目錄是C:\programfiles\tele,而需要的是C:\tele2000,有辦法修改嗎?解決方法:要修改安裝程序的缺省目錄,可以打開安裝盤的setup.lst文件。在這個文件中可以找到下面一行:將這行中的“$(ProgramFiles)\tele”修改為想要的目錄(如C:\tele2000)即可。9.1.4用VB開發(fā)與機器環(huán)境無關(guān)的程序

軟件的開發(fā)必須保證與機器環(huán)境的無關(guān)性,這是一個在開發(fā)和調(diào)試過程中都必須注意的問題。下面介紹與機器環(huán)境無關(guān)的應(yīng)用程序開發(fā)與測試的方法。

利用VisualBasic開發(fā)應(yīng)用程序時,常常會遇到這樣的問題:生成的可執(zhí)行文件在開發(fā)的機器上能夠運行,復(fù)制到另一臺機器上則無法運行,這種現(xiàn)象稱之為應(yīng)用程序與機器環(huán)境相關(guān)。造成這種現(xiàn)象主要有兩個方面的原因:一是程序在運行過程中調(diào)用了一些文件,如數(shù)據(jù)庫文件、文本文件和圖片文件等,由于路徑使用不當(dāng)而無法定位;二是VisualBasic編譯成的?.EXE文件并不是實際意義上的EXE文件,VisualBasic系統(tǒng)中的標(biāo)準(zhǔn)控件和開發(fā)過程中用到的第三方控件都沒有包含在內(nèi)。

因此,要解決用VB開發(fā)的應(yīng)用程序與機器環(huán)境的相關(guān)性,必須從兩個方面入手:一是保證應(yīng)用程序能調(diào)用到所用文件,二是應(yīng)用程序發(fā)布時同時發(fā)布所有用到的控件和DLL

文件。

1.開發(fā)與路徑無關(guān)的應(yīng)用程序

無論應(yīng)用程序開發(fā)得多么好,是否成功還取決于其能否在任何機器的任何目錄下都能運行。這就要求應(yīng)用程序要自成一體,不但要包含所有用到的文件,而且還應(yīng)與路徑無關(guān)。可用兩種方法實現(xiàn)應(yīng)用程序與路徑無關(guān):一是利用VB.APP對象的PATH屬性;二是把調(diào)用文件放在光盤上,直接調(diào)用。

1)利用VB.APP.PATH實現(xiàn)與路徑無關(guān)

該方法的主要思路是在調(diào)用文件時利用相對路徑。由于VB中不支持與DOS類似的相對路徑,如調(diào)用當(dāng)前目錄下的“hh1.bmp”文件,寫成“hh1.bmp”和“.\hh1.bmp”時將會出錯。為解決該問題,VB提供了一個VB.APP對象,該對象有個名為PATH的屬性,它記下了執(zhí)行文件所在的路徑,可在運行時訪問。用該方法創(chuàng)建與路徑無關(guān)應(yīng)用程序的要點如下:

(1)為應(yīng)用程序(項目)創(chuàng)建一個目錄,用以存放建立的窗體或其它文件。

(2)把應(yīng)用程序所調(diào)用的文件放在該目錄下或者放在該目錄的子目錄下。子目錄最好按照引用文件的類型進行建立,如存放圖片的子目錄名為PIC,存放表的子目錄為DBF等。

(3)除包含在可執(zhí)行文件中的文件(如在設(shè)計時圖片框加載的圖片)外的其它文件,調(diào)用一律采用相對路徑,而禁用絕對路徑。這樣,在復(fù)制應(yīng)用程序的時候,只要把應(yīng)用程序目錄下的所有文件(包括子目錄)復(fù)制到任意目錄下,應(yīng)用程序都不會發(fā)生因找不到文件而產(chǎn)生的錯誤。

以下是一個程序?qū)嵗搶嵗@示一系列的角度逐漸變化的地球圖片,從而形成地球轉(zhuǎn)動動畫。用VB設(shè)計一個窗體,窗體上放置一個圖片框,名為Image1(Strech=.T.),給窗體加一個定時器控件,控件名為Timer1(Interval=25,enabled=.t.)。該項目存放在A:\exam下,圖片文件存放在A:\EXAM1\PIC下面。使用絕對路徑,程序代碼如下:該程序使用絕對路徑調(diào)用外部文件(earth0.jpg-earth7.jpg),當(dāng)把EXAM目錄的全部內(nèi)容拷貝到其他機器上并抽出軟盤后,運行程序?qū)l(fā)生找不到文件的錯誤。若采用VB.APP.PATH屬性,把形成圖片文件名的語句改寫如下:這樣,無論把EXAM目錄完全復(fù)制到任何機器,程序均能運行。

2)從光盤調(diào)用文件實現(xiàn)與路徑無關(guān)

把應(yīng)用程序要調(diào)用的文件放在光盤指定目錄下,應(yīng)用程序發(fā)行時和該光盤的拷貝一同發(fā)行。程序運行時,直接從光盤指定目錄調(diào)用文件,故不會發(fā)生因找不到文件而出現(xiàn)的錯誤。由于不同機器上的光盤盤符不同,因此在開發(fā)時不能直接引用光盤的盤符,應(yīng)用程序必須先取得光盤盤符,然后再生成需要調(diào)用文件的完整文件名。可以使用API函數(shù)來取得光驅(qū)盤符,也可以通過以下程序段來檢測光驅(qū)盤符:以上程序段放在需要檢測光驅(qū)的地方,通常放在Form.load事件中,光驅(qū)盤符存放在Drive變量中。檢測到光驅(qū)后,可直接調(diào)用光盤上的文件。如上例中,若PIC目錄下的圖片文件存放在光盤上,則形成文件名的語句可以用以下語句代替:這樣,就實現(xiàn)了從光盤調(diào)用文件與路徑無關(guān)了。

2.包裝應(yīng)用程序?qū)崿F(xiàn)與系統(tǒng)無關(guān)

解決了與文件路徑相關(guān)的問題后,生成的可執(zhí)行文件在其它沒有安裝VisualBasic的機器中依然無法執(zhí)行。原因之一是VisualBasic具有21個標(biāo)準(zhǔn)控件,這些控件都保存在動態(tài)鏈接庫中(擴展名為?.DLL),而VisualBasic的可執(zhí)行程序中并沒有包含;原因之二是開發(fā)的應(yīng)用程序可能包含了第三方控件,VisualBasic的可執(zhí)行程序中也不包含它們。因此,在其它機器上執(zhí)行VB開發(fā)的應(yīng)用程序時,必須使該機器包含程序中所有用到的動態(tài)鏈接庫和控件文件(OCX或VBX文件),并需要把它們在Windows中加以注冊。為了減少拷貝和注冊DLL、OCX和VBX給用戶帶來的麻煩,VB自帶了一個包裝程序,利用它給應(yīng)用程序打包,生成安裝盤。包中可以包含應(yīng)用程序相關(guān)文件、DLL文件、OCX文件、VBX文件等。要把程序包安裝到某臺機器上時,只需在該機器上執(zhí)行Setup程序即可,由Setup程序自動完成相應(yīng)的DLL、OCX和VBX文件的拷貝和注冊。

3.應(yīng)用程序與機器環(huán)境無關(guān)性測試方法

要保證程序的機器環(huán)境的無關(guān)性,必須進行嚴(yán)格測試。但由于在開發(fā)機器上所有調(diào)用的文件都實際存在,DLL、OCX和VBX等文件存在并且已經(jīng)注冊,因此無法進行程序的機器環(huán)境無關(guān)性測試。測試只能在其它機器上進行,可以分成以下幾步:

(1)另找一臺只安裝了Windows系統(tǒng)而沒有安裝任何其它軟件的機器,且只有Windows系統(tǒng)子目錄。

(2)在該機器上解包并執(zhí)行程序。

(3)若執(zhí)行無誤,則進入下一步,否則該軟件需根據(jù)提示進行修改。該步驟保證了調(diào)用DLL、OCX和VBX的正確性,但并不能保證與路徑無關(guān)。

(4)改變應(yīng)用程序的安裝目錄,再進一步驗證路徑無關(guān)性。若無誤,進入下一步,否則該軟件需根據(jù)提示進行修改。該步驟保證了軟件自帶文件的調(diào)用正確性。

(5)另找一臺只安裝了Windows系統(tǒng)的機器,Windows系統(tǒng)子目錄與前臺機器不一樣,然后重復(fù)以上步驟。若無誤,則說明該軟件已經(jīng)達到了機器環(huán)境無關(guān)性的要求;否則,該軟件需根據(jù)提示進行修改。該步驟保證軟件絕對沒有調(diào)用任何自帶的外部文件。

應(yīng)用程序的系統(tǒng)無關(guān)性是軟件成敗的一個重要因素,是程序設(shè)計中需要詳細規(guī)劃的一個重要方面,同時也是程序調(diào)試的一個重點內(nèi)容。對本文討論的方法稍加修改,亦可適用于其它開發(fā)工具。9.2.1Authorware一鍵發(fā)行設(shè)定

為了說明問題,首先打開一個文件,選擇菜單命令File/Publish,其中包含了一個子菜單,如圖9-18所示。這個子菜單是一些與作品發(fā)布和打包相關(guān)的命令。

PublishSettings:對作品的發(fā)布參數(shù)進行設(shè)置。

Publish:按照設(shè)置情況將作品發(fā)布。

BatchPublish:對多個文件成批發(fā)布。

Package:對作品打包。

WebPackager:將作品進行網(wǎng)絡(luò)環(huán)境下的打包。

下面簡單介紹PublishSettings設(shè)置情況。9.2Authorware多媒體作品的發(fā)布圖9-18

Publish子菜單

1.Formats頁框

選擇PublishSettings命令,會出現(xiàn)如圖9-19所示的對話窗口,除窗口最上方顯示的是當(dāng)前文件的路徑及名稱外,還包含了多個設(shè)置頁框,可以滿足多種發(fā)布和打包方式的要求。圖9-19OneButtonPublishing對話窗口

Formats頁框顯示的是作品將要發(fā)布的類型、發(fā)布文件存放的位置、文件名等信息。

(1)?PublishForCD,LAN,LocalHDD:說明發(fā)布設(shè)置是應(yīng)用于CD、LAN或本地硬盤。

●?PackageAs:知識打包文件存放的位置。

●?WithRuntimeforWindows9xandNTvariants:選擇此選項,打包后的文件是一個可以獨立在Windows環(huán)境下運行的可執(zhí)行程序(EXE);不選擇此選項,則打包后的文件必須在有“Runa6w32.exe”文件的情況下才能夠運行,這時打包文件是以“.a6r”為后綴的文件。

●?CopySupportingFiles:尋找打包文件運行所需要的文件,并將它們復(fù)制到打包文件所在的文件夾中。

(2)?PublishForWeb:說明下面的設(shè)置是應(yīng)用于網(wǎng)絡(luò)環(huán)境的。

●?ForWebPlayer:生成AuthorwareWebPlayer需要的作品片斷。除第1個片斷的文件后綴為“.aam”外,其余片斷的文件后綴都是“.aas”。

●?WebPage:生成使用瀏覽器觀看需要的網(wǎng)頁“.htm”。

2.Package頁框

Package頁框的內(nèi)容如圖9-20所示,是幾個打包選項。

●?PackageAllLibrariesInternally:使Authorware將所有與程序鏈接的庫文件打包成EXE文件的一部分。

●?PackageExternalMediaInternally:使Authorware將所有外部的媒體打包成作品的一部分,但不能包括數(shù)字電影。圖9-20

Package頁框的內(nèi)容●?ReferencedIconsOnly:僅將程序中用到的庫圖標(biāo)打包。

●?ResolveBrokenLinksatRuntime:當(dāng)編寫Authorware程序時,每放一個新圖標(biāo)在流程線上,系統(tǒng)會自動記錄圖標(biāo)的所有數(shù)據(jù),并且Authorware內(nèi)部以鏈接方式將數(shù)據(jù)串聯(lián)起來。一旦程序作了修改操作,Authorware里的鏈接會重新調(diào)整,某些數(shù)據(jù)鏈會形成斷鏈。為了不讓程序運行過程中出現(xiàn)問題,最好選擇此項,讓Authorware自動處理斷鏈。

3.ForWebPlayer頁框

ForWebPlayer頁框主要包括網(wǎng)絡(luò)片斷文件的大小、名稱、安全性以及是否使用智能流技術(shù)等選項的設(shè)置,如圖9-21所示,一般采用缺省值即可。圖9-21

ForWebPlayer頁框

4.WebPage頁框

WebPage頁框主要包括網(wǎng)頁的模板、大小、外觀和播放控制等參數(shù),如圖9-22所示,一般不需要修改它。

5.Files頁框

Files頁框自動列出了需要發(fā)布的文件、發(fā)布的目標(biāo)位置等信息,如圖9-23所示,包括設(shè)計的程序、Xtras文件、用戶定義文件(U32)、動態(tài)鏈接庫文件(DLL)、外部文件等。通過其中的幾個按鈕還可以增加、刪除文件,查找額外需要的文件等。這是一個非常重要的頁框,在每次作品發(fā)布時,大家都應(yīng)仔細審查一下這里是否包括了自己作品所需要的全部文件。圖9-22WebPage頁框圖9-23Files頁框在Commands菜單下有一個FindXtras選項,當(dāng)并不想發(fā)布作品,而只是想了解程序中使用了哪些Xtras文件時,就可以利用它來查找。在完成了PublishSettings選項中的參數(shù)設(shè)置后,還應(yīng)當(dāng)對對話窗口右側(cè)的幾個按鈕進行說明:9.2.2作品的發(fā)布和打包

1.Publish作品發(fā)布上一節(jié)介紹了PublishSettings的設(shè)置情況,Publish命令就如同使用PublishSettings命令下OneButtonPublishing對話窗口(圖9-24)中的按鈕一樣,是按照設(shè)置好的參數(shù)將作品發(fā)布的。

2.BatchPubl

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論