資源描述:
《Inno Setup入門—Pascal腳本》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、InnoSetup入門(十二)——Pascal腳本事件函數(shù)InnoSetup支持以下函數(shù)和過(guò)程。functionInitializeSetup():Boolean;該函數(shù)在安裝程序初始化時(shí)調(diào)用,返回False將中斷安裝,True則繼續(xù)安裝,測(cè)試代碼如下:functionInitializeSetup():Boolean;beginResult:=MsgBox('安裝程序正在初始化,你確定要安裝嗎?',mbConfirmation,MB_YESNO)=idYes;ifResult=FalsethenMsgBox('你放棄了安裝,程序直
2、接退出',mbInformation,MB_OK);end;procedureInitializeWizard();該過(guò)程在開(kāi)始的時(shí)候改變向?qū)Щ蛘呦驅(qū)ы?yè),不要指望使用InitializeSetup函數(shù)實(shí)現(xiàn)改變向?qū)ы?yè)的功能,因?yàn)镮nitializeSetup函數(shù)觸發(fā)時(shí)向?qū)Т翱诓⒉淮嬖?。procedureDeinitializeSetup();該過(guò)程在安裝終止時(shí)被調(diào)用,注意及時(shí)在用戶沒(méi)有安裝任何文件之前退出也會(huì)被調(diào)用。測(cè)試代碼如下:procedureDeinitializeSetup();beginmsgbox('Deinitializ
3、eSetupiscalled',mbInformation,MB_OK);end;procedureCurStepChanged(CurStep:TSetupStep);該過(guò)程提供用戶完成預(yù)安裝和安裝之后的任務(wù),更多的是提供了安裝過(guò)程中的狀態(tài)。參數(shù)CurStep=ssInstall是在程序?qū)嶋H安裝前(所有的路徑等都配置好之后準(zhǔn)備寫(xiě)入文件錢),CurStep=ssPostInstall是實(shí)際安裝完成后,而CurStep=ssDone是在一次成功的安裝完成后、安裝程序終止前(即點(diǎn)擊finish按鈕后執(zhí)行)。測(cè)試代碼如下:procedur
4、eCurStepChanged(CurStep:TSetupStep);beginifCurStep=ssinstallthenMsgBox('準(zhǔn)備寫(xiě)入文件了',mbInformation,MB_OK);ifCurStep=ssPostinstallthenMsgBox('文件復(fù)制完成',mbInformation,MB_OK);ifCurStep=ssDonethenMsgBox('軟件成功安裝',mbInformation,MB_OK);end;三個(gè)步驟的截圖如下:functionNextButtonClick(CurPageI
5、D:Integer):Boolean;當(dāng)用戶單擊下一步按鈕時(shí)調(diào)用。如果返回True,向?qū)⒁频较乱豁?yè);如果返回False,它仍保留在當(dāng)前頁(yè)。測(cè)試代碼如下:functionNextButtonClick(CurPageID:Integer):Boolean;beginResult:=MsgBox('到下一頁(yè)去嗎?',mbConfirmation,MB_YESNO)=idYes;end;截圖如下:functionBackButtonClick(CurPageID:Integer):Boolean;和前面的NextButtonClick函
6、數(shù)相反,當(dāng)用戶單擊返回按鈕時(shí)調(diào)用。如果返回True,向?qū)⒁频角?;如果返回False,它仍保留在當(dāng)前頁(yè),測(cè)試代碼略。procedureCancelButtonClick(CurPageID:Integer;varCancel,Confirm:Boolean);當(dāng)用戶單擊取消按鈕或單擊窗口中的關(guān)閉按鈕時(shí)調(diào)用。Cancel參數(shù)指定取消進(jìn)程是否該發(fā)生;默認(rèn)為True。Confirm參數(shù)指定是否顯示“退出安裝程序嗎?”的消息框;默認(rèn)為True。如果Cancel設(shè)為False,那么Confirm的值將被忽略。測(cè)試代碼如下:procedureC
7、ancelButtonClick(CurPageID:Integer;varCancel,Confirm:Boolean);begincancel:=False;end;和你所預(yù)料的一樣,本段代碼將會(huì)導(dǎo)致Cancel按鈕失效,即逼迫用戶完成安裝或者采用非正常方式終止安裝程序。procedureCancelButtonClick(CurPageID:Integer;varCancel,Confirm:Boolean);beginConfirm:=false;end;而上面的這段代碼將會(huì)在用戶點(diǎn)擊Cancel按鈕之后直接退出,不需要做進(jìn)
8、一步的確認(rèn)。functionShouldSkipPage(PageID:Integer):Boolean;向?qū)д{(diào)用這個(gè)事件函數(shù)確定是否在所有頁(yè)或不在一個(gè)特殊頁(yè)(用PageID指定)顯示。如果返回True,將跳過(guò)該頁(yè);如果你返回Fals