狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

用InstallShield制作商品化軟件安裝程序

admin
2010年12月2日 12:19 本文熱度 3646

  結(jié)合對(duì)作者利用VC++6.0開(kāi)發(fā)的工控軟件包制作安裝程序的實(shí)例,介紹了如                                何用InstallShield來(lái)制作標(biāo)準(zhǔn)的Windows安裝程序,重點(diǎn)敘述了如何編制程序組(項(xiàng))、  分類安裝(典型、完全和自定義安裝)、卸載、注冊(cè)控件和界面漢化等方面的內(nèi)容。


關(guān)鍵詞:InstallShield安裝程序;包裝;媒體;卸載;控件注冊(cè) 


 


一 、引言


     軟件既是一項(xiàng)工程又是一種產(chǎn)品,稱其為工程是因?yàn)樗前凑展こ痰姆椒ㄟM(jìn)行設(shè)計(jì)、實(shí)施,也就是所謂的軟件工程,作為一項(xiàng)完整的工程項(xiàng)目就必須把最終產(chǎn)品完整有效地交付給用戶;說(shuō)它是一種產(chǎn)品,它符合產(chǎn)品的一系列特性,當(dāng)然最重要的就是產(chǎn)品的包裝,在當(dāng)今充滿競(jìng)爭(zhēng)的時(shí)代里,在提高軟件質(zhì)量的基礎(chǔ)上給產(chǎn)品一個(gè)好的“外殼”,已經(jīng)成為軟件業(yè)的一大需求。


軟件安裝由DOS時(shí)代通過(guò)批處理文件實(shí)現(xiàn)直到UCDOS圖形安裝界面的出現(xiàn),才有一些新意;再到易學(xué)易用的圖形用戶界面、多任務(wù)功能的WINDOWS系統(tǒng)的出現(xiàn),安裝一個(gè)軟件或應(yīng)用程序已不再僅僅是將相關(guān)的文件復(fù)制到硬盤中,而是必須允許用戶按自己的愿望選擇安裝類型和安裝路徑,并且在不需要的時(shí)候,還要能夠?qū)惭b的相關(guān)內(nèi)容全部刪除掉,而且還要保證其完整性和有效性,Installshield就能夠滿足這樣的要求。針對(duì)作者開(kāi)發(fā)的用于化工行業(yè)間歇聚合反應(yīng)過(guò)程先進(jìn)控制的軟件包――化工間歇聚合反應(yīng)過(guò)程的辨識(shí)與控制軟件的商品化問(wèn)題,作者應(yīng)用Installshield制作了Windows環(huán)境下的標(biāo)準(zhǔn)安裝程序,經(jīng)過(guò)反復(fù)調(diào)試和檢驗(yàn)達(dá)到了預(yù)期的目標(biāo),安裝及卸載都十分方便。


二、用InstallShield制作安裝程序的步驟


1.建立工程文件


打開(kāi)InstallShield 相關(guān)應(yīng)用程序,雙擊“Project Wizard”,按照向?qū)崾据斎牍こ痰南嚓P(guān)信息。當(dāng)然這里輸入的是給相關(guān)變量賦值,在編譯之前可以對(duì)其進(jìn)行修改,打開(kāi)資源Resources,對(duì)其相關(guān)屬性的變量進(jìn)行重新賦值即可;另外,還需對(duì)菜單項(xiàng)Project”中的產(chǎn)品名稱進(jìn)行更改。


2.文件組配置


打開(kāi)文件組File Groups工作區(qū),展開(kāi)樹(shù),給相應(yīng)的文件組鏈接對(duì)應(yīng)文件,對(duì)應(yīng)文件會(huì)顯示在相應(yīng)的區(qū)域。單擊相應(yīng)文件組,對(duì)其其屬性進(jìn)行設(shè)置,重要的有:[Shared]指定當(dāng)前文件組中的文件是否為共享文件,即該文件是否被多個(gè)應(yīng)用程序共同使用,若設(shè)為共享文件InstallShield在應(yīng)用程序安裝過(guò)程中會(huì)自動(dòng)處理這些文件的注冊(cè);[Self Registered]設(shè)置當(dāng)前文件組中的文件是否自注冊(cè),這個(gè)功能能夠?qū)⑾嚓P(guān)文件在安裝過(guò)程中進(jìn)行注冊(cè),卸載時(shí)也會(huì)自動(dòng)將這些注冊(cè)信息刪除;[Compressed]指定當(dāng)前文件組中的文件在建立媒體庫(kù)時(shí)是否被壓縮,這里的設(shè)置在安裝媒體向?qū)У拇疟P類型中不選擇[Data as files]復(fù)選框是有效的,否則不管如何設(shè)置應(yīng)用程序即不存儲(chǔ)在電纜文件中也不被壓縮;[Overwrite]指定當(dāng)前文件組中文件覆蓋終端用戶計(jì)算機(jī)系統(tǒng)中已存在同名文件的條件;[Destination]指定當(dāng)前文件組在安裝過(guò)程中被傳輸?shù)哪繕?biāo)位置。


