.Net Compact Framework 基础篇(9)

在看本文之前,最好先看下.Net Compact Framework 基础篇(1)这篇文章。

今天说要讲述的内容是上文中的一个延伸,在上文中,提及到SystemState类。
该类主要是用于收集和监视系统的很多状态信息。

今天主要介绍它的另一个功能,当监视条件满足后,启动应用程序。
为何这么做呢?譬如当你设定好一个监视,让系统自己处理,一旦条件触发后,就会立刻调用相应的程序。
场景:当我收到100条未读短信后,立刻将收件箱中的已读短信删除。

下面将具体介绍下,如何使用该方法。
创建SystemState类,告诉它应该监视的内容

 1           private  SystemState state;
 2 
 3           private   void  Form1_Load( object  sender, EventArgs e)
 4          {
 5               // 短信未读数量
 6              state  =   new  SystemState(SystemProperty.MessagingSmsUnread);
 7               // 比较方式
 8              state.ComparisonType  =  StatusComparisonType.Greater;
 9               // 比较值
10              state.ComparisonValue  =   100 ;
11          }

 

启动系统监视:

1           private   void  menuItem3_Click( object  sender, EventArgs e)
2          {
3               // 告诉它ApplicationID,还可以加入启动应用程序的路径
4              state.EnableApplicationLauncher( " DevAutoStartDemo " );
5          }

 

取消系统监视:

1           private   void  menuItem4_Click( object  sender, EventArgs e)
2          {
3              state.DisableApplicationLauncher();
4          }

 

一旦启动系统监视后,会在注册表的[HKEY_LOCAL_MACHINE\System\Notifications]下会有一个ApplicationID的目录
该目录会记录一些Key键值来描述应用程序的路径等。

看下效果:
启动程序,Enable为启动,Disable为取消

.Net Compact Framework 基础篇(9)_第1张图片

启动后,关闭程序,看下当前系统的未读短信数
.Net Compact Framework 基础篇(9)_第2张图片

没有任何未读短信.那查看下注册表的情况
.Net Compact Framework 基础篇(9)_第3张图片

注册表已在该位置插入目录,表明已注册好了系统监视.
发一条短信,测试下效果.
.Net Compact Framework 基础篇(9)_第4张图片.Net Compact Framework 基础篇(9)_第5张图片

看最上面的图标提示,有未读短信.表明已触发该程序.

代码下载:DevAutoStartDemo.rar

Author:Appleseeker
Date:2008-09-21

你可能感兴趣的:(framework)