線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:4929
推到 Plurk!
推到 Facebook!

[轉貼 技術文章] InstallShield---------InstallScript語言入門

 
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-06-13 10:18:58 IP:61.220.xxx.xxx 未訂閱
InstallShield---------InstallScript語言入門 InstallShield和其它的安裝軟體最大的不同之處,就是它必須"寫"程式!!! 一般人一聽到這裡,就覺得一定不好學!!! 其實就我個人的經驗而言,我覺得就是因為它要"寫"程式,所以它比其它的軟體的變化性就比較大,這裡說的變化性是指它可以讓你透過修改程式碼,而達到你的要求!!!! 而且讓我覺得最好的一點,就是它支援了 將近29國的語言!!!!(包含Big5、GB碼)!!! InstallShield公司將InstallShield軟體的語言稱為 InstallScript!! 第一次看過它的程式碼的人,會覺得它和C語言好像!!不過說真的,它不會像想像中的難學!!!! 相信我,當你看完這章,你的觀念將會完全改觀!! OK!首先先說一下InstallScript的一些觀念:第一、在InstallScript中是有大小寫之分的!!第二、 InstallScript和C一樣也是要在每個句子結尾處加上";"符號!! 好了!!廢話不多說了,以下是本章的內容: -------------------------------------------------------------------------------- Contents 變數、常數!!! 函數 - InstallScript的重心!! * 使用函數精靈~!! 流程控制、敘述!!! InstallScript架構說明 變數、常數!!! 變數、常數是學習一個新語言所先要知道的部份!!InstallScript提供了自己的變數、常數!! 和一般的語言一樣,InstallScript也提供了非常多的內建常數,像是Time,代表的就是顯示目前系統的時間!! 這裡我只有非常簡單的講一下,如有講錯的地方請告訴我!!如果你看完後,想進一步了解InstallScript的話,請自己看看InstallShield的InstallScript線上輔助說明!! -------------------------------------------------------------------------------- Contents 資料形態、變數宣告&使用範圍 常數值、宣告 數值、邏輯運算 資料形態、變數宣告&使用範圍 InstallScript語言提供了以下的資料形態: 資料形態 敘述說明 BOOL 布林值:不是TRUE(1)就是FALSE(0) CHAR 單一8-bit的ASCII字元 HWND Handle to a Window INT 和NUMBER形態相等 LIST 指標清單 LONG 長整數 LPSTR 和POINTER形態相等 NUMBER 數字(-2147483648~ 2147483647) POINTER 指標(使用&來區分) SHORT 短整數 STRING 字串(和C語言中的字元陣列相似) 變數的宣告、變數命名規則: 變數的宣告如下: data type variable name[, variable name [,...]]; 例子: BOOL bValidEntry; LONG lPopulation; STRING szUserName[128]; NUMBER nFileSize, nDirSize, nDiskSpace; 其中要注意的是變數名稱不得超過32字元!! 變數命名規則: 其實如果你不按照這個規則也沒有關係!!只是說如果你想將你的程式分享或是比較容易理解的話!!建議你還是依照這個規則去命名變數會比較好!!以下列出命名的原則表: 於字首加... 資料形態 敘述說明 b Boolean(BOOL) 布林常數、literal或布林變數 bv Boolean(BOOL) 只限於布林變數 c Character(CHAR) 字元常數、literal或布林變數 const Constant 常數或literal h Handle(HWND) Handle變數 i Integer(INT) 整數常數、literal或整數變數 l Long Integer(LONG) 長整數常數、literal或長整數變數 lv Long Integer(LONG) 只限於長整數變數 list List(LIST) List變數 n Number(NUMBER) 數字常數、literal或數字變數 nv Number(NUMBER) 只限於數字變數 p Pointer(POINTER) 指標變數 pstruct Pointer to a defined stucture type Not Used s Short Integer(SHORT) 短整數常數、literal或短整數變數 sz String(STRING) 字串常數、literal或字串變數 sv String(STRING) 只限於字串變數 struct Defined structure type Not Used 變數的使用範圍: 整體變數 v.s. 區域變數 所謂的整體變數就是在程式中的任何的地方都可以使用它,而相對的區域變數則只能在宣告它的函數或某區域中使用它而已,而且當此函數或此區域結束後,此區域變數也會跟著結束!! prototype FirstFunction(); //函數宣告 NUMBER nVisible; //整體變數 program nVisible=10; FirstFunction(); endprogram NUMBER nVisible2; //整體變數,但是program區域無法使用 function FirstFuncion() STRING szString; //區域變數 begin szString="xxx"; end; 由此可知,區域變數是在函數中宣告的!!而在函數之外宣告的,都可以稱之為整體變數,但是如果某區域想引用某變數的話,並且將它分享給別函數,那此變數一定要在此區域及分享它的函數之前宣告才行!! 常數值、宣告 在InstallScript中,已經有內建非常多的常數值,像是DATE、TIME、…等,但是基本上,也提供了方法讓設計師可以宣告屬於自己的常數!!宣告方法如下: #define COMPANY_NAME "Example_Company" //字串常數 #define MAXCOUNT 1000 //數字常數 而至於已內建的常數,設計師在設計時,便可以直接引用,無需在作宣告了!!例如設計在使用SprintfBox函數時,想用到COMPONENT_FIELD_SELECTED,直接在函數中引用即可!!如下面所示: SprintfBox(INFORMATION,"","%d",COMPONENT_FIELD_SELECTED); 如果你還想知道其它的內建常數的話,請直接看InstallShield的InstallScript線上說明!! 在線上說明索引鍵入Predefined constants後按顯示鈕,即可看到!! 其它 在InstallScript中的註解是使用" // "!!例如: //註解 //註解 STRING szXXX; //註解 以上的方式在InstallScript中都是合法的註解!! 特殊字元: 和C一樣!!例如: \n 代表換行 \\ 代表\ \t 代表tab字元 除此之外,還有指定的格式符號!!例如: % 例如%s、%d、…等 # .precision 在InstallScript中也是有資料結構的!宣告方式如下: typedef EMPLOYEE //資料結構宣告 begin STRING szName[50]; STRING szDepartment[50]; NUMBER nExtension; end; EMPLOYEE structEmployee; //將此結構宣告成一個變數 program structEmployee.szName="I"; structEmployee.szDepartment="D"; structEmployee.nExtension=555; endprogram 很不幸的!!在InstallScript中也是有指標的!!在C語言中指標一直讓人覺得…!!而在InstallScript中,它也是存在的,不管怎樣,我們也是要學它!!範例如下: POINTER pPPP; //宣告一個指標變數 typedef RECT //宣告一個指標資料結構 begin SHORT sX; SHORT sY; end; RECT Rectangle; RECT POINTER pRect; pPPP=&MyStructure; //使用&去指配指標變數的位址 函數 - InstallScript的重心!! * 使用函數精靈~!!InstallScript是一套物件導向的程式語言,所以在InstallScript中函數則是占了很重的份量 !!而在這方面,InstallShield則提供了非常多的內建函數供你快速開發程式!!但是面對這麼多的函數,對一個新手而言,好像是很難入手!!還好InstallShield公司提供了一個函數精靈,可以讓你一步步跟著精靈完成所有的事情!!是不是很棒呢?--------------------------------------------------------------------------------Contents函數及函數宣告!!函數精靈!!!!函數及函數宣告!!在InstallScript中函數占了很重的份量,所以對於函數也是必修的項目之一!!關於在使用函數上,要注意的是不管是否為內建或是自訂函數,全都要宣告!! 至於如何宣告函數呢?如下所示prototype FunctionName(INT,STRING,SHORT); prototype CopyBitmapExample(); prototype FileTransfer(LONG,LONG,STRING,STRING); 如果是要引用某DLL檔中的函數,所如下所示: prototype MyDLL.MyFunction(INT,INT);由上面所示,讀者應該知道函數的宣告了吧!! 沒錯,就是prototype關鍵字!! 至於有關函數的架構,在本章有第四節有說明,這裡不再多說了!! InstallScript架構說明其實,InstallScript的架構和C是有點像!!到底是怎麼像法!!就一步步來說明!!在C中程式的核心是在main(){ ........}之中!!而在InstallScript中程式的核心則是在 program ........endprogram之中!! 所以在InstallScript整個程式中,最重要的部份也就是program區段了!!你可以將任何你想在安裝過程中所要展示的畫面都寫在這裡!!不過一般都是將你所想要的寫成函數,然後只需要在program區段中呼叫此函數即可!!至於函數的架構說明呢?在C語言中是function Function(int,char){ .........},但是在InstallScript中則是如下function Function(INT,CHAR) //函數名稱 STRING szXXX; //在函數中變數宣告之處begin //函數之程式碼開始 ...... //程式碼撰寫 ...... //程式碼撰寫end; //函數之程式碼結束而在InstallScript語言中也和C一樣,有標頭檔(Header File),可以加入函式庫!! 而使用的方法,則是和C是一樣的#include "sdlang.h"講到這裡,相信各位應該對InstallScript語言有了初步的認識,如果你想更進一步的話!! 你可以參考InstallShield的InstallScript線上說明!!就會得到更多的資訊!! 流程控制、敘述!!!在InstallScript中的流程控制最常用的是if (.....) goto .....;if (.....) then ......;endif;例如:if (ShowDialogs()<0) goto end_install;if (bInstallAborted) then abort;endif;這幾個是InstallScript中最常用到的流程控制!!如果你想更進一步瞭解InstallScript中的流程控制敘述的話,請參考InstallShield Professional的InstallScript
系統時間:2017-10-22 9:05:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!