3.組件設(shè)置


打開(kāi)組件“Components”工作區(qū),可以新建組件,組件的重要屬性有:“Status Text是標(biāo)志在復(fù)制對(duì)話的進(jìn)度條上看到的文本;“Display Name”是給定當(dāng)前組件顯示給終端用戶的文本;“File Need”是指定組件的級(jí)別,【Critical對(duì)于安裝程序不允許終端用戶不選擇該組件,【Recommended】是建議終端用戶應(yīng)該選擇安裝該組件,【Standard】如果終端用戶沒(méi)有選擇該組件,不會(huì)顯示任何信息;“Include in Build”是表示是否將該組件包含到發(fā)行媒體中,暫時(shí)將本特征不包含到發(fā)行媒體給這個(gè)組件留下位置,以便以后升級(jí)。“Required Components”是將此組件必需的其它組件鏈接在一起;“Included File Groups”可以為當(dāng)前組件增加和刪除與之相關(guān)的文件組;其它屬性默認(rèn)即可。


4.Setup.rul底稿文件中添加代碼


充分利用InstallShield資源可以省去不少代碼編寫(xiě),特別是InstallShield提供的一些內(nèi)部函數(shù),可以實(shí)現(xiàn)豐富的功能,需要特別注意的是大小寫(xiě)是嚴(yán)格區(qū)分的。


5.編譯工程


從【Build】菜單中選擇【Compile】選項(xiàng)對(duì)腳本進(jìn)行編譯;編譯通過(guò)后選擇【File】菜單中的【Save】選項(xiàng)進(jìn)行腳本修改的保存。


6.定制MEDIA(安裝媒體) 


從【Build】菜單中選擇【Media Wizard】選項(xiàng)啟動(dòng)媒體制作向?qū)В凑仗崾疽徊揭徊竭M(jìn)行,最后出現(xiàn)所設(shè)置的總信息,不妥后退進(jìn)行修改,最后確認(rèn)后按【完成】后定制媒體。


7.測(cè)試


文件安裝媒體制作完成之后,就可以進(jìn)行測(cè)試,從【Build】菜單中選擇【Run Setup】運(yùn)行,安裝完成后可以通過(guò)【開(kāi)始】菜單的【程序】中的快捷方式運(yùn)行安裝的應(yīng)用程序。最后運(yùn)行卸載程序?qū)?yīng)用程序從系統(tǒng)中刪除。


三、安裝程序初始化


在函數(shù)OnFirstUIBefore()中輸入如下腳本代碼進(jìn)行初始化程序。


1.安裝背景設(shè)置


SetFont(FONT_TITLE,STYLE_BOLD|STYLE_SHADOW, "Arial");//設(shè)置字體


    SetTitle(@TITLE_CAPTIONBAR,0, BACKGROUNDCAPTION );//設(shè)置標(biāo)題


SetTitle( @TITLE_MAIN, 24, WHITE );  //設(shè)置對(duì)話框主題字體和顏色                       


    Enable( FULLWINDOWMODE );               //允許全屏顯示


    Enable( BACKGROUND );                  //允許背景設(shè)置有效


SetColor(BACKGROUND,RGB (0, 128, 128)); //設(shè)置背景顏色


2.加載圖片


在任何時(shí)候都可以加載圖片以裝飾安裝程序,方法如下:


    svPicName = SUPPORTDIR ^ "pic6.bmp";  //定義圖片路徑


DialogSetInfo(DLG_INFO_ALTIMAGE,svPicName,TRUE);//在對(duì)話框中顯示


svPicName = SUPPORTDIR ^ "pic2.bmp";


