[轉貼 技術文章] InstallShield---------InstallScript語言入門 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
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
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |