installshield制作安裝包學(xué)習(xí)使用教程_第1頁
installshield制作安裝包學(xué)習(xí)使用教程_第2頁
installshield制作安裝包學(xué)習(xí)使用教程_第3頁
installshield制作安裝包學(xué)習(xí)使用教程_第4頁
installshield制作安裝包學(xué)習(xí)使用教程_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

我的安裝包技能就選擇Installshield工具。精通它,其它的不去學(xué)ISX10.5學(xué)習(xí)筆InstallshieldX10.5Edition介2004年,InstallShield將DevStudio、Multi tform和UpdateService集成到了一起,形成 Edition。前面的是為快速簡單打包一個程序而設(shè)計的,如果你的應(yīng)用程序只是簡要制作和定制強(qiáng)大,有特別要求的,如:寫數(shù)庫,運行SQL,EXEEdition當(dāng)然他們都可以制作任何平臺任何系統(tǒng)下的安裝程序,MacOSX,OS/400,Windows,基本使用介ProjectAssistantInstallationDesigne方式做更詳細(xì)的工作。接下來在InstallationArchitecture頁中定制安裝包的安裝結(jié)構(gòu),這在以后的InstallationDesigneNOApplicationFiles頁中添加安裝文件到安裝包中。同InstallationDesigne中完成,不填跳過。接下來是一連串的單選框要選擇,定義安裝包來定義安裝包的表操作,這在InstallationDesigne方式下完成,選擇NO跳過。分類,放到幾個里面,以后在定制安裝類型時進(jìn)行選擇。如:假如我把待安裝文件放在A,B兩個(Features)里,到時我在典型安裝里只選AFeatures,以后在做AFeatures)里的文件,不B(Features)里設(shè)置默認(rèn)的安安裝程序的名多語言實要實現(xiàn)多語言最好不要用DFL方式,而是使用SFL方式。SFL方式下,對目標(biāo)安裝的 的LANGUAGE屬性中選擇中文,在 需要注意的 結(jié)構(gòu) ponent下面的StaticFileLinks是指安 文件群,StaticFileLinks下面(AddIn等)是安裝下的子。這些是我們單擊右鍵創(chuàng)建的,然后單擊該,在右框中擊右鍵選擇“Add”來選擇文件添加進(jìn)來的。這樣就比DFL方式添加文件要麻煩些??旖莘絼?chuàng)建Shortcuts需要注意的是,當(dāng)彈出框讓我們選擇快捷方式指向的文件時,框中在快捷方式的樹型下提供的名稱并不顯示在目標(biāo)機(jī)器上,在GeneralInformation視圖下StringTable屬性框中設(shè)置,其下面對應(yīng)各種語言下的字符串。如圖:首先要搞清楚上列快捷方式“App”對應(yīng)的字符串變量,其字符串變量DFL方式下的快捷方式的建立方式大致同SFL方式下的快捷方式,不過不能建立“NewShortcut”菜單下的快捷方式,只能建立“NewShortcuttopreexistring”菜單下的快捷方式。這正是為了DFL方式下的快捷方式建立而設(shè)置的。制作“開始”菜單下的“程序”菜單下的程序組。在ShortCuts頁中的Program 新建一個作為我的安裝程序組。程序組在OS程序菜單下顯示的名稱在右側(cè)的Disyname框下修改即可。然后在該下新建快捷方式。這里我們看到創(chuàng)建License框的函數(shù)SdLicense2Rft函數(shù)的參數(shù)szLicenseFile加載的屬性下其所支持的語言中添加各自加載名為“l(fā)icense.txt”的文件。我在本地源 的臨時文件,在安裝結(jié)束后是會被刪除掉的,是不會安裝到安裝中。但是如果與license.txt同名的需要安裝到安裝下的文件是不會被誤刪的。寫首先需要在本機(jī)中寫好表,然后在SystemConfiguration視圖下的“Registry”頁中通過粘貼的方式將本地機(jī)器中的表項到目標(biāo)機(jī)器的表中。這種方法寫的注除了人為的在IS的Registry頁中設(shè)置需要加入表記錄外,IS還自動添加一個表項在SOFTWARE項下以公司名稱和產(chǎn)品名稱及版本號為結(jié)構(gòu)的表項,比如:SOFTWARE\\eWalk\1.00.0000,公司名稱,產(chǎn)品名稱及版本號均在GeneralInformationProductPropertyName、VersionComanyName中設(shè)置的。而此時應(yīng)用卸首先,shortcuttext中寫入UNINSTALL(你想寫),target<PROGRAMFILES>\InstallShieldInstallationInformation\{2CE6588F-D966-41C7-BAEB-1DB319218F1A}\Setup.exe,這里替換{2CE6588F-D966-41C7-BAEB-1DB319218F1AID(PROJECTID),Argument中輸入”/uninst”(不要加雙引號)rebuildingOK了吧,這種方式是直接進(jìn)InstallScriptProject方式時,就沒有按鈕可以進(jìn)行創(chuàng)建卸載的快捷方式。如果選擇BasicMSIProject就可以,但是它的DialogSkins沒有可供選擇的。在控件面板中添加卸載項。注冊表鍵值“HKEY_LOCAL_MACHINE\Software\\Window\Currentversion\Uninstall”下的子系統(tǒng)根據(jù)這2個鍵值數(shù)據(jù)在控制面板的“添加/刪除程序”框中為該應(yīng)用程序添加卸載項目。Disyname即項目的顯示名稱,而UninstallString即在單擊“更改/刪除”按鈕時執(zhí)的AddorRemoveProgram頁中,DisyIcon項填法:<TARGETDIR>\IconName.ico。 IS做的安裝包在安裝時會自動在“C:\ProgramFiles\InstallShieldInstallationInformation\產(chǎn)品號\Setup.exe、Setup.iniIS工程編譯的一個Media。并且自動添加到控制面板“添加刪除程序”中的卸載項就是調(diào)用該下的Setup.exe來實現(xiàn)卸載的。我們可以更改該下的Setup.ini文件以改變卸載方式,比如多語言情況下,卸載時也會彈出多語言框,這就多此一舉,為此我們可以更改Setup.ini方式指向該下的Setup.exe,Argumaent指定為-removeonly。卸載路線下的各框標(biāo)題欄的設(shè)置方式,在BeforeMoveDataOnMaintUIBefore函數(shù)下設(shè)IFX_SETUP_TITLE=“設(shè)定標(biāo)題 下的Setup.exe(控SzFileName= Information^{產(chǎn)品SzSectionName=“Startup”;SzKeyName=“CmdLine”;SzOrigValue=“”;if(SELECTED_LANGUAGE2052)thenSzReceValue=“/L0x0804”;elseif(SELECTED_LANGUAGE9then//英文SzReceValue=“/L0x0409”;elseif(SELECTED_LANGUAGE1036)thenSzReceValue=“/L0x040c”; \mmeditor\RunInfo.ini”文件中的Language節(jié)中的在中使用函 #include“ifx.h”function nResult,nLevel,nSize, szTitle,szMsg,szOpt1,szOpt2, HWND隱藏Initialization下functionOnSetTARGETDIR()numbernId,nIgnore,//InmaintenancemodethevalueofTARGETDIRisreadfromthelogfile.if(MAINTENANCE)thenreturn//SetTARGETDIRtoscript //ReadTARGETDIRfromthe//UsetheTARGETDIRfromthemediaifanythingwasif(nResult>=ISERR_SUCCESS&&StrLengthChars(szTARGETDIR))thenTARGETDIR=szTARGETDIR;//CustomizethedefaultTARGETDIRformulti-instance//TODO:Ifyouwantsomethingdifferentcustomizethecode MULTI_INSTANCE_COUNT>0)then//Startwiththecurrentmulti-instancecountplus nId=+//Findauniquewhile(ExistsDir(TARGETDIR)=EXISTS//Converttostring.//UpdateIFX_MULTI_INSTANCE_SUFFIX//UpdateTARGETDIR=TARGETDIR+//UpdatenIdnId=nId+BeforeMoveDate下的OnMaintUIBefore,AfterMoveDate下OnFirstUIAfter、OnMaintUIAfter,MoveDateFeature這些函數(shù)都沒有被定義。但是它會在另一個RUL文件下存放函數(shù)代碼,并且在setup.rul下包含這個RUL文件。動 如果某個是以DFL方式添加進(jìn)打包文件中,當(dāng)該中內(nèi)容發(fā)生改變,也就是增刪了DFL來同步更新該中的文件。也就是說,DFL提供給安如果設(shè)置DFL呢?下面介紹的將是我的“方向1”()的主要方法。(所以在ProjectAssistant中添加文件那一關(guān)不添加任何文件)Feature下單擊其下面的Component(ComponentFeaturen或文件夾下Coponent這時會彈出一個框來進(jìn)行設(shè)置。在框的Browser中選擇我們的源(該下 并勾選“includeSubfolders”。這樣就可以按源 兩個方向 到安裝程序(即我們要做的setup.exe,也稱打包程序 TTPlyer包含其執(zhí)行程序及其 。這時如果把TTy整個 拖到ApplicationTargetFolder下,就會出現(xiàn) 重復(fù),即有兩個TTy 和文件分批添加進(jìn)ApplicationTargetFolder,可以多個文件拖進(jìn)來,而 在添加文件夾時,可以使用動態(tài)方式添加,如果你在添加完成之后又向該中添加文件或者刪除文件,那么IS在編譯時會自動地修改文件列表,如果不使用動態(tài)的方式,如果你向此中添加了文件,那么將不會一起打包,如果刪除了文件,IS在編譯時將會這個圖標(biāo)表示支持DFL。否則不支持。動態(tài)創(chuàng)建只對有意義。要設(shè)置DFL,在SetupDesign視圖中。在某個Feature的屬性框的LinkType中設(shè)置。Features與Component實例、幫助文檔等等。下圖就是千千靜聽的Features選擇界面:Feature下又可以組織多個。ponent用于組織安裝文件,它有很多屬的Language屬性實現(xiàn)的。還有一個添加卸載本程序的快捷方式也是如此制作,只不過他的Target這里我們選擇了InstallScriptMSIProject,這種類型的安裝程序使用來驅(qū)動安裝界面,使用windowsinstaller來改變目標(biāo)系統(tǒng),比如添加文件,創(chuàng)建快捷方式,修改表。關(guān)于去掉InstallShield的商標(biāo)問建議盡量使用MSIInstallShieldBasicMSIProject,而不要涉及太多InstallShield自己的東西。InstallShield答案是:NoWay.InstallShieldMSIProjectInstallShieldProject,如果你以為替換StringTable還有很多朋友問:能不能去掉InstallShield制作的安裝程序每一個窗口左下角答案還是:NoWay.SkinCustomizationKit,這是一個定制皮膚的工具包。準(zhǔn)確地說,其實是一個資源編譯和展開工具,其中有用的東西僅僅是其Bin下的CreateSkinFile.exe和CSF.dll。雖然你可以用自己的替換掉原來帶有“InstallShield”字樣的圖片,但當(dāng)你用CreateSkinFile.exe來的打包成一個Setup.isn的時候,CreateSkinFile.exe又把“InstallShield”印到你的的左下角。除非,有一個crackingtool能破掉它—但這是InstallShield協(xié)議的。當(dāng)然,盜版軟crackbanding?呵呵,只是當(dāng)你希望把軟件銷往世界各地的時候就不好說了—甚至不好說以后IS的滲入國內(nèi)。出來的MSI中替換掉InstallShield字樣。1、如何修改標(biāo)準(zhǔn)的MSI,替換掉相應(yīng)的內(nèi)容’’RemoveBranding.vbs’’WindowsInstallerScriptthatremovestheInstallShieldbranding’(the‘InstallShield’label)fromalldialogsinaMSIfile’strechesthelineabovethebuttonstotheleftedge.’’WrittenbyPascalBourqueApril2001’ModifiedbyStefanKrueger2001-09-26’DimxInstDimxDBCallMsgBox(WScript.Arguments(0))SetxDB=xInst.OpenDatabase(WScript.Arguments(0),SetxView=xDB.OpenView(“DELETEFROM‘Control‘WHERE‘Control‘=’Branding1’ORCallxView.ExecuteSetxView=NothingSetxView=xDB.OpenView(“UPDATE‘Control‘SET‘X‘=4,‘Width‘=366WHERE‘Control‘=’DlgLine’”)CallxView.ExecuteSetxView=Nothing SetxDB=NothingSetxInst= WindowsInstallerMSIDataBaseInstallShieldBasicMSIProject產(chǎn)生的MSI文件中的有關(guān)MSI的內(nèi)容,可以好好看看WindowsInstallerSDK,其實用好了它,IS只不過能原文:FAQCanIRemoveAllReferencestoInstallShield’fromMyInstallShield的話,大家做的安裝程序看起來就不太統(tǒng)一...InstallShield是一個知名品牌,用戶已經(jīng)習(xí)InstallShield仗著別人不知道其Setup.isn文件的結(jié)cracker關(guān)注這個問題,它的這點小伎倆很容易就被識破,失去呵呵,雖然在互聯(lián)網(wǎng)上找了四個多小時,也看遍了InstallShieldInstallS的各種文章,(除了上面說的對MSI項目可以)都沒有找到解決如何去掉左下角的InstallShieldBanding的辦法。而且,看了的說明仔細(xì)想想,也的確沒有必要非要那么做。何況我們MSI(InstallShield里面創(chuàng)建BasicMSIProjectMSI里的InstallShield商標(biāo))。InstallScriptInstallScriptMSI項目的皮膚,去掉它的商標(biāo)還是可以實現(xiàn)地,嘿嘿^oo^InstallShieldfeatures才安裝的,至于kg也是同樣IS不要來找我麻煩。工作上所用的版本,公司購買了IS7的License并一直升級到8,但我的工作范圍也不在此,與我無關(guān)咯安裝程序判斷目標(biāo)程序是否正在實現(xiàn)方法:通過執(zhí)行一個EXE程序來判斷程序是否正在運行。EXE先搜索系統(tǒng)當(dāng)前運行的EXE可以用VC來寫,通過檢索當(dāng)前系統(tǒng)所有打開的應(yīng)用程序的窗口標(biāo)題來實現(xiàn)。函(參考《InstallShield內(nèi)部庫函數(shù)全集.就等價于LaunchApp函數(shù)了。例子:mand= SzCmdLine=“”; mand= TARGETDIR^”eWalk.exe”;SzCmdLine=“”; 函數(shù)及其句函數(shù)句柄。BeforeMoveData下的OnFirstUIBefore函數(shù)句柄只在安裝時是在Prepare框MoveDataFeatureInstalledFeatrue內(nèi)所有文件已安裝結(jié)束,在彈出完成安裝框之前執(zhí)行的。MoveData下的DefaultFeature下的Uninstalling函數(shù)句柄是在卸載進(jìn)度條框出現(xiàn)之后即刻執(zhí)行的。BeforeMoveData下的OnAppSearch函數(shù)句柄是在安裝時Prepare框出現(xiàn)時,進(jìn)行系統(tǒng)比較(Check)時執(zhí)行的。AfterMoveData下的OnFirstUIAfter函數(shù)句柄是在安裝進(jìn)度條框結(jié)束后完成框彈出之前執(zhí)行的。AfterMoveData下的OnMaintUIAfter在卸載進(jìn)度條框結(jié)束時執(zhí)行的。BeforeMoveData下的OnMaintUIBefore函數(shù)句柄是在卸載時的Prepare框彈出時進(jìn)行系統(tǒng)比較時執(zhí)行的。AfterMoveDataOnEnd函數(shù)是在安裝或卸載時“完成”對函數(shù)句柄的作用就是其下轄的普通函數(shù)執(zhí)行的時期,不同的函數(shù)句柄在不同的執(zhí)行時期執(zhí)(以圓括號結(jié)尾的函數(shù)都行。表鍵1、首先需要設(shè)置默認(rèn)的表項根if(nResult<0)thenSzKey=“SOFTWARE\\\\ewalk”;//表項SzName=“ISRunning_Found”; SzValue=“nvSize=0;if(nResult<0)then創(chuàng)SzDirPath=nResult= GetSystemInfo(nItem,nvResult,GetSystemInfo函數(shù)檢索目標(biāo)系統(tǒng)的信息。比如目標(biāo)操作系統(tǒng)的語言,啟動驅(qū)動器盤符等。<0:表明函數(shù)未能返回指定信息。GetSystemInfo(LANGUAGE,nvResult,svResult);SprintfBox(nType,szTitle,szFormat[,arg]消息可以包含根據(jù)你輸入令格式化的變量。SprintfBox和MessageBox相似,但SprintfBox對顯

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論