installshield学习笔记
生活随笔
收集整理的這篇文章主要介紹了
installshield学习笔记
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
看預定義常量的值: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 10 MessageBox("you 1 see this 10 times",INFORMATION); endfor; 降序for循環 for j = 20 downto 10 step 5//20,15,10 MessageBox("you will seee this three times",INFORMATION); endfor; 步長: for iCount = 10 to 100 step 10 MessageBox("you 1 see this 10 times",INFORMATION); endfor; Goto: 關鍵字goto用于將程序直接跳轉到指定標號的那個分支行去。在下面的代碼段中,goto語句可以使程序直接跳轉到標號name所指定的那一行去。 Name: AskText("Company name :","",szSrc); if(szSrc = "") then MessageBox("Place enter the company name.",SERVE); goto name; endif; 在主程序中聲明的標號,只能goto到主程序中的goto標號中,在函數中聲明的goto語句只走到函數中的goto語句 安裝完畢重啟代碼: 在After Move Data--->OnEnd函數里面 function OnEnd() begin SdFinishReboot ("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 ? OnBegin Before Move Data ? OnFirstUIBefore Before Move Data ? OnMaintUIBefore Move Data ?? OnMoved After Move Data ? OnFirstUIAfter After Move Data ?? OnMaintUIAfter 函數的執行順序 InstallShied2008的函數執行順序如下: OnBegin ---> OnShowUI OnShowUI里面為: OnFirstUIBefore ----> OnMoveData ------> OnFirstUIAfter OnFirstUIBefore (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; begin subKey = "\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\" + PRODUCT_GUID; ??? RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE); if (RegDBKeyExist(subKey) =1) then RegDBDeleteKey (subKey); ??//不在控制面板的添加刪除程序中顯示。 endif; ? if(!ExistsDir(DISK1TARGET)) then DeleteDir(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
轉載于:https://www.cnblogs.com/lizhenlin/p/6287301.html
總結
以上是生活随笔為你收集整理的installshield学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017寒假第一篇随笔(寒假作业一)
- 下一篇: 2017年 1月 15日 指针