V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常運作的問題。
引用來自 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>