亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

InstallShield腳本語言的編寫參考

系統 1765 0
?

轉自http://www.bangchui.net/viewthread.php?tid=75&extra=page%3D2

Install Shield 腳本語言是類似C語言,利用InstallShield的 向導 或模板都可以生成基本的腳本 程序 框架,可以在此基礎上按自己的意愿進行修改和添加。
一.基本語法規則
??? 1.變量
??? BOOL 布爾型 值為TRUE(1)或FALSE(0)
??? CHAR 字符型 一字節長的(8bit)的字符
??? HWND 窗口句柄 用來存放窗口句柄
??? INT 整型 兩字節長的整數
??? LIST 列表型 指向InstallShield列表,用ListCreate和ListDestroy
??? LONG 擴展數值型
??? LPSTR 擴展指針
??? NUMBER 數值型 存放四字節長的數值,范圍從-2147483648到+2147483647
??? POINTER 指針型
??? SHORT 短數值型
??? STRING 字符串型 十分類似VC中的LPCTSTR
 變量如同標準的C語言,在使用前需要事先聲名。變量通常在兩個位置進行聲名,一是主程序外部,這樣的變量為全局變量,二是各函數的變量聲名區,這樣的變量是局部變量。
???
???
??? 2. 操作
一般的與C語言相同操作符,在這里不做詳解,以下主要介紹比較特殊的操作符,
??? (1) + , - , * , /
??? 以上四個操作符與C語言中意義和用法都相同。
???
??? (2) &&
??? 與操作,與C語言中用法相同,例:x1 && x2
???
??? (3) ||
??? 或操作,與C語言中用法相同,例:x1 || x2
???
??? (4) !
??? 非操作,與C語言中用法相同,例:!x1
???
??? (5) *
??? 指針操作,類似C語言中的*
???
??? (6) & , | , ^ , ~ , << , >>
??? 分別為位與,位或,按位異或,按位取反,左移和右移,其意義和用法都與C語言中基本相同。
???
??? (7) .
??? 該操作符用于結構,用來得到結構的子項,與Delphi的 . 用法類似,例如:
??? typedef SETTINGSREC
??? begin
??? BOOL bSwitchOn;
??? STRING szMssg[255];
??? INT nVal;
???
??? end;
??? SETTINGSREC settings;
???
??? program
??? settings.bSwitchOn = FALSE;
??? settings.szMssg = "Off";
??? settings.nVal = 0;
??? (8) =
??? 既可作為賦值號,同時也做等于符,例如:
??? str1 = "String";
??? if str1="String" then
??? endif;
???
??? (9) &
??? 取 地址 符,與C語言用法類似。
???
??? (10) < , > , = , <= , >= , !=
??? 分別表示小于,大于,等于,小于等于,大于等于,不等于
???
??? (11) + , ^ , %
??? 用于字符串的操作。
???
??? (12) ->
??? 結構指針,與C語言中用法類似。
???
??? (13) @
??? 用于得到Resource窗口中 定義 的字符串,例:
??? szReferenceFile = svDir ^ @PRODUCT_KEY;
???
???
??? 3.函數
??? InstallShield的函數使用前同樣需要聲名,函數的 參數 傳遞方式十分類似C語言,例如下面的函數聲名:
??? prototype HandleMoveDataError( NUMBER );
???
該聲名中函數名為HandleMoveDataError,傳遞一個NUMBER類型的參數。調用該函數時也基本與C語言中相同。
函數體的標準格式為:
function function name(nResult)
// 函數變量聲名區
begin
// 程序區
end;
通常的函數返回一個NUMBER型的數。
4.主程序結構
主程序以program開始,以endprogram結尾,
二.框架程序的基本結構
程序開始為函數與變量的聲明區
通過向導建立的框架程序包含以下一些主函數:
??? prototype ShowDialogs();
??? // 顯示 安裝 向導 對話框
???
??? prototype MoveFileData();
??? // 移動 文件 數據
???
??? prototype HandleMoveDataError( NUMBER );
??? // 移動數據出錯處理
???
??? prototype ProcessBeforeDataMove();
??? // 移動文件數據前的處理
???
??? prototype ProcessAfterDataMove();
??? // 移動文件數據后的處理
???
??? prototype Setup Registry();
??? // 安裝注冊,用戶可在此加入一些代碼,通常用于對 注冊表 的操作
???
??? prototype SetupFolders();
??? // 安裝生成快捷方式,通常用戶可在此加入生成快捷方式的代碼
???
??? prototype CleanUpInstall();
??? // 安裝完成后清除臨時文件
???
??? prototype SetupInstall();
??? // 安裝的實際過程
???
??? prototype SetupScreen();
??? // 設置安裝過程的屏幕顯示(包括背景顏色,字體等)
???
??? prototype CheckRequirements();
??? // 檢查安裝需求(包括硬盤空間, 操作 系統 平臺等)
???
??? prototype DialogShowSdWelcome();
??? // 顯示“歡迎”對話框窗口
???
??? prototype DialogShowSdLicense();
??? // 顯示許可信息的對話框
???
??? prototype DialogShowSdRegisterUserEx();
??? // 顯示用戶安裝注冊的對話框
???
??? prototype DialogShowSdAskDestPath();
??? // 顯示“安裝路徑選擇”對話框
???
??? prototype DialogShowSdSetupType();
??? // 顯示“安裝類型選擇”對話框
???
??? prototype DialogShowSdComponentDialog2();
??? // 當用戶選擇“定制”安裝時,用于顯示供用戶選擇的組件的對話框
???
??? prototype DialogShowSdSelectFolder();
??? // 顯示快捷方式文件夾選擇的對話框
???
??? prototype DialogShowSdF ini shReboot();
??? // 顯示“安裝完成重啟動”對話框
編程實例:
1.怎樣在進度條左上角顯示當前安裝的文件
在function SetupScreen()中加入以下語句
??? Enable( INDVFILESTATUS );
???
2.怎樣改變窗口背景色
??? SetColor( BACKGROUND, **** )函數可以改變窗口背景色,在適當的位置加上它即可,其中第二個變量可以為以下值:
??? BK_BLUE BK_MAGENTA BK_PINK BK_YELLOW
??? BK_GREEN BK_ORANGE BK_RED
??? 以上幾種為漸變色
??? BK_SOLIDBLACK BK_SOLIDMAGENTA BK_SOLIDRED
??? BK_SOLIDBLUE BK_SOLIDORANGE BK_SOLIDWHITE
??? BK_SOLIDGREEN BK_SOLIDPINK BK_SOLIDYELLOW
??? 同時第二個參數也可以用RGB來描述,如SetColor( BACKGROUND, RGB(0,0,255) )
???
3.怎樣在InstallShield5.0以下版本建立快捷方式
在InstallShield5.1以上版本可以可以在Resource窗口中建立,而在以前的版本必須用程序解決該問題, 如果現在有一文件RegPad. exe (安裝路徑為用戶選定的),給該程序在“開始”->“程序”中加一個快捷方式,具體實現程序如下:
??? function SetupFolders()
??? NUMBER nResult;
??? STRING svResult,szCommand;
??? STRING szName;
???
??? begin
??? szName = "RegPad.exe";
??? szCommand = TARGETDIR ^ szName ;
??? LongPathToQuote ( szCommand , TRUE );
??? AddFolderIcon ( FOLDER_PROGRAMS^"RegPad1.0Beta","RegPad" ,
??? szCommand , TARGETDIR , "" , 0 ,"" , REPLACE );
???
4.怎樣控制用戶序列號
在向導生成的框架程序中,定義了一個STRING型的全局變量svSerial,在SdRegisterUserEx()結束時將給 該值賦上用戶輸入的序列號,你對該變量進行判斷即可。
???
5.怎樣控制重新啟動 計算機
只需加入以下語句
??? System ( SYS_BOOTWIN );
???
6.怎樣給Autoexec.bat或Config.sys加入語句
以下程序給Autoexec.bat加入一行語句
??? OpenFileMode ( FILE_MODE_APPEND );
??? OpenFile (nvFileHandle, "C://","Autoexec.bat");
??? WriteLine ( nvFileHandle , "SETPATH=%PATH%;C://ORAWIN95//BIN" );
???
7.怎樣在安裝結束時允許用戶選擇是否打開Readme文件
假定Readme. txt 文件已經復制到目標路徑,以下程序將顯示一個復選框,如果用戶選擇了,則用記事本打開Readme. txt
??? function DialogShowSdFinishReboot()
??? NUMBER nResult, nDefOptions;
??? STRING szTitle, szMsg1, szMsg2, szOption1,szOption2,szPathls;
??? NUMBER bOpt1, bOpt2;
???
??? begin
??? if (!BATCH_INSTALL) then
??? bOpt1 = TRUE;
??? bOpt2 = FALSE;
??? szMsg1 = "";
??? szMsg2 = "";
??? szOption1 = "閱讀Readme文件";
??? szOption2 = "";
??? nResult = SdFinish( szTitle, szMsg1, szMsg2,szOption1, szOption2, bOpt1, bOpt2 );
???
??? if bOpt1 = TRUE then
??? CopyFile ( "Readme.txt" ,"Readme.txt" );
??? LaunchApp ( WINDIR^"Notepad.exe" ,TARGETDIR^"Readme.txt" );
??? endif;
???
??? return 0;
??? endif;
??? ..........
???
8.如何指定默認路徑
在function SetupInstall()中修改以下代碼,如默認目錄改為C:/JttMis,見以下修改的代碼
??? if (bIs32BitSetup) then
??? svDir = WINDISK ^ "Jttmis";
??? else
??? svDir = WINDISK ^ "Jttmis"; // use shortnames
??? endif;
???
??? TARGETDIR = svDir;

