天天看點

Inno Setup 系統托盤圖示插件 TrayIconCtrl V1.5

Inno Setup 系統托盤圖示插件 TrayIconCtrl V1.5

V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常運作的問題。

Inno Setup 系統托盤圖示插件 TrayIconCtrl V1.5

 引用來自 trayiconctrl.iss,2009-10-16 21:06:53

; -- trayiconctrl.iss --

; restools

; 這個托盤圖示插件擁有目前 windows 系統托盤圖示擁有的一切特性.

; 可以說你們看見過的,沒看見過的托盤圖示效果在這裡都已經展現了出來

; 這是我目前所做的最複雜的一個插件, 希望大家喜歡

[Files]

Source: "plugin\trayiconctrl.dll"; Flags: dontcopy

[code]

const

  NIIF_NONE = 0;

  NIIF_INFO = $1;

  NIIF_WARNING = $2;

  NIIF_ERROR = $3;

type

// 如果你想傳遞更多的圖示給插件,可以增加更多的 Icon 成員。

  TIconList = record

    Icon1: UINT;

    Icon2: UINT;

    Icon3: UINT;

    Icon4: UINT;

    // Icon5, Icon6 etc.

    // More...

  end;

// 回調函數參數格式聲明

  TMenuItemClickProc = procedure(MenuIndex: Integer);

  TMenuPopupProc = procedure(PopMenu: LongWord; var bShow: Boolean);

  TTrayIconMsgFunc = function(wParam, lParam: LongWord): Boolean;

// 初始化 TrayIcon 插件

function InitTrayIconCtrl(MainForm_Handle, WizardForm_Handle: THandle; uCallbackMessage: UINT;

     szToolTip: String; icon: UINT; bHidden: BOOL; ShowTaskbarAppBtn: BOOL; MenuItems: String;

     DefaultMnuIndex: Integer; MenuItemOnClickCallBack: TMenuItemClickProc;

     MenuOnPopupCallBack: TMenuPopupProc; TrayIconMsgCallBack: TTrayIconMsgFunc): Boolean;

#ifdef UNICODE

     external 'InitTrayIconCtrlW@files:trayiconctrl.dll stdcall';

#else

     external 'InitTrayIconCtrlA@files:trayiconctrl.dll stdcall';

#endif

// MainForm_Handle : MainForm.Handle

// WizardForm_Handle : WizardForm.Handle

// uCallbackMessage : 消息标志

// szToolTip : TrayIcon 的 ToolTip 提示, win9x: 64 字元限制, win2000 以上: 128 字元限制

// icon : 顯示的 Icon 的句柄. 如果設為 0 的時候預設使用安裝程式的圖示

// bHidden : 是否立即顯示 TrayIcon, 不需要由 ShowIcon 來顯示

// ShowTaskbarAppBtn : 是否顯示安裝程式在工作列中的按鈕

// MenuItems : 所有菜單項的 Caption, 用 ";" 分隔, 如果要顯示 ";" 用 "#3B" 代替, 設定為空字元串将會禁止菜單顯示, 同時菜單回調函數也被忽略

// DefaultMnuIndex : 預設菜單項, 當預設菜單項不是 -1 的時候, 輕按兩下 TrayIcon 的時候事件由使用者設計,實際上就是輕按兩下的時候執行 MenuItemOnClickCallBack 某個指定的菜單單擊事件

// MenuItemOnClickCallBack : TrayIcon 右鍵菜單點選事件控制

// MenuOnPopupCallBack : TrayIcon 右鍵菜單彈出前觸發的回調事件

// TrayIconMsgCallBack : 自定義消息事件,可以實作更豐富的控制

// 解除安裝 TrayIcon 插件

function UninitTrayIconCtrl(): Boolean; external 'UninitTrayIconCtrl@files:trayiconctrl.dll stdcall';

// 隐藏 托盤圖示

function HideTrayIcon(): Boolean; external 'HideTrayIcon@files:trayiconctrl.dll stdcall';

// 顯示 托盤圖示

function ShowTrayIcon(): Boolean; external 'ShowTrayIcon@files:trayiconctrl.dll stdcall';

// 為顯示動态圖示而為插件添加一組 圖示 列。

function SetIconList(pHIconList: TIconList; nNumIcons: UINT): Boolean; external'SetIconList@files:trayiconctrl.dll stdcall';

// pHIconList : 圖示組

// nNumIcons : 要添加多少個圖示

// 顯示動态圖示動畫

function AnimateTrayIcon(nDelayMilliSeconds: UINT; nNumSeconds: Integer): Boolean;

     external 'AnimateTrayIcon@files:trayiconctrl.dll stdcall';

// nDelayMilliSeconds : 每個圖示顯示間隔時間, 這将影響動态速度

// nNumSeconds : 循環顯示時間(秒數), 當這裡設定為 -1 時, 将會無限時間循環

// 停止動态圖示動畫

function StopAnimation(): Boolean; external 'StopAnimation@files:trayiconctrl.dll stdcall';

// 把 WizardForm 最小化到托盤圖示, 或者還原出現

function ToggleWizardVisible(): Boolean; external 'ToggleWizardVisible@files:trayiconctrl.dll stdcall';

// 顯示漫畫型氣泡提示, 這個函數隻能對 Windows 2000 以上系統有作用

function ShowBalloon(szText, szTitle: String; dwIcon: DWORD; uTimeout: UINT; bWaitforPreMsg: Boolean): Boolean; 

     external 'ShowBalloonW@files:trayiconctrl.dll stdcall';

     external 'ShowBalloonA@files:trayiconctrl.dll stdcall';

// szText : 提示資訊, 256 字元限制

// szTitle : 提示資訊标題, 64 字元限制

// dwIcon : 提示資訊中帶有的圖示

//    NIIF_NONE = 0x00000000;     無圖示

//    NIIF_INFO = 0x00000001;     資訊圖示

//    NIIF_WARNING = 0x00000002;  警告圖示

//    NIIF_ERROR = 0x00000003;    錯誤圖示

// uTimeout : 停留的時間 範圍: 10 ~ 30 秒. 如果無任何滑鼠動作時, 系統自動維持 60 秒

// bWaitforPreMsg : 在 Win2000 中, 預設是要前一個消息消失後才會顯示後一個消息, 這裡設定為 False 的時候就直接替換前一個消息

// 隐藏漫畫型氣泡提示, 這個函數隻能對 Windows 2000 以上系統有作用

function HideBalloon(): Boolean; external 'HideBalloon@files:trayiconctrl.dll stdcall';

// WizardForm 是否已被最小化到系統托盤區

function WizardFormInTray(): Boolean; external 'WizardFormInTray@files:trayiconctrl.dll stdcall';

// 重新設定托盤圖示插件的提示标簽和圖示

function SetTrayIcon(szToolTip: String; icon: UINT): Boolean;

     external 'SetTrayIconW@files:trayiconctrl.dll stdcall';

     external 'SetTrayIconA@files:trayiconctrl.dll stdcall';

點選下面連接配接下載下傳例子。

<a href="http://restools.hanzify.org/inno/trayiconctrl/IS_TrayIconCtrl_V1.5.zip" target="_blank">http://restools.hanzify.org/inno/trayiconctrl/IS_TrayIconCtrl_V1.5.zip</a>

繼續閱讀