InstallShield打包软件使用
InstallShield可以說(shuō)是軟件安裝的最好制作工具。其簡(jiǎn)單的操作、完全可視
化的界面、方便的調(diào)試功能、多平臺(tái)(Windows3.1,?Windows95,?WindowsNT3.5,
?Windows?NT4.0?)語(yǔ)言(中文、各種西文)的支持使它幾乎成為了安裝制作的標(biāo)
準(zhǔn)。難怪微軟在它的拳頭產(chǎn)品Visual?C++4.X中開始,就以捆綁的形式包括了Inst
allShield3。而今,隨著日月的推移,InstallShield更是羽翼豐滿,又陸續(xù)推出
了InstallShield?Professional?5.X(包括East?Edition,West?Edition)和Insta
llShield?6.0,功能更為強(qiáng)大,操作更為簡(jiǎn)便。對(duì)于Shareware軟件的制作者,包
裝上一個(gè)漂亮的安裝程序,實(shí)在是非常必要。本文簡(jiǎn)要探討一下用InstallShiel
d制作安裝軟件的方法,希望對(duì)感興趣的朋友有所幫助。
在InstallShield的各種最新版本中,其專門制作的East?Edition,可應(yīng)用于
漢語(yǔ)(GB、BIG5)、英語(yǔ)、印度尼西亞語(yǔ)、日語(yǔ)、韓語(yǔ)、俄語(yǔ)、土耳其語(yǔ)、泰國(guó)語(yǔ)
等多語(yǔ)種。本文便以InstallShield?East?Edition?5.1為探討對(duì)象進(jìn)行討論。In
stallShield的其它語(yǔ)種版本的操作和East?Edition幾乎完全相同。
?
進(jìn)入InstallShield?East?Edition?5.1后便是兩個(gè)“向?qū)А泵鎸?duì)你。
習(xí)慣用VB的朋友可以用VB5?Project?Wizard,它需要你的系統(tǒng)中安裝了VB5。
更為常用的是Project?Wizard,它可以定制更為普便適用的安裝程序。進(jìn)入P
roject?Wizard后如圖1:在第一欄中寫入你的程序的名字,第二欄中寫入公司的
名字,在第三欄中選擇開發(fā)程序使用的根據(jù),第四欄中選擇程序的種類,最后一
欄中填入程序的可執(zhí)行文件的完整路徑和名字。單擊下一步,進(jìn)入選擇定制對(duì)話
框:安裝自己的喜好選擇希望安裝過(guò)程進(jìn)行時(shí)出現(xiàn)的對(duì)話框,按Priview鍵可以預(yù)
覽一下相應(yīng)對(duì)話框的效果。接下來(lái)是選擇要安裝目標(biāo)平臺(tái)。也即程序?qū)⒈贿\(yùn)行在
什么平臺(tái)之上。InstallShield共提供了四種平臺(tái)供選擇(Win31,?win95,?WinNT
3.5,?Windows?NT4.0?)。然后是多語(yǔ)種支持,也就是安裝時(shí)可以提供的語(yǔ)言支持
。再向下依次是安裝類型選擇、指定構(gòu)成成份、指定文件組,最后是所有選項(xiàng)的
概括。完成選擇后便可得到你自己定做的Project,進(jìn)入InstallShield的可視化
編程環(huán)境。
下面讓我們一步一步地完成我們的制作。
整個(gè)InstallShield的可視化程度很高。支持鼠標(biāo)右鍵的操作,在各個(gè)位置的
鼠標(biāo)右鍵可激活各種功能;編譯、調(diào)試方便,簡(jiǎn)直是VC++這種大型程序的簡(jiǎn)寫
本,卻又比VC++方便了許多。
一、在左面的選項(xiàng)中選擇Scripts。
這是全部制作的核心部分,也是我們所最應(yīng)集中精力攻克的小小關(guān)口。當(dāng)然
不更改Scripts中的源程序也能制作一個(gè)標(biāo)準(zhǔn)的安裝程序,但如果能夠控制Script
s的編程,整個(gè)安裝程序的制作水準(zhǔn)就可以達(dá)到一個(gè)新的高度,這也許是您與普通制
作者區(qū)別的開始吧。其實(shí)InstallShield的Scripts非常類似于C和C++的程序編
寫,相信對(duì)大多數(shù)程序員來(lái)說(shuō)是非常容易掌握的。而對(duì)于沒(méi)有什么C和C++的基
礎(chǔ)的朋友來(lái)講,看完這篇文章后,相信你也能很好地去制作自己的Scripts,因?yàn)?br />它具有相當(dāng)程度的重復(fù)性,更容易被“依葫蘆畫瓢”。
Scripts的布局同C語(yǔ)言非常類似。首先是頭文件的包含,緊接著是字符串的
定義、函數(shù)原形的說(shuō)明、全局變量的說(shuō)明。你可以做的是在此加上你的函數(shù)說(shuō)明
、全局變量的說(shuō)明。
Scripts中遵循C的規(guī)則,同樣有局部變量和定義。遵循C++的注釋規(guī)則,可
以用//?注釋內(nèi)容來(lái)進(jìn)行單行注釋,也可以用/*?注釋內(nèi)容?*/來(lái)注釋一塊語(yǔ)句。所
有的關(guān)鍵字、宏定義都以不同顏色的字體標(biāo)出,非常直觀。Scripts?的編程遵循
結(jié)構(gòu)化編程的思想,提供了大量類似Windows?API的函數(shù)庫(kù)供調(diào)用,每個(gè)宏定義都
有詳細(xì)的說(shuō)明,每個(gè)函數(shù)除了詳細(xì)地說(shuō)明,解釋每個(gè)變量的意義外,還都附有相
應(yīng)的例子,參考這些說(shuō)明和例子,可以讓新手在非常短的時(shí)間內(nèi)上路。對(duì)用VC+
+開發(fā)過(guò)Windows程序的朋友來(lái)講,簡(jiǎn)直就是一種6=2×3的轉(zhuǎn)變而已,可以非常
輕松地掌握。
在程序的最前段,是program…………………endprogram,它相當(dāng)于C中的ma
in()?{……}主函數(shù)。后面是一個(gè)個(gè)子函數(shù)體的程序,排列順序是按調(diào)用順序排列
。全部函數(shù)都非常簡(jiǎn)單易懂,并且一般不需太大改動(dòng)。下面將幾個(gè)常用、經(jīng)常改
動(dòng)的函數(shù)加以說(shuō)明。
(1)?function?SetupFolders()
function?SetupFolders()
NUMBER?nResult;
STRING?szFolderDir;
begin
szProgramFolder?=?FOLDER_PROGRAMS^?
SHELL_OBJECT_FOLDER;?//建立程序組或快捷方式的位置
szItemName?=?"眼部圖象多功能處理系統(tǒng)";?//應(yīng)用程序名稱
szProgram?=?TARGETDIR^'eye95.exe';?//可執(zhí)行文件名
szParam?=?"";
LongPathToQuote?(szProgram,?TRUE);//合并路徑
LongPathToShortPath?(szParam);//轉(zhuǎn)為短路徑,專為Win31和WinNT3.5而用
szCommandLine?=?szProgram?+?"?"?+?szParam;?//生成命令行
szWorkingDir?=?TARGETDIR;//工作路徑
szIconPath?=?"";
nIcon?=?0;
szShortCutKey?=?"";
nFlag?=?REPLACE;
AddFolderIcon?(szProgramFolder,?szItemName,?
szCommandLine,
szWorkingDir,?szIconPath,?nIcon,
szShortCutKey,?nFlag);
szProgramFolder?=?FOLDER_DESKTOP;
LongPathToQuote(szCommandLine,?TRUE);
if(SprintfBox(?OK|CANCEL,"請(qǐng)選擇:","%s","你想在桌面上創(chuàng)建快捷方式嗎?"
)==6)?
then
AddFolderIcon(szProgramFolder,szItemName,szCommand
Line,?
szWorkingDir,szIconPath,nIcon,szShortCutKey,?
nFlag);
endif;
szProgramFolder?=?FOLDER_PROGRAMS^?SHELL_OBJECT_FOLDER;
szItemName="readme";
szProgram?=?WINDIR?^?"notepad.exe";
szParam?=?TARGETDIR^"readme.txt";
LongPathToQuote?(szProgram,?TRUE);
LongPathToShortPath?(szParam);
szCommandLine?=?szProgram?+?"?"?+?szParam;
AddFolderIcon(szProgramFolder,szItemName,?
szCommandLine?,
szWorkingDir,?szIconPath,?0,
szShortCutKey,nFlag?);
nResult?=?CreateShellObjects(?""?);
return?nResult;
end;
其實(shí)這段程序說(shuō)白了是對(duì)AddFolderIcon的一個(gè)應(yīng)用而已。應(yīng)用AddFolderIc
on來(lái)在開始選單中添加程序組、程序項(xiàng)或在桌面桌面添加快捷方式等等。所以首
先讀一下AddFolderIcon的說(shuō)明非常必要。它共有八個(gè)入口參數(shù)。第一個(gè)參數(shù)szP
rogramFolder是確定要在Win95中添加選單的位置(路徑),例如
"C:\\WINDOWS\\STARTMENU\\PROGRAMS\\ACCESSORIES\\GAMES"。
而在Windows95和WinNT4.0中,還可以用系統(tǒng)的宏定義:FOLDER_DESKTOP(添
加在桌面上)、FOLDER_DESKTOP(添加在開始選單中)、FOLDER_PROGRAMS(添加在開
始-〉程序選單中)等。第二個(gè)參數(shù)為szItemName,即添加的圖標(biāo)的名稱(應(yīng)用程
序的名稱)。第三個(gè)參數(shù)szCommandLine相對(duì)繁瑣一些。它為了指定可執(zhí)行程序和
它的命令行,或者在子目錄下的全路徑(僅適用于Windows95&winNT4.0)。szWo
rkingDir為工作路徑,可為空:“”,或?yàn)門ARGETDIR(目標(biāo)路徑)。szIconPat
h為圖標(biāo)路徑,一般設(shè)為空:“”。nIcon為圖標(biāo)序數(shù),即若應(yīng)用程序有若干個(gè)圖
標(biāo),想顯示那個(gè),依次為0,1,2……。
szShortCutKey用來(lái)定義快捷鍵。nFlag用來(lái)指定圖標(biāo)的外觀。如果在路徑中
包含長(zhǎng)路徑名,則必需用‘’或“”來(lái)包含,然后用LongPathToQuote函數(shù)來(lái)合并
。當(dāng)用于16位的Win31和WinNT3.5時(shí),還應(yīng)再調(diào)用一下LongPathToShortPath進(jìn)行
轉(zhuǎn)換。如此便可創(chuàng)建程序組、程序項(xiàng)或快捷方式了。太麻煩了?沒(méi)關(guān)系,如果您
認(rèn)為這一段操作實(shí)在麻煩,您完全可以略過(guò),到Resource中去完成,詳情請(qǐng)往后
看。
(2)function?SetupScreen()
begin
Enable(?FULLWINDOWMODE?);
Enable(?INDVFILESTATUS?);
SetTitle(?"眼科多功能處理系統(tǒng)安裝程序",?28,YELLOW?);//修改字體和顏
色
SetTitle(?"眼科多功能處理系統(tǒng)",?0,?BACKGROUNDCAPTION?);?//?標(biāo)題行的
字體和顏色
Enable(?BACKGROUND?);
Delay(?1?);
end;
這兒主要是SetTitle?(szString,?nPointSize,?nColor)函數(shù)的應(yīng)用。
三個(gè)參數(shù)分別代表了所寫字符串的內(nèi)容、字體大小、文字顏色。
(3)function?DialogShowSdWelcome()
NUMBER?nResult;
STRING?szTitle,?szMsg;
begin
szTitle?=?"歡迎";
szMsg?=?"歡迎您光臨?眼科多功能處理系統(tǒng)?安裝程序!";
nResult?=?SdWelcome(?szTitle,?szMsg?);
return?nResult;
end;
在這個(gè)函數(shù)里寫入您想制作程序的標(biāo)題。
(4)function?SetupRegistry()
NUMBER?nResult;
STRING?szKey,?szNumName,?szNumValue,?svNumValue;
NUMBER?nType,?nSize;
begin
szKey="Robert\\RobertSoftware\\Spirit\\Version";//自己的主鍵
szNumName?=?"TestValue";//鍵名
szNumValue?=?"12345";//鍵值
nType?=?REGDB_NUMBER;//類型
nSize?=?-1;//指定大小
RegDBSetKeyValueEx(szKey,?szNumName,?nType,?szNumValue,nSize)?;//創(chuàng)
建
nResult?=?CreateRegistrySet(?""?);
return?nResult;
end;
通過(guò)這種方法修改注冊(cè)表,再輔以一些算法,可以投入很小但起到很好的加
密程序的作用,您不妨一試!??
(5)function?DialogShowSdFinishReboot()
NUMBER?nResult,?nDefOptions;
STRING?szTitle,?szMsg1,?szMsg2,?szOption1,?szOption2;
NUMBER?bOpt1,?bOpt2;begin
if?(!BATCH_INSTALL)?then
?bOpt1?=?FALSE;//不選
?bOpt2?=?FALSE;//不選
?szMsg1?=?"%P?安裝結(jié)束!\n";//%P代表安裝程序名字。
szMsg2?=?"按結(jié)束鍵結(jié)束?%p?安裝。";//提示信息
szOption1?=?"我想看自述文件。";
?szOption2?=?"我想現(xiàn)在就運(yùn)行程序。";
?nResult?=?SdFinish(?szTitle,?szMsg1,?szMsg2,?
szOption1,?szOption2,?bOpt1,?bOpt2?);
if(bOpt1)?then
?LaunchAppAndWait(WINDIR^"Notepad.exe",TARGETDIR^"readme.txt",WAIT
);//如果選中,調(diào)用Windows的筆記本載入自述文件。
endif;?if(bOpt2)?then
?LaunchApp(TARGETDIR^'eye95.exe',"");//如選中,立刻執(zhí)行應(yīng)用程序
endif;
?return?0;
endif;
nDefOptions?=?SYS_BOOTMACHINE;
szTitle?=?"";
szMsg1?=?"";
szMsg2?=?"";
nResult?=?SdFinishReboot(?szTitle,?szMsg1,?
nDefOptions,?szMsg2,?0?);//由此控制決定是否重新啟動(dòng)計(jì)算機(jī)。
return?nResult;
end;
這一段程序便是安裝到最后,可以提示用戶是否看自述文件、是否立刻啟動(dòng)
程序運(yùn)行、是否重新啟動(dòng)計(jì)算機(jī)。
Scripts最需要改動(dòng)的地方可能就是這五個(gè)地方。其它則根據(jù)制作者自己的需
要來(lái)做相應(yīng)修改。
二、修改File?Groups
雙擊相應(yīng)的Examples?Files、Help?Files、Program?DLLs、Program?Execut
able?Files、Shared?Dlls,在相應(yīng)的Links中,單擊右鍵,可以插入一組文件、
一個(gè)文件夾或一個(gè)文件。而在Examples?Files、Help?Files、Program?DLLs、Pr
ogram?Executable?Files、Shared?Dlls中分別加入文件是為了在程序安裝時(shí)的選
項(xiàng)安裝。更為簡(jiǎn)便的方法是在Tools中啟動(dòng)Launch?Explorer,然后把所需的文件
或文件夾拖拉到右面空白處即可。
三、修改Components
單擊Program?Files、Example?Files、Help?Files或Shared?Dlls,在右面的
表格中雙擊Include?File?Groups,在彈出的屬性對(duì)話框里單擊Add…,加入相應(yīng)
的文件組。
四、修改Setup?Types
單擊Compact、Typical或Custom,在右面的表格中選擇各自包括的組成成份
。
注:有了二、三、四項(xiàng)的操作,才能完成安裝時(shí)的“典型安裝、簡(jiǎn)潔安裝和
定制安裝”的選擇。
五、修改Setup?Files
在Splash?Screen-〉Language?Independent中你會(huì)發(fā)現(xiàn)一個(gè)Setup.bmp文件,
這個(gè)是系統(tǒng)提供給你的安裝開始時(shí)的閃爍畫面。你可以用你的封面替代這個(gè)setu
p.bmp。在Language?Independent-〉Operating?System?Independent中,你會(huì)發(fā)
現(xiàn)license.txt和infolist.txt。你可以將你的應(yīng)用程序的說(shuō)明、版權(quán)信息寫入相
應(yīng)文件。
六、修改Resource
在Register?Entires中,你可以添加你的鍵值。對(duì)Register?Entires單擊鼠
標(biāo)右鍵,單擊New?Entry,便可在右面的Register?Set中加入自己的鍵值。
在Shell?Objects中,有Explorer?Shell和Program?Manager?Shell兩個(gè)分類
,分別是為了windows95、WinNT4.0和win31、winNT3.5設(shè)計(jì)的。在Explorer?She
ll中,又有Desktop、Start?Menu、Programs、Startup的層次之分。你可以在任
一層單擊右鍵,插入您所需要加的快捷方式或文件夾。
單擊快捷方式或文件夾,雙擊右面的表格選項(xiàng),依次填入空白項(xiàng),那么在您
理想的目的地的文件夾或快捷方式便建好了。不要著急去按下Run?Setup工具按鈕
,否則您會(huì)發(fā)現(xiàn)您運(yùn)行后得到的并不完全是您所設(shè)計(jì)的!這是因?yàn)槟倭?#xff1a;
七、運(yùn)行Media?Wizard
在Media欄,單擊Media?Build?Wizard,按照提示一步一步執(zhí)行,直至結(jié)束(
而實(shí)際上您僅需連續(xù)按“下一步”按鈕)。您完全可以再此基礎(chǔ)上加上更多的更
精彩的小花招,如:加密、安裝拷貝時(shí)的不同的背景變換、制成一個(gè)自解包的安
裝文件、做一個(gè)帶時(shí)間限制的試用版安裝等等,InstallShield都可以滿足您的需
要。但這些小花招,基本都需要您對(duì)Scripts的熟練掌握,這些都是用簡(jiǎn)潔方式所不
能控制的。
轉(zhuǎn)載于:https://www.cnblogs.com/server/archive/2009/02/14/1390508.html
總結(jié)
以上是生活随笔為你收集整理的InstallShield打包软件使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 摩托罗拉 L7 用mpt实现备份恢复电话
- 下一篇: 河师大计算机技术专硕复试考什么,2021