InstallShield腳本語言的編寫參考


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 77奇米影视 | 欧美成人激情在线 | 久久国产乱子伦精品免费强 | 国产一起色一起爱 | 国内精品久久久久激情影院 | 香蕉观看在线视频成人 | 久久欧美精品欧美久久欧美 | 色婷婷中文字幕 | 中文字幕日韩精品中文区 | 99久久99久久精品免费看子 | 欧美成人一区二区三区在线视频 | 国产一级做a爱片久久毛片a | 波多野结衣一区二区三区高清在线 | 欧美成人免费mv在线播放 | 成人免费网站视频www | 99影视| 久久综合九色综合欧美狠狠 | 咪咪色综合 | 看全色黄大色大片免费久久久 | a毛片免费全部在线播放毛 a毛片免费在线观看 | 精品成人一区二区三区免费视频 | 免费香蕉一区二区在线观看 | 亚洲精品久久中文字幕 | 四虎在线影视在线影库 | 91精品国产高清91久久久久久 | 亚洲精品一区二区不卡 | 久久蝌蚪 | 亚洲一区精品中文字幕 | 亚洲乱码在线播放 | 久久99热精品免费观看k影院 | 99久久www免费人成精品 | 国产精品边做奶水狂喷小说 | 久久综合视频网 | 亚洲成人免费看 | 亚洲水蜜桃久久综合网站 | 成人免费视频网 | 天天爽夜夜爽视频 | 欧美精品国产一区二区 | 精品国产成人 | 激情五月综合婷婷 | 99综合色|