PlaceBitmap(svPicName,13,0,0,FULLSCREENSIZE);//全屏顯示圖片作為背景


在加載下一幅圖片的時(shí)候要先移去上一幅已加載的圖片,方法如下:


PlaceBitmap ("",13,0,0,REMOVE);


3.系統(tǒng)變量的設(shè)置


nSetupType = TYPICAL;              //預(yù)設(shè)默認(rèn)安裝類型


TARGETDIR  = "D:\\"^@PRODUCT_NAME; //設(shè)置默認(rèn)安裝路徑


svName     = "Name";              //用戶默認(rèn)名


svCompany  = "Company";           //公司默認(rèn)名


svSerial   = "123-EDC-532-386";    //序列號(hào)


四、定制程序組項(xiàng)


function SetupFolders()


NUMBER nResult,nIcon, nFlag;


STRING szProgramFolder,szItemName,szCommandLine,szWorkingDir,szIconPath;


STRING szShortCutKey, szProgram, szParam,svTmp;


begin


 szProgramFolder = @PRODUCT_NAME;


 if (CreateProgramFolder(szProgramFolder) < 0) then


    return -1;


 endif;


 //設(shè)置快捷方式的工作環(huán)境


 nIcon           = 0;


 szShortCutKey   = "";


 nFlag           = REPLACE;


 szWorkingDir    = TARGETDIR;


 szIconPath      = TARGETDIR+"\\"+@PRODUCT_KEY;  //圖標(biāo)選擇


 szItemName      = @PRODUCT_NAME;


 szProgram       = szIconPath;


 LongPathToQuote(szProgram, TRUE);


 szCommandLine   = szProgram;


 if(AddFolderIcon(szProgramFolder,szItemName,szCommandLine,szWorkingDir,


szIconPath,nIcon,szShortCutKey,nFlag)< 0) then


    return -1; //在開(kāi)始菜單的程序組中增加啟動(dòng)該應(yīng)用程序的快捷方式


 endif; 


 if(AddFolderIcon(FOLDER_DESKTOP, szItemName, szCommandLine,


szWorkingDir,szIconPath,nIcon,szShortCutKey, nFlag) < 0)then


    return -1; //在桌面上增加啟動(dòng)該應(yīng)用程序的快捷方式


 endif;


//卸載的設(shè)置


 szWorkingDir    = WINDIR;


szIconPath      = SUPPORTDIR+"\\IsUninst.exe";


 szItemName      = "卸載"+@PRODUCT_NAME;


svTmp=PROGRAMFILES+"InstallShieldInstallationInformation\\"+PRODUCT_GUID+"\\setup.exe";


LongPathToQuote(svTmp, TRUE);


 szParam       =  svTmp;


 LongPathToShortPath(szParam);


svTmp=COMMONFILES+"InstallShield\\engine\\6\\Intel32\\ctor.dll";


 LongPathToShortPath(svTmp);


 szProgram     = "RunDll32"+" "+ svTmp+",LaunchSetup";


 szCommandLine =  szProgram + " " + szParam; 


 if(AddFolderIcon(szProgramFolder,szItemName,szCommandLine,szWorkingDir,


szIconPath, nIcon,szShortCutKey,nFlag)< 0) then // 在開(kāi)始菜單中設(shè)置卸載快捷//方式


    return -1;


 endif;


end;


五、對(duì)象嵌入技術(shù)


    使用InstallShield對(duì)象,我們可以很方便地安裝關(guān)鍵的Windows技術(shù)包括ODBC、AccessADO、DAO、RDO、OLE DB、DirectX以及其它技術(shù),只要按照InstallShield嵌入對(duì)象向?qū)Р僮骷纯?/SPAN>,這里以嵌入ODBC為例子詳細(xì)說(shuō)明


首先利用 Windows控制面板中的ODBC數(shù)據(jù)源建立數(shù)據(jù)配置文件,需要與所建的數(shù)據(jù)庫(kù)文件聯(lián)系起來(lái),這里是DOT.MDB文件,數(shù)據(jù)源名設(shè)置為DOT,退出后可以看到剛才建立的數(shù)據(jù)源。在Components工作區(qū)右擊相應(yīng)的組件,從彈出菜單中選擇【Insert InstallShield Object,打開(kāi)對(duì)象瀏覽樹(shù),選中“NEW ODBC 3.51”,單擊【Add Object】按鈕將會(huì)把該對(duì)象加入到Resources工作區(qū)中的InstallShield Objects文件夾中以及剛才的組件中,然后就會(huì)有向?qū)?dòng)(嵌入其它對(duì)象時(shí),沒(méi)有向?qū)дf(shuō)明已經(jīng)完成,關(guān)閉對(duì)象瀏覽器即可),按照向?qū)崾就瓿蒓DBC對(duì)象嵌入,在安裝過(guò)程中會(huì)自行注冊(cè)。大多數(shù)對(duì)象都是直接嵌入即可。


