installshield學習筆記

來源:互聯網
上載者:User

標籤: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學習筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.