unit Form_Main;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ActiveX, ComObj, ShlObj,
ShLwApi; type TFormMain = class(TForm, IQueryContinue, IUserNotificationCallback)
Button1: TButton;
CheckBox1: TCheckBox;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
I: IUserNotification2;
public
function QueryContinue: HRESULT; stdcall;
function OnBalloonUserClick(const pt: TPoint): HRESULT; stdcall;
function OnLeftClick(const pt: TPoint): HRESULT; stdcall;
function OnContextMenu(const pt: TPoint): HRESULT; stdcall;
end; var
FormMain: TFormMain; implementation {$R *.dfm} procedure TFormMain.Button1Click(Sender: TObject);
begin
I.SetIconInfo(Application.Icon.Handle, 'IUserNotification2演示');
I.SetBalloonInfo('提示标题', '这是提示内容', );
I.SetBalloonRetry(, , );
I.Show(self as IQueryContinue, , self as IUserNotificationCallback);
end; procedure TFormMain.FormCreate(Sender: TObject);
begin
I := CreateComObject(CLSID_UserNotification) as IUserNotification2;
end; procedure TFormMain.FormDestroy(Sender: TObject);
begin
I := nil;
end; function TFormMain.OnBalloonUserClick(const pt: TPoint): HRESULT;
begin
ShowMessage('Balloon User Click!');
end; function TFormMain.OnContextMenu(const pt: TPoint): HRESULT;
begin
ShowMessage('On Context Menu');
end; function TFormMain.OnLeftClick(const pt: TPoint): HRESULT;
begin
ShowMessage('Left Click!');
end; function TFormMain.QueryContinue: HRESULT;
begin
if CheckBox1.Checked then
Result := S_OK
else
Result := S_FALSE;
end; end.

delphi 实现用户自定义通知(User Notification)的更多相关文章

  1. Android消息通知(notification)和PendingIntent传值

    通知栏的自定义布局:转:http://blog.csdn.net/vipzjyno1/article/details/25248021 拓展 实现自定义的通知栏效果: 这里要用到RemoteViews ...

  2. HTML5开启浏览器桌面通知 Web Notification

    说明: 1.Chrome要求必须https才可以开启浏览器通知 2.显示图片在本服务器,不支持跨越 3.自定义声音Chrome不播放,Firefox正常播放 代码如下: <!-- /** * @ ...

  3. iOS 远程通知(Remote Notification)和本地通知(Local Notification)

    ios通知分为远程通知和本地通知,远程通知需要连接网络,本地通知是不需要的,不管用户是打开应用还是关闭应用,我们的通知都会发出,并被客户端收到 我们使用远程通知主要是随时更新最新的数据给用户,使用本地 ...

  4. 介绍一个比较酷东西:HTML5 桌面通知(Notification API)

    Notification API 是 HTML5 新增的桌面通知 API,用于向用户显示通知信息.该通知是脱离浏览器的,即使用户没有停留在当前标签页,甚至最小化了浏览器,该通知信息也一样会置顶显示出来 ...

  5. redis键空间通知(keyspace notification)

    一.需求 在redis中,设置好key和生存时间之后,希望key过期被删除时能够及时的发送一个通知告诉我key,以便我做后续的一些操作. 二.环境 系统:windows10 php:7.1 redis ...

  6. HTML5桌面通知:notification

    最近由于公司业务需要,领导要求IM消息有像网页微信那样有新消息桌面右下角弹出一个提示框的效果!由于自己才疏学浅,一时还没明白微信是怎么实现的!所以只能问百度(因为懒得FQ)咯! 在网上搜索了N久,心都 ...

  7. 通知(Toast+Notification)

    Toast简要说明:(前面已经用过好多次了) Toast是一种非持久的(在屏幕上面留一会儿就消失了),提供给用户简洁提示信息的视图. 它不阻断用户的操作,一般用于显示一些不重要的信息.(比方说设置音量 ...

  8. HTML5桌面通知:notification api

    1. 为什么需要HTML5的桌面通知 传统的桌面通知可以写一个div放到页面右下角自动弹出来,并通过轮询等等其他方式去获取消息并推送给用户.这种方式有个弊端就是:当我在使用京东 进行购物的时候,我是不 ...

  9. 通知(Notification)的使用

    新建一个 NotificationTest项目,并修改 activity_main.xml 中的代码,如下所示:<LinearLayout xmlns:android="http:// ...

随机推荐

  1. 将.ipynb文件导入到另外的文件中

    在定义函数或者类的.ipyter文件的末尾加上 try: !jupyter nbconvert --to python ppp.ipynb #ppp是文件的名称 except: pass 在需要导入到 ...

  2. C/C#双色球

    6个红色球号码和1个蓝色球红色球号码从1—33中选择蓝色球号码从1—16中选择 C:(粗体:随机数,红色:库排序) #include <stdio.h> #include <stdl ...

  3. 高德地图打包后不能使用,高德导航View不显示,高德地图导航组件黑屏的问题;

    在现在的APP中地图真的很常见,我们在去使用是一般都会选择一些三方的API,像百度.高德等等... 在集成的过程中,难免会遇到一些问题,大部分问题我们仔细的阅读开发文档都能解决的:但是!!!问题出现后 ...

  4. linux杂项

    重装后激活root帐号并设置密码 sudo passwd root sudo: netstat:找不到命令 安装net-tools:sudo apt-get install net-tools Com ...

  5. DRF 视图组件代码

    序列化器代码 # 声明序列化器from rest_framework import serializersfrom djangoDome.models import Book class Publis ...

  6. MYSQL--表分区、查看分区

      一.       mysql分区简介 数据库分区 数据库分区是一种物理数据库设计技术.虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时 ...

  7. WebForm(Application,ViewState,Repeater的Command操作)

    一.AppliCation: 1.存储在服务器端,占用服务器内存 2.生命周期:永久 3.所有人都可访问的共有对象,一般用作服务器缓存 4.赋值:Application["key" ...

  8. 转载:明明白白VC LIB和DLL的使用

    转载来自:http://dpinglee.blog.163.com/blog/static/1440977532016316813889/ 1.加载lib/头文件 分两种方法: (1)适用于当前项目 ...

  9. SQL Server MSSQLSERVER 服务无法启动解决方案

    打开sql配置工具下的sql server configuration manager,然后将VIA协议禁用.

  10. react-native启动页面设置,react-native-splash-screen

    用于解决iOS和Android启动白屏问题及简单的启动页面展示 下载 react-native-splash-screen yarn add react-native-splash-screen re ...