支持XP下托盘栏气球提示的托盘单元

2016-02-19 19:34 9 1 收藏

给自己一点时间接受自己,爱自己,趁着下午茶的时间来学习图老师推荐的支持XP下托盘栏气球提示的托盘单元,过去的都会过去,迎接崭新的开始,释放更美好的自己。

【 tulaoshi.com - 编程语言 】

 

  unit tray;

  interface
  uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs,Registry,ShellAPI, ComCtrls, StdCtrls, Buttons, Menus, ExtCtrls;

  const
    ICON_ID=3;
    NIF_INFO = $10;
    NIM_SETVERSION = $00000004;
    NOTIFYICON_VERSION = 3;
    NIM_SETFOCUS = $00000003;
    NIIF_INFO = $00000001;
    NIIF_WARNING = $00000002;
    NIIF_ERROR = $00000003;
    NIN_BALLOONSHOW = WM_USER + 2;
    NIN_BALLOONHIDE = WM_USER + 3;
    NIN_BALLOONTIMEOUT = WM_USER + 4;
    NIN_BALLOONUSERCLICK = WM_USER + 5;
    NIN_SELECT = WM_USER + 0;
    NINF_KEY = $1;
    NIN_KEYSELECT = NIN_SELECT or NINF_KEY;

  procedure InstIcon(ToyIcon:TIcon;WinHandle:THandle;cbMessage:Integer);
  procedure DeleIcon(winHandle:THandle);
  procedure ShowBalloonTips(TipInfo,TipTitle:string);

  
  implementation

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  Type
    PNewNotifyIconData = ^TNewNotifyIconData;
    TDUMMYUNIONNAME = Record
      case Integer of
        0: (uTimeout: UINT);
        1: (uVersion: UINT);
    end;

    TNewNotifyIconData = Record
      cbSize: DWORD;
      Wnd: HWND;
      uID: UINT;
      uFlags: UINT;
      uCallbackMessage: UINT;
      hIcon: HICON;
      szTip: array [0..127] of Char;    //Version 5.0为128个,以前为64个
      dwState: DWORD;    //Version 5.0
      dwStateMask: DWORD;    //Version 5.0
      szInfo: array [0..255] of Char;   //Version 5.0
      DUMMYUNIONNAME: TDUMMYUNIONNAME;
      szInfoTitle: array [0..63] of Char;   //Version 5.0
      dwInfoFlags: DWORD;   //Version 5.0
    end;

  var
    IconData: TNewNotifyIconData;

  procedure InstIcon(ToyIcon:TIcon;WinHandle:THandle;cbMessage:Integer);
  begin
    IconData.cbSize:=Sizeof(IconData);
    IconData.Wnd:=WinHandle;
    IconData.uID:=ICON_ID;
    IconData.uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;
    IconData.uCallbackMessage:=cbMessage;
    IconData.hIcon:=ToyIcon.Handle;
    IconData.szTip:='LavaTech--Enhance the life!';       //使用是该修改
    Shell_NotifyIcon(NIM_ADD,@IconData);
  end;

  procedure DeleIcon(winHandle:THandle);
  begin
    IconData.cbSize:=SizeOf(IconData);
    IconData.Wnd:=winHandle;
    IconData.uID:=ICON_ID;
    Shell_NotifyIcon(NIM_DELETE,@IconData);
  end;

  procedure ShowBalloonTips(TipInfo,TipTitle:string);
  begin
    IconData.cbSize := sizeof(IconData);
    IconData.uFlags := NIF_INFO;
    strPLCopy(IconData.szInfo, TipInfo, sizeof(IconData.szInfo) - 1);
    IconData.DUMMYUNIONNAME.uTimeout := 3000;
    strPLCopy(IconData.szInfoTitle, TipTitle, sizeof(IconData.szInfoTitle) - 1);
    IconData.dwInfoFlags := NIIF_INFO;
    Shell_NotifyIcon(NIM_MODIFY, @IconData);
  end;

  end.

  {
  //使用简介:IconOnClick
  //先添加常量, InstIcon(Application.Icon, Handle,WM_ICONEVENT);这里要用到的
  WM_ICONEVENT=WM_USER+111;
  //申明部分
  procedure IconOnClick(var message:TMessage);message WM_ICONEVENT;
  //实现部分
  procedure TForm1.IconOnClick(var message:Tmessage);
  var
    p:Tpoint;
  begin
    if (message.LParam=WM_LBUTTONDBLCLK) then
    begin
      //双击左键
    end;
    if (message.LParam=WM_RBUTTONDOWN) then
    begin
      GetCursorPos(p);
      PopupMenu1.Popup(p.X,p.Y);
    end;
  end;

  }

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

来源:https://www.tulaoshi.com/n/20160219/1621338.html

延伸阅读
标签: 服务器
让Windows7下的MSN图标托盘区显示 相信现在很多朋友都将操作系统升级成了 Windows 7,Windows7的各项功能用着都很顺手;可有一点挺郁闷:打开几个办公文档,网页,聊天工具后,任务栏就满满当当的,Windows Live Messenger 挤在其中并不起眼。 挺怀念以前的版本,Windows Live Messenger 的图标在托盘区,用着习惯。其实修改很简单...
我的主页: http://www.tommstudio.com/ Windows 2000/XP和2003等支持一种叫做"服务程序"的东西.程序作为服务启动有以下几个好处:     (1)不用登陆进系统即可运行.     (2)具有SYSTEM特权.所以你在进程管理器里面是无法结束它的.     笔者在2003...
一个托盘程序演示 -闹钟 Alert 作者:Abbey 下载源代码 关键字: 托盘 Tray 想必大家都看见过那些在系统托盘(Tray)中的程序吧,本文就演示了如何创建一个这样的托盘程序Alert。Alert是一个运行在系统托盘中的小闹钟,它在设定的时间后触发,运行屏幕保护程序并播放一...
在Windows操作系统中,任务栏的右边(托盘)会常驻几个图标,如输入法切换图标、音量控制图标等,此外我们还经常遇到具有托盘图标的软件,如金山词霸、实时监测功能的杀毒软件等。这些软件在后台运行,通常不占用太多的屏幕资源,只在通知栏上放一个小小的标志,必要时我们可以通过用鼠标点击图标对其进行选单操作或激活其主窗口。有时我们自...
标签: 软件教程
快压支持挂载的压缩包、光盘镜像以及虚拟机镜像。而且他支持ZIP等多种格式。快压在运行挂载功能时,在桌面右下角有一个托盘的图标很多关于托盘的操作都可以在那里完成。下面小编就为大家介绍一下快压的托盘挂载是这么使用的 1)托盘左键菜单 2)托盘右键菜单 |"挂载…":选择文件...

经验教程

32

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部