MyAlerts通知应用程序

分享于 

7分钟阅读

Web开发

  繁體

介绍

这里应用程序的目的是创建一个简单的通知应用程序( maxim即时消息)。 当收到一个警告,应用程序将在你的桌面右下角显示一些"toast"。 警报将显示一条消息,单击时将执行一个操作。

背景

这个应用程序的想法是由于试图提供一些"冷色"来演示销售的结果而产生的。 客户喜爱演示业务事件的"实时"通知。 虽然这里功能确实通过几个微软产品( 例如。 SQL Server 通知。MSN警报和实时通信服务器,这些应用程序的基础设施/成本可能非常巨大。 通常,销售演示是在独立的笔记本电脑上完成的,这些机器并非总是连接到网络上。 这个简单的应用程序演示了没有 Having的实时通信的价值是一个技术专家。

上面描述的用例场景也是MyAlerts完全在脚本代码中编写的原因。 这使得无需 Having 重新编译/重新部署代码就很容易进行修改。 同时,我强烈的支持一些事情,以便半技术人员能够理解应用程序的工作方式和改进。

我已经包含了两个版本的警报控制器:

  • AlertController.hta 基于创建类似于流行即时消息产品中使用的弹出"toast"的警报。
  • AgentAlertController.hta 使用微软代理技术和语音引擎来创建更加互动的警报。

使用代码

要安装这里应用程序,

  • 将zip文件的内容解压缩到 c:MyAlerts
  • 执行 AlertController.hta 或者 AgentAlertController.hta ( 启动时应用程序将被最小化)
  • 执行示例子目录中的一个示例( 例如。 CreateAlert.hta )

在windows组的启动过程中,我通常执行的一个步骤是向 [Agent] AlertController.hta 添加一个快捷方式,以便在重新启动时重新启动应用程序。

将文件写入MyAlertsqueue子目录时,会触发警报。 这个文件的结构很简单。 它是包含以下格式的文本字符串的文本文件:


Text To Display|URL to Execute|Voice to announce alert in



基本上,由| ( 管道) 字符分隔的3个。 例如具有以下内容的文件。


Hello Microsoft|http://www.microsoft.com|en-UK_female



将显示一个通过英语声音发布的警报,它的中有英国语音信息"欢迎使用微软"。 注意"语音"参数只与 AlertController.hta. 相关,AgentAlertController.hta的语音取决于你已经安装的语音引擎。 当单击该通知时,将带你到Microsoft网站。

语音选项包括

  • en-US_female
  • en-US_male
  • en-UK_female
  • en-UK_male
  • en-AUS_female
  • en-AUS_male

要触发警报,所有应用程序都必须将以上结构写入到MyAlertsqueue子目录中的文本文件。 例如从 C#. NET 应用程序中,你可以执行以下操作:


TextWriter output = File.AppendText("c:MyAlertsqueue" + 


 System.Guid.NewGuid()+".txt");


output.Write("Hello Microsoft|http://www.microsoft.com|en-UK_female");


output.Close();



samples子目录中的文件 MyAlertsWS.asmx 包含一个用于触发通知的.NET web服务。 只需将这里文件复制到 c:inetpubwwwroot 并通过


http://localhost/MyAlertsWS.asmx



或者从窗口文件的VBScript中,你可以执行如下操作


Set myTypeLib = CreateObject("Scriptlet.Typelib")


GUID = left(trim(myTypeLib.guid),38)


szFileName="c:MyAlertsqueue" & GUID & ".txt"


Set fso = CreateObject("Scripting.FileSystemObject")


Set tf = fso.CreateTextFile(szFileName, True)


tf.WriteLine("Hello Microsoft|http://www.microsoft.com|en-UK_female") 


tf.Close



或者,如果你喜欢 JScript,你可以执行以下操作


var myTypeLib = new ActiveXObject("Scriptlet.Typelib");


var GUID = new String(myTypeLib.guid).substr(0,38);


var szFileName="c:MyAlertsqueue" + GUID + ".txt"


var fso = new ActiveXObject("Scripting.FileSystemObject")


var tf = fso.CreateTextFile(szFileName, true);


tf.WriteLine("Hello Microsoft|http://www.microsoft.com|en-UK_female");


tf.Close();



如果已经在NorthWind数据库中创建了存储过程,甚至可以使用SQL触发器直接触发警报,例如假定你在NorthWind数据库中创建了sp_CreateAlert存储过程,可以执行如下操作:


--Create Trigger on Customers Table in Northwind Database


CREATE TRIGGER DataChanged ON Customers


FOR INSERT, UPDATE, DELETE


AS EXEC sp_CreateAlert 'Customer Changed','http://www.microsoft.com',


 'en-UK_male'



GO



Points of Interest

MyAlerts支持蒙皮( 例如。主题),默认情况下,当出现警报时显示不同的外观。 要更改这里行为,只需在记事本中编辑文件 ShowAlert.hta 并修改下面的代码行:


//Set this to false if you want to use the default skin


var enableRandomSkin = true;



//Change default skin here


var defaultSkin="skins/msn_default.jpg";



//Change default voice here.. . choices include 


// en-US_female.wav


// en-US_male.wav


// en-UK_female.wav


// en-UK_male.wav


// en-AUS_female.wav


// en-AUS_male.wav


var defaultVoice="en-US_female.wav";



例如下面的屏幕截图显示了替代外观:

注意:AgentAlertController.hta 使用了微软代理ActiveX控件和语音引擎。 如果 AgentAlertController.hta 无法工作或者产生错误,你可能需要在代理下载下载所需组件。

注:所有图像均采用 Wincustomize.com,并通过各自的拥有者获得版权。

历史记录

  • 修改的2003年10月30日
    • 添加了 AgentAlertController.hta 以演示微软代理技术的使用
    • 添加了 StockAlertController.hta 以演示如何基于Web服务调用触发警报。