標籤:bsp rip ... 區別 category 檢查 image panel function
看預定義常量的值:SprintfBox(INFORMATION,"","%d",變數值); 自訂常量:#define MAXCOUNT 1000;#define COMPAN_NAME "Example_Company"; 所有用prototype聲明過的函數都必須在函數塊中定義, 在預先處理語句後面不帶“;”例如:#define,#include等等;關鍵字program,endprogram和end和begin 擷取c盤空間大小的指令碼#define DISK_DRIVE "C:\\"STRING szDrive,svString;NUMBER nSpace,nResult; szDrive = DISK_DRIVE;nSpace = GetDiskSpace(szDrive); nResult = NumberToStr(svString,nSpace);if(nResult < 0) then MessageBox("NumToStr failed.",SERVE); abort;endif; SprintfBox(INFORMATION,"info","Disk space:%s",svString); 操作符說明:加入路徑操作符(^)該操作符用於將路徑加入到路徑描述或檔案名稱描述中去。當你想把兩條路徑或者和一個檔案名稱串連到一起時,可以使用加入路徑(^)操作符。當把一個檔案名稱或者一個子目錄加入到路徑中時,該操作符會自動檢查是否有足夠數量的反斜線符號:szStringVar = “c:\\MYPATH\\”^"; 尋找字串(%):使用字串操作符(%)可以確定一個字串是否是另外一個字串的字串。字串操作符是不區分大小寫。szStringVarA = "This is a sample string.";if(szStringVarA %"sample"//SAMPLE大小都可以的) then MessageBox("操作完成","");和endif; 函數:AskYesNo("Installation Complete.Would you like to view the ReadMe file Now?",YES);//預設的選擇的是yes哦 當安裝指令碼遇到abort語句時,安裝程式就會終止。然後卸載過程就會在後台自動運行去復原未完成的安裝,並刪除那些已經安裝的並在安裝指令碼中等級的檔案。當使用者在安裝過程中按下Esc鍵、F3鍵或者安吉對話方塊中的Cancle按鈕時,安裝程式就會調用預設的退出事件的處理控制代碼,在這裡也用到了abort語句。 for迴圈 for iCount = 1 to 10MessageBox("you 1 see this 10 times",INFORMATION);endfor; 降序for迴圈for j = 20 downto 10 step 5//20,15,10MessageBox("you will seee this three times",INFORMATION);endfor; 步長:for iCount = 10 to 100 step 10MessageBox("you 1 see this 10 times",INFORMATION);endfor; Goto:關鍵字goto用於將程式直接跳轉到指定標號的那個分支行去。在下面的程式碼片段中,goto語句可以使程式直接跳轉到標號name所指定的那一行去。Name: AskText("Company name :","",szSrc);if(szSrc = "") thenMessageBox("Place enter the company name.",SERVE);goto name;endif;在主程式中聲明的標號,只能goto到主程式中的goto標號中,在函數中聲明的goto語句只走到函數中的goto語句 安裝完畢重啟代碼:在After Move Data--->OnEnd函數裡面function OnEnd()beginSdFinishReboot ("title", "haha", 0, "oooo", 0);//第二個參數必須為數字零現在還不允許有其他的值哦end; RegDBSetDefaultRoot(HEKY_LOCAL_MACHINE);註冊表的根節點 abort和exit 的區別: 都是退出安裝過程,區別是abort有復原過程,而exit則只是結束安裝過程,對之前的操作不做任何復原動作。 改變對話方塊標題的installshield ward的方法:SetTitle(IFX_PRODUCT_NAME, 0, BACKGROUNDCAPTION);是在onBegin方法裡面增加這一條。 函數的執行順序:Before Move Data OnBeginBefore Move Data OnFirstUIBeforeBefore Move Data OnMaintUIBefore Move Data OnMoved After Move Data OnFirstUIAfterAfter Move Data OnMaintUIAfter 函數的執行順序InstallShied2008的函數執行順序如下:OnBegin ---> OnShowUIOnShowUI裡面為:OnFirstUIBefore ----> OnMoveData ------> OnFirstUIAfterOnFirstUIBefore (include): 歡迎介面, 選擇安裝路徑, 安裝的類型(這個介面已經卻掉) .OnMoveData(include): 檔案的拷貝OnFirstUIAfter(include): FileAttribute, Modify registration, create shortcut, register filter/com, excute custom exe;第二次運行Setup的時候:(維護,一般會出現我們所看見的Repair、Modify、Delete三個選項)OnMainUIBefore ---> OnMoveData ----> OnMainUIAfter 改變內部對話方塊的標題列的圖片的方法:首先需要將bmp格式(尺寸大小為499*58像素點)檔案添加到Support Files/Language Independent目錄下 之後在事件響應函數OnBegin中添加如下代碼:DialogSetInfo(DLG_INFO_ALTIMAGE, SUPPORTDIR ^ "Bear_Banner.bmp", TRUE); ****************************************************************填寫註冊碼代碼分支*******************************************************Dlg_AskRegisterCode://註冊碼填寫dialog SetDialogTitle (DLG_ASK_TEXT, "註冊碼驗證:請輸入正確的驗證碼"); nResult = AskText ("註冊碼:", szRegisterCode, szRegisterCode); if (nResult = BACK) then goto Dlg_SdLicense2; endif; if(szRegisterCode = "") then MessageBox("註冊碼不可為空",SEVERE); goto Dlg_AskRegisterCode; endif; if(StrLengthChars(szRegisterCode) != 16) then MessageBox("請輸入正確的註冊碼",SEVERE); szRegisterCode = ""; goto Dlg_AskRegisterCode; endif; if(StrLengthChars(szRegisterCode) = 16) then SdShowMsg("正在驗證中.....",TRUE); Delay(3); SdShowMsg("正在驗證中.....",FALSE); MessageBox("連網驗證失敗!程式將會稍後驗證....",INFORMATION); bRegisterCodeChecked = TRUE; //將註冊碼儲存到安裝目錄下的 檔案中 //檔案名稱為: OpenFileMode (FILE_MODE_APPEND); if(ExistsDir(szDir) = NOTEXISTS) then CreateDir(szDir); endif; if(CreateFile (nvFileHandle, szDir,"") < 0) then MessageBox("註冊碼檔案建立失敗!",SEVERE); else if(WriteLine(nvFileHandle, szRegisterCode) < 0) then MessageBox("註冊碼儲存失敗",SEVERE); endif; endif; CloseFile(nvFileHandle); goto Dlg_AskPlatformServerIP; endif; ****************************************************************填寫註冊碼代碼分支*******************************************************學習部落格:http://www.cnblogs.com/BeyondTechnology/category/265153.html ***************************************************************安裝完成以後不在控制台裡面顯示卸載表徵圖**********************************function OnEnd() string subKey;beginsubKey = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + PRODUCT_GUID; RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);if (RegDBKeyExist(subKey) =1) thenRegDBDeleteKey (subKey); //不在控制台的添加刪除程式中顯示。endif; if(!ExistsDir(DISK1TARGET)) thenDeleteDir(DISK1TARGET,ALLCONTENTS);//去掉卸載功能。endif;end; 或者: Installation Designer->Media->Releases: 選擇要設定的release項, 在右邊的參數列表中 Hide Add/Remove Panel Entry(最後一項),設定為yes ***************************************************************安裝完成以後不在控制台裡面顯示卸載表徵圖********************************** ***************************************************************隱藏初始化介面的方法******************************************************在InstallShield製作的安裝包中,可以通過參數hide_progress隱藏啟動初始介面,但工程不同,應用方法不同: InstallScript工程:設定方法:在Installation Designer-> Media -> Releases -> Release * -> Setup.exe選項卡中,Setup Command Line屬性項中加上“/hide_progress” ***************************************************************隱藏初始化介面的方法******************************************************2013/3/18 問題:1/建立快速鍵的表徵圖2/建立卸載的表徵圖3/自訂歡迎前面的視窗的設定4/設定表單標題列最右邊的表徵圖5/設定表單標題列下方,右側的背景圖 Dlg_SetupType2
installshield學習筆記