Growl for Windows – Mac 样式的信息提示工具。目前已经支持的软件包括:Outlook,Visual Studio 等以及一个利用命令行从本地或者远程发送消息过来的工具

.Growl是一个非常好用的通知框架,可以帮助你轻松制作各种非常酷的事件通知效果。这个教程教你如何简单地在自己的应用程序里加入Growl通知。在程序里加入growl通知很容易。在http://www.growlforwindows.com/gfw/about.aspx 下载Growl for Windows ,安装后在程序目录下有.NET的库:

  • Growl.CoreLibrary.dll
  • Growl.Connector.dll

在程序中引用这两个程序集,在程序中注册GrowlConnector 实例,注册的时候需要提供你的应用的信息

Application application = new Application("YOUR_APP_NAME");

application.Icon = @"c:\image.png";

GrowlConnector growl = new GrowlConnector();

growl.NotificationCallback += new GrowlConnector.CallbackEventHandler(growl_NotificationCallback);

// set this so messages are sent in plain text (easier for debugging)
growl.EncryptionAlgorithm = Cryptography.SymmetricAlgorithmType.PlainText;

application = new Growl.Connector.Application(this.textBox1.Text);

growl.Register(application, new NotificationType[] { notificationType });

然后用下面代码发送通知:

CallbackContext callbackContext = new CallbackContext("some fake information", "fake data");

Notification
notification = new Notification(this.application.Name,
this.notificationType.Name, DateTime.Now.Ticks.ToString(),
this.textBox2.Text, this.textBox3.Text);
growl.Notify(notification, callbackContext);

你可以阅读SDK文档获取更多功能的解释,不过基本思路就是这样的。

上述代码来自http://code.google.com/p/growl-for-windows/,可以自己下载来运行试试。

里面我们来看下示例的运行结果图:

本文转自 大虾 善友博主

如何在程序中加入Growl通知的更多相关文章

  1. MFC程序中使用调试宏ASSERT()、ASSERT_VALID()、VERIFY()和TRACE()的区别

    其实这篇文章说的很明白了:http://dev.gameres.com/Program/Other/DebugMacro.htm 结论如下: 1.ASSERT()测试它的参数,若参数为0,则中断执行并 ...

  2. Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构

    分享两篇Win 10应用开发的XML文档结构:Win 10 开发中Adaptive磁贴模板的XML文档结构,Win10 应用开发中自适应Toast通知的XML文档结构. Win 10 开发中Adapt ...

  3. 在C#程序中实现插件架构

    阅读提示:这篇文章将讲述如何利用C#奇妙的特性,实现插件架构,用插件(plug-ins)机制建立可扩展的解决方案. 在.NET框架下的C#语言,和其他.NET语言一样提供了很多强大的特性和机制.其中一 ...

  4. 了解 JavaScript 应用程序中的内存泄漏

    简介 当处理 JavaScript 这样的脚本语言时,很容易忘记每个对象.类.字符串.数字和方法都需要分配和保留内存.语言和运行时的垃圾回收器隐藏了内存分配和释放的具体细节. 许多功能无需考虑内存管理 ...

  5. [转载]Java应用程序中的内存泄漏及内存管理

    近期发现测试的项目中有JAVA内存泄露的现象.虽然JAVA有垃圾回收的机制,但是如果不及时释放引用就会发生内存泄露现象.在实际工作中我们使用Jprofiler调用java自带的 jmap来做检测还是很 ...

  6. MFC程序中消息以及函数的处理顺序简介[转]

    MFC应用程序中处理消息的顺序 1.AfxWndProc()      该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc 2.AfxCallWndProc()  该 ...

  7. 浅析SQL Server 2005中的主动式通知机制

    一.引言 在开发多人同时访问的Web应用程序(其实不只这类程序)时,开发人员往往会在缓存策略的设计上狠下功夫.这是因为,如果将这种环境下不常变更的数据临时存放在应用程序服务器或是用户机器上的话,可以避 ...

  8. Native Application 开发详解(直接在程序中调用 ntdll.dll 中的 Native API,有内存小、速度快、安全、API丰富等8大优点)

    文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Ap ...

  9. Linux设备驱动中的异步通知与异步I/O

    异步通知概念: 异步通知的意识是,一旦设备就绪,则主动通知应用程序,这样应用程序根本就不需要查询设备状态,这一点非常类似于硬件上的“中断”概念,比较准确的称谓是“信号驱动的异步IO”,信号是在软件层次 ...

随机推荐

  1. linux下使用c判断文件夹是否为空的小程序

    自己写了一个 判断文件夹是否为空的小代码 //文件夹操作相关的函数的帮助$: man 3 readdir #include <stdio.h> #include <sys/types ...

  2. 3. 关于sql注入的综合题

    关于sql注入的综合题                          ----------南京邮电大学ctf : http://cms.nuptzj.cn/ 页面上也给了好多信息: 根据这个sm. ...

  3. 数据库路由中间件MyCat - 源代码篇(1)

    此文已由作者张镐薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 进入了源代码篇,我们先从整体入手,之后拿一个简单流程前端连接建立与认证作为例子,理清代码思路和设计模式.然后 ...

  4. 开源:基于Android的室内定位WiFi,iBeacon数据采集和定位脚本

    最近有同学联系我,也在一些群里看到有新手同学挣扎在怎么获取定位数据,不知从何下手.所以整理并开源这个基于Android的数据采集软件和基于python的KNN定位demo,算是为新手同学建立一个Bas ...

  5. FString转到char* TCHAR*

    int ARPG_Database::BP_GetColumnIndex(int resultSet, FString columnName) { return GetColumnIndex(resu ...

  6. Unity ShadowMapping

    原理: 场景中一个plane,一个cube,一个light,一个mainCamera 为了在plane上呈现cube的shadow,先在light上放一个lightCamera(位置方向跟light相 ...

  7. 51nod1127(尺取法)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1127 题意:中文题诶- 思路:尺取法 维护一个队列,若当前队 ...

  8. codevs 3162 抄书问题

    3162 抄书问题 题目描述 Description 现在要把M本有顺序的书分给K个人复制(抄写),每一个人的抄写速度都一样,一本书不允许给两个(或以上)的人抄写,分给每一个人的书,必须是连续的,比如 ...

  9. 洛谷 P1908 逆序对(归并排序解法)

    树状数组解法:https://www.cnblogs.com/lipeiyi520/p/10846927.html 题目描述 猫猫TOM和小老鼠JERRY最近又较量上了,但是毕竟都是成年人,他们已经不 ...

  10. mysql读取不同位置配置文件顺序

    读取顺序为: /etc/my.cnf basedir/my.cnf datadir/my.cnf --defaults-extra-file    #在读取全局配置文件之后,读取用户配置文件(~/.m ...