在看本文之前,最好先看下.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 }
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 }
2 {
3 //告诉它ApplicationID,还可以加入启动应用程序的路径
4 state.EnableApplicationLauncher("DevAutoStartDemo");
5 }
取消系统监视:
1 private void menuItem4_Click(object sender, EventArgs e)
2 {
3 state.DisableApplicationLauncher();
4 }
2 {
3 state.DisableApplicationLauncher();
4 }
一旦启动系统监视后,会在注册表的[HKEY_LOCAL_MACHINE\System\Notifications]下会有一个ApplicationID的目录
该目录会记录一些Key键值来描述应用程序的路径等。
看下效果:
启动程序,Enable为启动,Disable为取消
启动后,关闭程序,看下当前系统的未读短信数
没有任何未读短信.那查看下注册表的情况
注册表已在该位置插入目录,表明已注册好了系统监视.
发一条短信,测试下效果.
看最上面的图标提示,有未读短信.表明已触发该程序.
代码下载:DevAutoStartDemo.rar
Author:Appleseeker
Date:2008-09-21