AppleSeeker's Tech Blog
Welcome to AppleSeeker's space

在看本文之前,最好先看下.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为取消

启动后,关闭程序,看下当前系统的未读短信数

没有任何未读短信.那查看下注册表的情况

注册表已在该位置插入目录,表明已注册好了系统监视.
发一条短信,测试下效果.

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

代码下载:DevAutoStartDemo.rar

Author:Appleseeker
Date:2008-09-21

posted on 2008-09-21 15:21  AppleSeeker(冯峰)  阅读(2716)  评论(0编辑  收藏  举报