delphi 实现用户自定义通知(User Notification)

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(‘提示标题‘, ‘这是提示内容‘, 3);
  I.SetBalloonRetry(1000, 5000, 3);
  I.Show(self as IQueryContinue, 1000, 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.
时间: 2024-08-08 02:06:57

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

通知(Toast+Notification)

Toast简要说明:(前面已经用过好多次了) Toast是一种非持久的(在屏幕上面留一会儿就消失了),提供给用户简洁提示信息的视图. 它不阻断用户的操作,一般用于显示一些不重要的信息.(比方说设置音量的那个提示) Toast类可以用于创建和显示toast信息,toast一般翻译为吐司. 常用方法:(有set方法,也有get方法) Toast.makeText(context, text, duration);  //返回Toast对象 toast.setDuration(duration); 

ios 远程通知(Remote Notification)和本地通知(Local Notification)

ios通知分为远程通知和本地通知,远程通知需要连接网络,本地通知是不需要的,不管用户是打开应用还是关闭应用,我们的通知都会发出,并被客户端收到 我们使用远程通知主要是随时更新最新的数据给用户,使用本地通知主要是提醒用户来完成一些任务 远程通知 Remote Notification: 其主要的工作原理为:客户端发送自己的UUID和Bundle ID给苹果的APNs服务器-->苹果的APNs服务器加密后返回一个deviceToken给客户端-->客户端拿到devideToken后将其发送给app

Android Wear 开发入门——如何创建一个手机与可穿戴设备关联的通知(Notification)

创建通知 为了创建在手机与可穿戴设备中都能展现的通知,可以使用 NotificationCompat.Builder.通过该类创建的通知,系统会处理该通知是否展现在手机或者穿戴设备中. 导入必要的类库 在开发之前首先需要导入以下类库 importandroid.support.v4.app.NotificationCompat; importandroid.support.v4.app.NotificationManagerCompat; importandroid.support.v4.app

通知(Notification)

1.通知的基本用法 //创建 NotificationManager 实例 NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification notification = new NotificationCompat.Builder(this) .setContentTitle("This is title") //标题 .setContent

通知(Notification)的使用

新建一个 NotificationTest项目,并修改 activity_main.xml 中的代码,如下所示:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layou

HTML5桌面通知:notification api

1. 为什么需要HTML5的桌面通知 传统的桌面通知可以写一个div放到页面右下角自动弹出来,并通过轮询等等其他方式去获取消息并推送给用户.这种方式有个弊端就是:当我在使用京东 进行购物的时候,我是不知道人人网有消息推送过来给我的,而必须要等我把当前页面切到人人网才知道有消息推送了.这种方式的消息推送它是基于页面存活的, 但是我们需要这么一种策略:无论你在看哪个页面,只要有消息都应该能推送给我看到,这就是webkitNotification要解决的问题. Notification生成的消息不依附

Android自定义通知布局Notification,点击Notification导航切换回原Activity

一个简单的应用场景:假如用户打开Activity以后,按Home键,此时Activity 进入-> onPause() -> onStop() 不可见.代码在此时机发送一个Notification到通知栏.当用户点击通知栏的Notification后,又重新onRestart() -> onStart() -> onResume() 切换回原Activity. package zhangphil.pendingintent; import android.os.Bundle; im

安卓中通知(Notification)的基本使用方法

1. 通知的使用场合 当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现.发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容. 2. 通知的创建步骤 (1)获取NotificationManager实例,可以通过调用Conten的getSystenService()方法得到,getSystemService()方法接收一个字符串参数用于确定获取系统的哪个服务, 这里我们传入Context.NOTIFICATION

IOS8 通知中心(Notification Center)新特性

本文转载至 http://blog.csdn.net/jinkaiouyang/article/details/30029441 ios手机apple通知中心notificationCenter   苹果keynote展示push通知的一些优化,特别的允许用户能够直接在push上进行交互,这么牛逼的功能,当然第一时间研究. 下面看看具体的产品细节和技术实现:   产品细节: 以下都是使用本地push测试的:(离线push效果一样) 1.状态栏.锁屏状态下和通知中心中的效果如下:(这里最多只能设置