六、控件注冊(cè)


方法一:用戶手工注冊(cè),利用VC++自帶的DOS命令REGSVR32.EXE(在\bin目錄下)或者直接用下列方法:點(diǎn)擊“開(kāi)始”→“運(yùn)行”;輸入以下命令進(jìn)行注冊(cè):


        regsvr32  < 文 件 名 >       注冊(cè)一個(gè)控件


        regsvr32 /u< >      解除某控件的注冊(cè)


方法二利用InstallShield的自注冊(cè)功能在文件組里新建一個(gè)文件組這里取名為BatchAPC 環(huán)境變量”,然后在這個(gè)新建文件組里鏈接需要注冊(cè)的文件,這里是兩個(gè)ActiveX控件MSCHRT20.OCXMSCOMM32.OCX將屬性中的SelfRegistered設(shè)置為Yes,一般默認(rèn)為No”,這樣就不需要編寫(xiě)代碼來(lái)進(jìn)行注冊(cè)了。


七、界面漢化


一般用InstallShield作出來(lái)的安裝程序是英文安裝界面,這里我們使用的是InstallShield Profession standard 6.22版本,《InstallShield 6.X/VB/VC/Delphi安裝程序設(shè)計(jì)與制作》這本書(shū)所帶的光盤上有漢化工具若沒(méi)有,可以手工漢化,方法如下


首先找到用InstallShield 5.X制作的漢化版安裝程序,執(zhí)行,在安裝出現(xiàn)歡迎對(duì)話框的時(shí)候最小化,安裝程序會(huì)在“C:\Windows\Temp\_istmp0.dir\”目錄下生成一個(gè).dll文件,將其拷貝到其它地方,然后改名為_isres.dll,再將恢復(fù)后的_isres.dll拷貝到InstallShield安裝目錄“\Redistributable\CompressedFiles \0009-English \Intel 32”下;再將Setup.exe中文版拷貝到“\Redistributable\UncompressedFiles\Language Indepedent\Intel 32\”目錄下;最后將Setup.dll中文版拷貝到“\Redistributable \UncompressedFiles\LanguageIndepedent\OSIndepedent\”目錄下即可。一般情況下要是不能正常運(yùn)行,恢復(fù)英文版的Setup.exe,然后在Win2000下用VC++ 6.0對(duì)其按資源編輯。漢化的實(shí)質(zhì)就是將這三個(gè)文件改為中文版,另兩個(gè)文件也可以用VC++6.0 編輯漢化。


注意:在漢化之前務(wù)必將英文版的_IsRes.dllSetup.dllSetup.exe三個(gè)文件備份。


八、結(jié)束語(yǔ)


綜上所述,通過(guò)上面的介紹可以制作出標(biāo)準(zhǔn)的安裝程序,當(dāng)然,InstallShield的功能不僅僅是這些,界面的友好性和多媒體技術(shù)的應(yīng)用已經(jīng)成為完善安裝程序的方向,軟件的包裝現(xiàn)在已經(jīng)受到重視,特別是商品化所帶來(lái)的競(jìng)爭(zhēng)機(jī)制,使其發(fā)展更快捷、更豐富。


參考文獻(xiàn)


1丁有和 著  InstallShield簡(jiǎn)明使用教程(電子文檔),2001.1


2張君等 著  2001編程寶典叢書(shū)4    引人入勝InstallShield6.X/VB/VC/Delphi安裝程序設(shè)計(jì)與制作.北京希望電子出版社, 2001.1


3Jeffrey M. Rhodes  InstallShield Professional Primer for ToolBook Installations


4黃進(jìn)林 著 利用InstallShield 制作PowerBuilder應(yīng)用程序安裝盤.電腦編程技巧與維護(hù), 2001.39-12


該文章在 2010/12/2 12:19:06 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved