InstallShield內部庫函數之2 用戶界面函數

InstallShield內部庫函數之2  用戶界面函數
用戶界面函數允許用戶自定義特定的錯誤信息及錯誤框標題。然而,一些在安裝開發中遇到的內部錯誤信息是不能由用戶界面函數來修改的。這部分主要對用戶界面函數的語法、描述、參數等作詳細說明。
2.1  Disable函數
語法:Disable(nConstant)
說明:Disable函數使由參數nConstant指定的用戶界面對象或安裝特性無效。
參數:
nConstant
指定用戶界面對象或可操作特性使其無效,在這個參數位置傳遞下列預定義常量之一:
BACKBUTTON:使在一些內部對話框中顯示的Back按鈕無效(即使其變灰顯示),Back按鈕缺省置爲有效。
BACKGROUND:使安裝主背景窗口無效且隱藏。注意:當安裝處於全屏幕方式時該參數不起作用。
BILLBOARD:在安裝過程中取消佈告板的顯示。
DIALOGCACHE:使對話緩衝機制無效。有關對話緩衝的詳細說明,請參閱Enable。
HOURGLASS:使光標由一個"忙"光標(缺省爲沙漏光標)改變爲標準光標(缺省爲一個指針)。
INDVFILESTATUS:使路徑及文件名在文件傳輸時不顯示在進度指示器(狀態條)中。
LOGGING:不記錄卸載信息,使信息不記錄在卸載日誌文件中。注意:記錄功能由函數DeinstallStart自動置爲有效。在調用DeinstallStart之前置記錄卸載信息無效將不起任何作用,因爲當DeinstallStart被調用時,記錄功能將被自動激活,用戶必須就在不應被記錄的卸載操作執行之前手控禁止記錄。
NEXTBUTTON:使一些內部對話框的Next按鈕無效(使其變灰顯示)。Next按鈕缺省置爲有效。
SELFREGISTERBATCH:使註冊自注冊文件的批處理方法無效。詳細說明請參閱Enable。
SATAUS:使標準進展指示器(狀態條)無效且隱藏。
STATUSDLG:使對話框形式的進展指示器(狀態條)無效且隱藏。
STATUSEX:禁止以顯示安裝狀態對話框來取代進度指示器(狀態條)。
STATUSOLD:使原風格的進度指示器(狀態條)無效且隱藏。
返回值:
 0:說明函數成功禁止了由參數nConstant指定的用戶界面對象或安裝特性。
<0:說明函數未能禁止由參數nConstant指定的用戶界面對象或安裝特性。
註解:
·如果用戶的腳本中調用Disable函數來禁用Next或Back按鈕,那麼在函數被調用後的所有對話框中該按鈕均被禁用,爲激活Next或Back按鈕,用戶需帶相應的常量來調用Enable。
·DIALOGCACHE在沒有Next 或Back按鈕的對話框中不起作用。
2.2  Enable函數
語法:Enable (nConstant);
說明:Enable函數激活由參數nConstant指定的用戶界面對象或安裝特性。
參數:
nConstant
指定你要激活的用戶界面對象或操作特性。在該參數位置傳遞下列預定義常量之一:
BACKBUTTON:激活顯示在一些內部對話框中的Back按扭。缺省時Back按扭是被激活的,但可以通過調用Disable函數來禁用它。
BACKGROUND:當安裝是在窗口方式時,顯示安裝主背景窗口。當安裝是缺省的全屏幕方式時,該常量沒有作用。爲激活窗口方式,你必須以常量DEFWINDOWMODE或 FULLWINDOWMODE來調用Enable。
DEFWINDOWMODE:配置主背景窗口爲一個有標題欄的標準窗口。如果背景窗口被激活,它的外觀將會立即改變。如果背景窗口被禁用,屏幕不會被修改直到帶常量BACKGROUND調用Enable時。
DIALOGCACHE:激活對話框緩衝機制,它可以消除在顯示對話框之間出現的屏幕閃爍。這種屏幕閃爍在運行於窗口方式的安裝的標題欄中特別明顯。注意對話框緩衝機制僅工作於有BACK和NEXT按扭的對話框。缺省時對話框緩衝被禁用。
FULLWINDOWMODE:設置主背景窗口爲一個有標題欄的最大化窗口。如果背景窗口被激活,它的外觀將會立即改變。如果背景窗口被禁用,屏幕不會被修改直到帶常量BACKGROUND來調用Enable時。
HOURGLASS:使光標改變爲"忙"光標,缺省爲一個沙漏光標。
INDVFILESTATUS:當調用ComponentTransferData、 CopyFile、 或XcopyFile並且進度指示器被激活時,激活顯示每個文件的全限定名(在進度指示器的第二行中顯示)。注意,在一個運行基於事件的腳本的安裝程序中,ComponentTransferData被自動調用。
LOGGING:激活存入卸載記錄功能。當存入功能被激活時,InstallShield存入的卸載記錄的操作結果將被記錄在卸載日誌文件中,並將在卸載過程中被反向。自動調用DeinstallStart激活存入功能;因此,你不需要手動激活存入功能除非你先前用Disable函數禁用了它。
NEXTBUTTON:激活顯示在一些內部對話框中的Next按扭。Next 按扭缺省爲激活。
SELFREGISTERBATCH:激活註冊自注冊文件的批處理方法。該方法使用來避免和自注冊文件相關聯的依賴性問題。缺省爲標準(非批處理)自注冊。
    有關批處理方法的更多信息如下:
·在文件組窗格中,高亮顯示你的自注冊文件的文件組文件夾。它的屬性表在打開在右邊。
·雙擊Self-Registered域,則自注冊頁打開。
·選擇"Yes, all the files in this file group are self-registering"單選鈕。
·打開你的安裝腳本(在Scripts窗格中找到Setup.rul)。
` 在你傳輸文件前,以SELFREGISTERBATCH選項調用Enable函數。所有自注冊文件放在一個內部隊列中,也就是,當它們被安裝時它們會被立即註冊。(在一個使用基於事件腳本的安裝程序中,OnBegin處理程序被調用前,Enable(SELFREGISTERBATCH)會被自動調用。)
傳輸文件後,以SELFREGISTRATIONPROCESS選項調用Do函數。當你調用Do(SELFREGISTRATIONPROCESS)時,InstallShield註冊所有自注冊文件。如果當Do被調用時,系統變量BATCH_INSTALL等於TRUE(表明需要一個重啓來完成該安裝),則註冊自注冊文件被延遲到重啓後。
  在你調用Do(SELFREGISTRATIONPROCESS)後,你可以檢查自注冊是否成功。如果因任何原因Do失敗了,它會返回-1。那些自注冊失敗的文件的名稱被保存在系統變量ERRORFILENAME中,由一個分號分隔。
例如,下列代碼將所有自注冊文件註冊在文件媒體庫中。
// Enable batch method to queue self-registering files.
Enable ( SELFREGISTERBATCH );
// Install files.
nResult = ComponentTransferData( MEDIA );
// Register the files, check for errors.
if Do ( SELFREGISTRATIONPROCESS ) < 0 then
szMsg = "File(s) failed to self-register: /n" + ERRORFILENAME;
MessageBox (szMsg, WARNING);
endif;
STATUS:激活顯示標準進度指示器(狀態欄)。
STATUSDLG:激活顯示對話框風格的進度指示器(狀態欄)。
STATUSEX:激活顯示安裝狀態對話框來取代進度指示器(狀態欄)。
STATUSOLD:激活顯示舊風格進度指示器(狀態欄),它沒有一個 Cancel按扭。
返回值:
0:表明函數成功激活由參數nConstant指定的用戶界面對象或安裝特性。
< 0:表明函數未能激活由參數nConstant指定的用戶界面對象或安裝特性。
註解:
·缺省時,安裝運行在全屏方式;主背景窗口顯示爲一個沒有標題欄的全屏窗口。這種方式中,主安裝窗口不能被調整大小並且沒有一個可見的標題欄。爲激活窗口方式,你必須以常量DEFWINDOWMODE 或 FULLWINDOWMODE來調用Enable。
·如果你的腳本中調用Disable函數來禁用Next或Back按鈕,那麼在函數被調用後的所有對話框中該按鈕均被禁用,爲激活Next或Back按鈕,你需帶相應的常量來調用Enable。
·DIALOGCACHE在沒有Next 或Back按鈕的對話框中不起作用。
2.3  FindWindow
語法:FindWindow (szClassName, szWinName);
說明:FindWindow 函數通過指定一個窗口的窗口類和窗口名爲高級開發人員提供一個得到窗口句柄的方法。如果你知道了一個應用程序的窗口類和窗口名,就可得到它的句柄。然後你可以通過這個句柄直接發送信息給該窗口。
參數:
szClassName
指定窗口所屬類的名字。若指定爲"任意類",則在該參數處傳遞一個空字符串。
szWinName
指定窗口標題。爲返回指定類中最頂層窗口的句柄,在該參數處傳遞一個空字符串("")。
返回值:
XXXX:窗口的句柄。
NULL (0):FindWindow根據指定的窗口名和類名不能找到該窗口。
註解:
·要找到一個窗口的類和名字,可運行Microsoft Spy.exe程序。
2.4  PlaceBitmap
語法:PlaceBitmap (szName, nID_BITMAP, nDx, nDy, nDrawOp);
說明:PlaceBitmap函數在安裝窗口中插入一個圖象。圖象來源由szName指定,它可以是一個位圖文件(.bmp),圖元文件(.wmf),或者是動態鏈接庫(.dll)。InstallShield支持2色、16色、256色和真彩色位圖(bitmap)。2色、16色、256色位圖可有透明部分。
    透明位圖在顯示可與背景窗口組合顯示的圖象時有用。在位圖中與指定的透明色匹配的像素不會被顯示;在該位置的背景像素保持可見。在安裝中,一個有技巧的設計常常用包含有公司名稱和徽標的透明位圖來作爲安裝窗口的標題。
    爲指定一個透明位圖,你必須給參數nDrawOp位置傳遞一個常量BITMAPICON。你也必須考慮在一個位圖中什麼顏色被置爲透明。缺省的透明色是purple(RGB(255,0,255))。要指定一個不同的透明色,可用下面描述的參數szName來指定。
因爲圖元文件(metafile)是繪製的,而不是放置的,它們固有爲透明。如果BITMAPICON被指定爲一個圖元文件,則該參數被忽略。
    通過使用SetDisplayEffect函數可以顯示非透明位圖的許多特殊顯示效果。該函數也爲圖元文件提供了有限的顯示效果。
窗口中位圖的位置可以用兩種方法中的一種來指定:
·通過參數nDrawOp來傳遞位置常數。
·通過參數nDx與nDy來傳遞距安裝窗口邊緣的垂直和水平位移。
通常可通過調用PlaceBitmap(將參數nDrawOp設置爲REMOVE)來刪除任何不再需要的位圖文件和圖元文件。建議刪除不需要的位圖,即使該位圖可以被其他位圖完全覆蓋,因爲第一個位圖的調色板入口只有在位圖被刪除後纔會被釋放。
  一個真彩色位圖顯示在一個運行於16色或256色模式的系統上時,只用那些在調色板中有效的顏色;不會給位圖分配附加的顏色,即使附加調色板入口是有效的。若你希望含有24位位圖的安裝可在16色或256色的系統中運行,需要包含該位圖的16色或256色的版本。然後在選擇要顯示的位圖前帶參數COLORS調用GetSystemInfo來確定當前顏色模式。
參數:
szName
指定要被顯示圖象的位圖文件、圖元文件的全限定名或動態鏈接。InstallShield通過擴展名來識別位圖文件和圖元文件。位圖文件必須有擴展名.bmp,圖元文件必須有擴展名.wmf.動態鏈接必須有擴展名.dll。如果一個文件名指定爲沒有擴展名,InstallShield將假定其擴展名爲.dll。
  爲指定一個候選透明色,在文件名後放置一個分號(;),後隨一組RGB顏色值(RGB顏色由三個數值指定,由逗號分隔)。該顏色被用作由szName指定的位圖的透明色。注意它對於已經被顯示的位圖不起作用,也不會成爲隨後調用PlaceBitmap而顯示的位圖的缺省透明色。
下面的參數指定白色爲透明色:
SUPPORTDIR ^ "Bitmap.bmp;255,255,255"
當nDrawOptions設置爲 REMOVE時,該參數被忽略。
nID_BITMAP
指定駐留在一個.dll中的位圖的資源ID。如果位圖的源點是圖元文件或位圖文件,指定一個在當前顯示的圖象中沒有使用的數值;所有同時顯示的圖象必須有其唯一的ID號。當nDrawOptions設置爲REMOVE,該參數必須包含顯示的圖象的ID。
nDx
當nDrawOp設置爲LOWER_LEFT, LOWER_RIGHT, UPPER_LEFT, 或 UPPER_RIGHT時以像素點指定安裝窗口邊緣和圖象邊緣之間的水平距離;否則該參數被忽略。
nDy
當nDrawOp設置爲LOWER_LEFT, LOWER_RIGHT, UPPER_LEFT, 或 UPPER_RIGHT時以像素點指定安裝窗口邊緣和圖象邊緣之間的垂直距離;否則該參數被忽略。
nDrawOp
指定位圖放置的位置,設置放置選項,或者刪除先前放置的位圖。給該參數傳遞下列預定義好的常數:
BITMAPICON:指出位圖有透明部分。用戶可以用按位或運算符(|)來將該常量和其他常量(除TILED、FULLSCREEN或FULLSCREENSIZE外)組合。當BITMAPICON和那些常量之一組合時,按位或運算被忽略,而只使用BITMAPICON。
TILED:位圖在主安裝窗口平鋪。該常量通常被用來創建一個安裝背景。當該常量被指定時,即使位置選項被忽略,特殊效果已被SetDisplaytEffect激活,位圖仍正常顯示。
FULLSCREEN:拖拉圖象使其填充整個安裝窗口。拖拉時圖象不會被調整大小。如果一個位圖圖象比InstallShield主窗口小,它在窗口中被置中,背景由當前背景色填充。缺省值爲深青色(teal);可以通過使用SetColor函數來改變。當這個常量被指定時,位置選項被忽略,即使一個特殊效果已經被SetDisplayEffect激活,位圖仍正常顯示。
FULLSCREENSIZE:拖拉和伸展圖象使其填充滿整個安裝窗口。當這個常量被指定時,位置選項被忽略,即使一個特殊效果已經被SetDisplayEffect激活,位圖仍正常顯示。
CENTERED:將位圖置於InstallShield安裝窗口的中央。
LOWER_LEFT:將位圖置於InstallShield安裝窗口的左下角。
LOWER_RIGHT:將位圖置於InstallShield安裝窗口的右下角。
UPPER_LEFT:將位圖置於InstallShield安裝窗口的左上角。
UPPER_RIGHT:將位圖置於InstallShield安裝窗口的右上角。
REMOVE:刪除一個先前放置的位圖或圖元。任何由SetDisplayEffect激活的特殊效果被忽略。
返回值:
0:表明函數成功找到和放置圖象。
< 0:表明函數未能找到或放置圖象。
註解:
·調用SetDisplayEffect來爲非平鋪、全屏幕、透明位圖設置特殊效果;用戶也可以用它爲圖元設置有限的特殊效果。
·InstallShield不支持24位透明位圖。如果用戶在一個24位位圖中包含了透明色而且指定了BITMAPICON常量,該顏色將被正常顯示。
·當你在運行256色模式的系統中放置一個256色的位圖時,InstallShield將試圖分配位圖的調色板到系統調色板。如果多個256色位圖被放置,InstallShield將試圖將所有可視位圖的調色板合併到系統調色板,優先爲最近放置的位圖。這種行爲可能導致在其他位圖被顯示時先前放置的位圖改變顏色。
·在一個運行在有256色抖動背景的256色模式的系統中,含有許多顏色的位圖可能導致一些給背景使用的調色板入口被重新分配;這可引起在背景中出現一種梯度效果。如果安裝中包含了使用多種顏色的位圖,則當它們運行在256色系統中時應不要使用256色抖動背景。
·系統調色板僅存在於運行在256色模式的系統中。運行在windows 95和其後高彩色或者真彩色模式下的系統及運行在65525(16位)色模式Windows NT下的系統中都沒有系統調色板。這些系統中不用考慮調色板句柄問題。顏色使用RGB值來直接顯示。
·因爲圖元文件是被着色的,它們不包括一個自定義調色板。當一個圖元文件在一個256色系統中顯示時,不發生調色板處理;圖元文件是用當前調色板中有用的顏色繪製而成。由此,若要運行在256色系統中,用戶在安裝程序中不應該使用顯示顏色不同於標準16色的圖元文件。
2.5  PlaceWindow
語法:PlaceWindow (nObject, nDx, nDy, nCorner);
說明:PlaceWindow函數改變用戶界面對象的位置,包括布告牌。用nDx和nDy指定對象的邊與屏幕邊緣的距離。
參數:
nObject
指定要被改變位置的對象。在該參數位置傳遞下列預定義的常量之一:
BACKGROUND:移動背景窗口。
BILLBOARD:設置在文件傳輸過程中使用的布告牌的位置。
MMEDIA_AVI:設置要播放的下一個AVI文件的窗口位置。缺省時,AVI文件將在InstallShield客戶窗口的左邊位置窗口中播放,從左起10個像素點,從上起10個像素點。
STATUS:移動進度指示器。
STATUSDLG:移動對話框風格的進度指示器。
STATUSEX:移動安裝狀態對話框。
STATUSOLD:移動舊風格的進度指示器。
當你調用PlaceWindow來移動進度指示器或者狀態對話框時,確信爲你在安裝中激活的反饋對象傳遞了正確常量。例如,如果你調用了Enable(STATUSOLD),則你必須傳遞STATUSOLD給PlaceWindow。
nDx
以像素點指定對象的邊與屏幕邊緣之間的水平距離。
nDy
以像素點指定對象的邊與屏幕邊緣之間的垂直距離。
nCorner
指定用nDx和nDy表示的距離是從哪個角度量所得。在該參數位置傳遞下列預定義的常量之一:
LOWER_LEFT:從InstallShield主窗口的左邊度量得nDx,從底端度量得nDy。
LOWER_RIGHT:從InstallShield主窗口的右邊度量得nDx,從底端度量得nDy。
UPPER_LEFT:從InstallShield主窗口的左邊度量得nDx,從頂端度量得nDy。
UPPER_RIGHT:從InstallShield主窗口的右邊度量得nDx,從頂端度量得nDy。
返回值:
0:表明函數成功改變了對象的位置。
< 0:表明函數未能改變對象的位置。
註解:
·使用該函數時要意識到一個安裝程序要運行在不同的屏幕分辨率下。你在放置對象前可能要確定屏幕範圍。距離以像素點度量,是對象邊緣與指定的屏幕角落邊緣之間的距離。
·用戶不能用該函數定位消息框,因爲消息框是由本機的Windows/PM API創建。一個消息框的位置由Windows/PM確定,而不是在InstallShield控制之下。另外,用戶不能用該函數定位一個自定義對話框。
2.6  PlayMMedia
語法:PlayMMedia (nType, szFileName, nOperation, nReserved);
說明: PlayMMedia函數播放一個聲音或AVI文件。MIDI或WAVE類型的聲音文件和AVI(視頻)文件既可以以同步方式也可以以異步方式播放。該函數也可以被用來連續播放一個文件。爲了實現這個目的,一個標誌可被按位或,來指示該文件以連續方式被播放。
    由於 AVI文件早被壓縮而且往往大於1.4MB的軟盤,因此,視頻顯示推薦於光盤安裝。
參數:
nType
指定文件類型。在該參數位置傳遞下列預定義的常量之一:
MMEDIA_WAVE:文件是WAVE聲音格式。
MMEDIA_MIDI:文件是MIDI聲音格式。
MMEDIA_AVI:文件是一個AVI文件。
szFileName
指定要播放的聲音/AVI文件的全限定名。
nOperation
指定播放方式。在該參數位置傳遞下列預定義的常量:
MMEDIA_PLAYSYNCH:同步播放。
MMEDIA_PLAYASYNCH:異步播放。該常量可以用或運算符(|)與MMEDIA_PLAYCONTINUOUS組合使用。
MMEDIA_PLAYCONTINUOUS:連續循環播放。當以同步方式播放一個聲音/AVI文件時不能使用該值。它只使用於以異步方式播放的文件。用或運算符(|)將它與MMEDIA_PLAYASYNCH組合使用。
MMEDIA_STOP:停止播放。
nReserved
給該參數傳遞0值,不允許其他值。
返回值:
0:表明函數成功播放文件。
< 0:表明函數不能播放文件。
2.7  RGB
語法:RGB (constRed, constGreen, constBlue);
說明:RGB函數創建一個自定義顏色值,該顏色可被SetColor和SetTitle使用。
參數:
constRed
指定一個數值型常數,值域爲0..255,指示在自定義色中紅色的數量。
constGreen
指定一個數值型常數,值域爲0..255,指示在自定義色中綠色的數量。
constBlue
指定一個數值型常數,值域爲0..255,指示在自定義色中藍色的數量。
返回值:
該函數返回一個調用SetColor和SetTitle時可被使用的自定義顏色的數值。
2.8  SetColor
語法:SetColor (nObject, nColor);
說明:SetColor函數設置主安裝窗口的背景色。
參數:
nObject
指定要改變的用戶界面對象。在該參數位置傳遞下列預定義的常量:
BACKGROUND
指示安裝窗口的背景。缺省顏色爲純深青色(solid teal):RGB(0,128,128)。
nColor
爲背景指定一種顏色。
對於一種過渡背景色,可傳遞下列常量之一:
BK_BLUE、BK_GREEN、BK_MAGENTA、BK_ORANGE
BK_PINK、BK_RED、BK_YELLOW 
對於一種純背景色,可傳遞下列常量之一:
BK_SOLIDBLACK、BK_SOLIDBLUE、BK_SOLIDGREEN、BK_SOLIDMAGENTA
BK_SOLIDORANGE、BK_SOLIDPINK、BK_SOLIDRED、BK_SOLIDWHITE
BK_SOLIDYELLOW
對於一種自定義顏色,可在該參數位置傳遞RGB函數。
爲了在使用自定義顏色繪製背景時得到光滑的效果(過渡),可將該顏色與預定義常量BK_SMOOTH按位或。注意當256色有效時光滑效果將更好。
返回值:
0:表明函數成功設置對象的顏色。
< 0:表明函數未能設置用戶界面對象的顏色。
註解:
·當使用一個RGB值時,你可以應用Microsoft Windows的編程指南中描述的相同的方法。
你可以指定RED、GREEN、BLUE顏色的混合來"混合"顏色。用從0到255的數之一來表示使用顏色的數量。在RGB宏中的參數必須使用字面數值。你可以使用一個表示RGB顏色的長整型數來代替RGB語句。
2.9  SetDialogTitle
語法:SetDialogTitle (nDialogId, szTitle);
說明:SetDialogTitle函數改變顯示在一些公用內部對話框標題欄的標題。用參數nDialogId指定對話框。如果你不使用SetDialogTitle,InstallShield顯示缺省標題。一旦你爲某一特定對話框設置了標題,除非你再次使用SetDialogTitle改變標題,否則InstallShield在每一個該類型對話框的實例中都使用該標題。
參數:
nDialogId
標識標題要被改變的內部對話框。在該參數位置傳遞下列預定義常量之一:
DLG_ASK_OPTIONS:改變AskOptions對話框標題。
DLG_ASK_PATH:改變AskPath對話框標題。
DLG_ASK_TEXT:改變AskText對話框標題。
DLG_ASK_YESNO:改變AskYesNo對話框標題。
DLG_ENTER_DISK:改變EnterDisk對話框標題。
DLG_MSG_INFORMATION:改變信息風格的消息框的標題。
DLG_MSG_SEVERE:改變嚴重警告風格的消息框的標題。
DLG_STATUS:改變對話風格進度指示器的標題。在帶DLG_STATUS選項調用SetDialogTitle後,爲了使標題修改有效,你必須通過調用Enable(STATUSDLG)來重新激活該對話風格進度指示器。
DLG_MSG_WARNING:改變警告風格的消息框的標題。
DLG_USER_CAPTION:當你使用用戶定義的消息框風格時改變消息框的標題。
szTitle
指定新標題。
返回值:
0:表明函數成功修改了對話框標題。
< 0:表明函數未能修改對話框標題。
註解:
·你必須爲每種你希望修改其標題的對話框分別調用SetDialogTitle。
·InstallShield使用標準Windows消息框函數創建消息框。Windows爲這些消息框確定Ok和Cancel按扭文字。InstallShield不能控制在Windows 消息框中使用的按扭文字。
2.10  SetDisplayEffect
語法:SetDisplayEffect (nEffect);
說明:SetDisplayEffect函數指定用PlaceBitmap函數顯示位圖文件或圖元文件時使用的顯示效果。一旦顯示效果被設定,所有隨後由PlaceBitmap顯示的位圖文件將一直使用該效果顯示,直到另一個對SetDisplayEffect的調用來設定一個新的顯示效果。
參數:
nEffect
指定一個顯示效果。在該參數位置傳遞下列預定義的常量之一。注意這些常量具有互斥性;它們相互之間不能使用按位或。而且,當用PlaceBitmap顯示一個位圖文件時指定了BITMAPICON、 FULLSCREEN、 FULLSCREENSIZE或 TILED時該參數無效:
EFF_FADE:位圖或布告牌淡入淡出。
EFF_REVEAL:位圖或布告牌逐漸從中央向四周填充。
EFF_HORZREVEAL:位圖或布告牌從它的中央逐漸水平滾動出來。
EFF_HORZSTRIPE:位圖或布告牌的一部分從外往裏水平填充,然後剩餘部分從中央部分往外填充。
EFF_VERTSTRIPE:位圖或布告牌的一部分從外往裏垂直填充,然後剩餘部分從中央部分往外填充。
EFF_BOXSTRIPE:位圖或布告牌的一部分從四周向裏填充,剩餘部分向四周填充。
EFF_NONE:該選項是缺省設置。使用它來清除調用其它任一選項後的顯示效果。
只有EFF_REVEAL和EFF_HORZREVEAL可用於圖元文件。
返回值:
0:表明函數成功設置顯示效果。
< 0:表明函數未能設置顯示效果。
註解:
·當位圖是由PlaceBitmap帶選項BITMAPICON、FULLSCREEN、FULLSCREENSIZE或TILED顯示時,該位圖不會按顯示效果顯示,而是正常顯示。更多的信息可查閱PlaceBitmap。
·顯示效果僅當放置位圖時出現,當刪除位圖時不能使用顯示效果。
·只有展示(EFF_REVEAL)和水平展示(EFF_HORZREVEAL)效果可用於圖元文件。
2.11  SetErrorMsg
語法:SetErrorMsg (nErrorID, szText);
說明:SetErrorMsg函數定製InstallShield缺省錯誤信息。你可以使用該函數來指定顯示這些錯誤信息的消息框的標題文本。
參數:
nErrorID
指定要替換的錯誤信息。在該參數位置傳遞下列預定義的常量之一:
ERR_BOX_BADPATH:當EnterDisk檢測到一個由用戶輸入的錯誤路徑時顯示該信息。
ERR_BOX_BADTAGFILE:當EnterDisk檢測到指定的標籤文件不存在於磁盤上時顯示該信息。
ERR_BOX_DISKID:當EnterDisk檢測到由用戶指定的驅動器不存在時顯示該信息。
ERR_BOX_DRIVEOPEN:當EnterDisk檢測到磁盤驅動器未關閉時顯示該信息。
szText
指定要在消息框中顯示的錯誤信息。
返回值:
0:表明函數成功改變錯誤信息。
< 0:
表明函數未能改變錯誤信息。
2.12   SetErrorTitle
語法:SetErrorTitle (nErrorID, szText);
說明:SerErrorTitle函數指定InstallShield內部錯誤消息框標題欄的自定義文本。你可以使用該函數來自定義錯誤消息文本。
參數:
nErrorID
指定標題要被替換的錯誤消息框。在該參數位置傳遞下列預定義的常量之一:
ERR_BOX_BADPATH:當EnterDisk檢測到錯誤路徑時顯示該消息。
ERR_BOX_BADTAGFILE:當EnterDisk檢測到指定的標籤文件不存在於磁盤上時顯示該消息。
ERR_BOX_DISKID:當EnterDisk檢測到指定的驅動器不存在時顯示該消息。
ERR_BOX_DRIVEOPEN:當EnterDisk檢測到磁盤驅動器未關閉時顯示該消息。
szText
指定顯示在錯誤消息框中的標題。
返回值:
0:表明函數成功修改了標題欄的文本。
< 0:表明函數未能修改標題欄的文本。
2.13  SetFont
語法:SetFont (nItemID, nFontStyle, szFontName);
說明:SetFont函數設置顯示的正文串的字體和風格。你可以在該函數使用標準Windows
      字體。
參數:
nItemID
指定其字體和字體風格要被設置的項。在該參數位置傳遞下列預定義的常量:
FONT_TITLE:指定安裝過程的主標題,該主標題顯示在安裝窗口的左上角。
nFontStyle
指定字體風格。在該參數位置傳遞下列預定義的一個或多個常量。除STYLE_NORMAL之外的所有常量可以用按位或來指定多種風格:
STYLE_NORMAL:沒有加粗、傾斜或陰影(不能被按位或)。
STYLE_BOLD:字體加粗。
STYLE_ITALIC:字體傾斜。
STYLE_SHADOW:字體有陰影底紋。
STYLE_UNDERLINE:加下劃線。
szFontName
指定一個有效的Windows字體的名稱。有效的字體名稱包括Courier, Helv, Helvetica, Modern, Roman, Script, Terminal, Times 和TmsRmn。如果指定的字體沒有找到指定的風格,就使用Arial。
返回值:
0:表明函數成功設置字體。
< 0:表明函數未能設置字體。
2.14  SetStatusWindow
語法:SetStatusWindow (nPercent, szString);
說明:SetStatusWindows函數爲進度指示器(狀態條)設置完成指示器的百分比的初始值或當前值,並指定在進度指示器(狀態條)最高行顯示的當前消息。
  通過調用ComponentTransferData或ComponentMoveData來傳輸文件的安裝必須在文件傳輸開始之前調用SetStatusWindows,這是爲了設置完成指示器百分比爲0%而且清除指示器最高行。不再需要另外調用SetStatusWindows。每一個組件的文件被裝入時,該組件的 '狀態文本'字符串會在狀態條最高行自動顯示。
  使用CopyeFile或XcopyFile函數裝入文件的安裝程序在相繼調用CopyFile或XcopyFile之間,可能需要多次調用SetStatusWindows來改變指示器最高行的信息。
  在傳輸文件前,你的安裝程序還應該調用StatusUpdate函數激活文件傳輸過程中百分比完成指示器的自動更新。爲了使得在狀態條第二行顯示正被安裝文件的名稱和路徑,需在傳輸文件前帶參數INDVFILESTATUS來調用Enable函數。在這些調用後,百分比完成指示器在文件傳輸過程中被平滑更新,每個文件的文件名在被傳輸時將顯示。
參數:
nPercent
指定0到100之間的一個數值來表示百分比完成指示器顯示的百分比。若要改變顯示在狀態條最高行的信息而不改變百分比完成指示器,則指定該參數爲-1。
szString
指定顯示在狀態條最高行的字符串。注意如果一個'DisplayText'參數已被指定給該組件(在IDE中),那麼當調用ComponentTransferData時該字符串將自動改寫任何該參數指定的文本。
返回值:該函數沒有返回值。
2.15  SetTitle
語法:SetTitle (szTitle, nPointSize, nColor);
說明:SetTitle函數根據nColor的值在主窗口標題欄或在主窗口內顯示一個標題。
參數:
szTitle
指定在主窗口標題欄或主窗口內顯示的一個標題。如果標題要顯示在窗口的標題欄,你必須在第三個參數位置指定預定義常量BACKGROUNDCAPTION。如果一個標題欄的標題不符合可用空間,那將被從右截尾並以省略號終止。缺省標題欄標題爲"安裝"。
當給第三個參數傳遞一個顏色值時,標題在主窗口的頂端左對齊顯示。相對主窗口太寬的標題將被從右截尾顯示。爲創建一個佔據多行的標題,可在你希望的行斷開處嵌入換行符。
nPointSize
以點數來指定一個在主窗口顯示的標題的字號。建議字號爲24點數。注意當第三個參數爲BACKGROUNDCAPTION時該參數被忽略。
nColor
指定一個顏色或預定義常量BACKGROUNDCAPION。爲指示szTitle值應該在主窗口標題欄顯示,則在該參數位置傳遞預定義的常量BACKGROUNDCAPTION。當用戶指定了BACKGROUNDCAPTION,nPointSize被忽略;標題欄標題的顏色和字號將由最終用戶的系統設置決定。注意該選項在不運行在窗口模式的安裝程序中無效;請查看下面的註解。
爲指示szTitle值應該在主窗口中顯示,通過在該參數位置傳遞下列預定義的常量之一來指定該標題的顏色:BLACK,BLUE,GREEN,MAGENTA,RED,YELLOW或WHITE。用戶也可以在該參數位置傳遞RGB函數來指定自定義顏色,如下面例子所示:
   SetTitle("FantasticApp", 24, RGB(78, 125, 161));
返回值:
0:表明函數成功設置安裝的標題。
< 0:表明函數未能設置安裝的標題。
註解:
·不運行於窗口模式下的安裝中,第三個參數設置爲BACKGROUNDCAPTION時調用SetTitle無效。爲在一個標準窗口中運行安裝程序,你必須首先以參數DEFWINDOWMODE或FULLWINDOWMODE來調用Enable,然後以參數BACKGROUND調用Enable來顯示窗口。
·用SetColor來設置你安裝的背景色。
·用SetFont來設置在背景窗口中顯示的標題的字體和字體風格。
2.16  SizeWindow
語法:SizeWindow (nObject, nDx, nDy);
說明:使用SizeWindow函數來改變一個特定用戶界面元件的大小。以像素點來指定新的
  大小。
參數:
nObject
指定要調整大小的對象。在該參數位置傳遞下列預定義的常量之一:
BACKGROUND:標識爲主背景窗口。
METAFILE:標識爲在文件傳輸過程中使用的布告牌。SizeWindow不支持位圖文件(.bmp)。該參數對用SdBitmap函數顯示的圖元文件不起任何作用。SdBitmap自動調整被顯示的圖元文件的大小。
MMEDIA_AVI:設置播放下一個AVI文件的窗口的大小。所有AVI視頻以一個缺省大小來顯示。改變大小可能會改變視頻的有效分辨率和明快度。
nDx
以像素點指定對象的水平大小。
nDy
以像素點指定對象的垂直大小。
返回值:
0:表明函數成功調整窗口大小。
< 0:表明函數未能調整窗口大小。
註解:
·安裝程序可能運行於多個不同的屏幕分辨率下。因此,你需要使用GetExtents函數來確定屏幕的全屏大小,然後在你的SizeWindows函數調用中參數使用比率來指定用戶界面對象的大小。
·該函數僅推薦給高級開發人員。
2.17  StatusUpdate
語法:StatusUpdate (bLink, nFinalPercent);
說明:StatusUpdate函數激活或禁用文件傳輸操作和狀態條進度指示器之間的連接。當bLink是ON,連接被激活並且nFinalPercent指示一個在下一個文件傳輸結束時顯示的最後百分比。在文件傳輸過程中,狀態條平滑地從它的當前值更新到由nFinalPercent指定的值。當bLink是OFF,連接被禁用並且狀態條的進度指示器在隨後的文件傳輸中不會被自動更新。
如果文件傳輸中狀態條被激活,則在每次調用CopyFile 或 XcopyFile之前調用StatusUpdate。在調用ComponentTransferData傳輸文件之前,帶參數爲ON和100來調用StatusUpdate;這將使狀態條在安裝的文件傳輸階段平滑更新到100%。注意在一個運行基於事件腳本的安裝中,ComponentTransferData被自動調用。
參數:
bLink
指定是否激活或禁用文件傳輸操作和狀態條進度指示器之間的連接。在該參數位置傳遞下列預定義常量之一:
ON:指定狀態條的進度指示器必須和文件傳輸操作相連接。
OFF:指定禁用狀態條的進度指示器和文件傳輸操作之間的連接。連接保持爲禁用直到它通過一個隨後對StatusUpdate帶參數bLink爲ON的調用而得到重新建立。
狀態條可以通過調用SetStatusWindow而被手動更新。
nFinalPercent
指定當bLink爲ON時,狀態條的進度指示器在下一個文件傳輸操作結束時必須達到的最後百分比。如果傳遞給nFinalPercent的值小於狀態條的進度指示器的當前值,則進度指示器不會改變。當bLink爲OFF時,該參數被忽略。
返回值:
0:表明函數成功。
< 0:表明函數不成功。
註解:
·該函數通過計算由任何文件傳輸函數傳遞的總的字節數來工作。然後它計算從進度指示器的當前位置開始到nFinalPercent中的最大值,需每隔多久增加一次進度指示器。
·StatusUpdate函數不能和VerUpdateFile 、VerSearchAndUpdateFile一起工作。當調用那些函數時,你必須禁用狀態條或手動更新它。
·爲設置狀態條到一個初始百分比,在調用StatusUpdate之前調用SetStatusWindow。
發佈了23 篇原創文章 · 獲贊 0 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章