原文 http://restools.hanzify.org/article.asp?id=93

V1.5 修正在某些 Windows 平台上(例如 Windows XP SP3)不能正常运行的问题。

 引用来自 trayiconctrl.iss,2009-10-16 21:06:53
; -- trayiconctrl.iss --
; restools
http://restools.hanzify.org
; TrayIconCtrl.dll 为一个用于Inno Setup的 15.5 KB 的 托盘图标插件.
; 这个托盘图标插件拥有目前 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; 
#ifdef UNICODE
     external 'ShowBalloonW@files:trayiconctrl.dll stdcall';
#else
     external 'ShowBalloonA@files:trayiconctrl.dll stdcall';
#endif
// 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;
#ifdef UNICODE
     external 'SetTrayIconW@files:trayiconctrl.dll stdcall';
#else
     external 'SetTrayIconA@files:trayiconctrl.dll stdcall';
#endif

点击下面连接下载例子。
http://restools.hanzify.org/inno/trayiconctrl/IS_TrayIconCtrl_V1.5.zip

Inno Setup 系统托盘图标插件 TrayIconCtrl V1.5的更多相关文章

  1. Inno Setup 网页显示插件 webctrl (V2.1 版本)

    原文 http://restools.hanzify.org/article.asp?id=90 Inno Setup网页显示插件 webctrl能够显示所有 IE 中能够显示的东西.  引用内容 ; ...

  2. Inno Setup 网页显示插件 webctrl

    原文:Inno Setup 网页显示插件 webctrl ; -- Example.iss -- ; restools ; http://restools.hanzify.org ; 插件名:webc ...

  3. Inno Setup 精灵显示插件 InnoFairy (V2.0 版本)

    原文 http://restools.hanzify.org/article.asp?id=111 一个如影随形的小精灵会令到你的安装程序更加人性化. 就是这样一个功能的Inno Setup插件, 希 ...

  4. Inno Setup GIF 显示插件 GIFCtrl (V2.1 版本)

    原文 http://restools.hanzify.org/article.asp?id=79  引用来自 test.iss ; -- test.iss --; restools; http://r ...

  5. Inno Setup 插件 CallbackCtrl V1.1 (回调函数插件)

    原文 http://restools.hanzify.org/article.asp?id=101 VC 重现 InnoCallback 的功能. Version 1.1修正在某些 Windows 平 ...

  6. Inno Setup 插件大全

    Inno Setup 插件大全     这是我收集到的目前网上最全的插件之一,里面的每个插件,都有详细的脚本示例来讲解该插件的具体用法.另外,下载了我公开的脚本的朋友,也有可能会被提示缺少文件,如果缺 ...

  7. 解决Inno Setup制作中文安装包在非中文系统上显示乱码的问题

    尼玛,好几个月没更新了.囧... 目前我司新的客户端开发已经接近尾声,该改的bug已经改完,该重构的地方也都差不多了.视觉效果也已经根据美工的样式改完了.所以,就差制作安装包了.正所谓万事俱备,只欠东 ...

  8. 20181017 work - Inno Setup 禅道 xp系统 楷体字体 win10倒计时 nwjs chosen

    win10 闹钟和时钟 用个倒计时 Inno Setup 编译器 把应用程序打包成安装程序 nwjs-v0.14.7-win-ia32 XP专用 chrome用的49的版本 作用是把浏览器地址的程序打 ...

  9. [Inno Setup]写入注册表时32位系统和64位系统的路由

    昨天下午组内一位同事跟说,他想在Inno Setup的安装包中写入一个注册表.目标位置是HKLM:\Software\下面创建自己的注册表项.然后说尝试了好几次都不行, 但是往HKCU下面写入却是OK ...

随机推荐

  1. 关于css浮动的一些总结

    首先给浮动一个定义吧 浮动可以理解为让某个div元素脱离标准流,漂浮在标准流之上,和标准流不是一个层次. 从测试中来看 元素之间的浮动关系是根据上一个元素来判断的如果上一个元素是浮动的它会跟在浮动元素 ...

  2. C语言简单strcat和strcmp的实现

    对于C标准库中的字符串处理函数应该平常用的比较多:简单实现strcat和strcmp _strcpy: char *_strcpy(char *dest, char *src) { char *buf ...

  3. IOS 掉用系统发短信

    #import <MessageUI/MessageUI.h> MFMessageComposeViewControllerDelegate #pragma mark - 调用ios系统短 ...

  4. 《Qt编程的艺术》——5.1 手动布局

    在传统的GUI设计中,每个控件(Widget)都要手动地绑定在窗口之上的一个点上(也就是说,这个控件被指定成了给定GUI元素的父对象),同时还要指定这个控件的高度和宽度.作为所有图形元素的基础类,QW ...

  5. Android设置背景

    一.设置图片背景 首先你先将一个的背景图片存入工程中res/drawble(当然drawble-hdpi.drawble-mdpi.drawble-ldpi中一个或者几个文件夹都可)文件夹中.假如我存 ...

  6. PHP学习笔记1.1——date()函数的多种用法,取出各种不同格式的时间,非常全面

    语法格式:date(string format.int timestamp); 参数一:format指定输出的日期和时间的格式,具体的参见下表; 参数二:timestamp是可选参数,是时间戳,如果不 ...

  7. videojs 视频开发API

    videojs就提供了这样一套解决方案,他是一个兼容html5的视频播放工具,早期版本兼容所有浏览器,方法是:提供三个后缀名的视频,并在不支持html5的浏览器下生成一个flash的版本. 最新的3. ...

  8. net 2.0使用ajax

    asp.net ajax中用到了几个dll文件,这些可以从网上下载.http://ajax.asp.net站点下可以找到相关的下载.这其中包括:System.Web.Extensions.dll.Sy ...

  9. dojo.hasClass/dojo.addClass/dojo.removeClass/dojo.toggleClass/dojo.repalceClass

    dojo.hasClass(/*DomNode*/node or DomIdstring,/*String*/classString)//如果节点中有特定的类,那么返回ture,否则返回false d ...

  10. 【转】关于ios10中ATS的问题

    原文连接:https://onevcat.com/2016/06/ios-10-ats/ WWDC 15 提出的 ATS (App Transport Security) 是 Apple 在推进网络通 ...