.Net Compact Framework 基础篇(7)

今天这篇文章的主题就是如何获取Windows Mobile设备中的MRU(最近打开文件列表)

 

关于MRU的获取,有2种方法。

先来介绍用.net开发的方法---访问注册表。

在注册表的:[HKEY_CURRENT_USER/Software/Microsoft/Shell/TaskSwitch]中,存有所有的MRU中的信息。可能你访问的时候会有很多,但在Windows Mobile显示的时候,只显示从0开始的几项(一般为5项)。

 

代码演示效果:

WM上显示的MRU

 

程序获取到的MRU信息:

 

注意看0项,就是和前面MRU排在第一位的计算器一致,而且,注册表里存的是绝对路径,可以启用进程来直接访问。

启用进程的方法:

1  Process XXX  =   new  Process();
2  XXX.StartInfo.FileName  =   " 路径+文件名 " ;
3  XXX.StartInfo.Arguments  =  参数;

 

访问注册表的方法:

 1  private   void  menuItem1_Click( object  sender, EventArgs e)
 2  {
 3       string  strRegPath  =   @" Software/Microsoft/Shell/TaskSwitch " ;
 4      RegistryKey regCurrentUser  =  Registry.CurrentUser.OpenSubKey(strRegPath);
 5       string [] strList  =  regCurrentUser.GetValueNames();
 6 
 7       string  strKeyValue  =   "" ;
 8       foreach  ( string  strKey  in  strList)
 9      {
10          strKeyValue  =   "" ;
11          strKeyValue  =  regCurrentUser.GetValue(strKey,  "" ).ToString();
12          listBox1.Items.Add( string .Format( " {0} - {1} " , strKey, strKeyValue));
13      }
14      regCurrentUser.Close();
15  }

记得最后要关闭注册表。

 

注意事项:

当你看到这里时,想,既然可以取到对应的值,那是否可以修改呢,然后就可以自己控制了呢?

很遗憾,即使你将值修改了,MRU列表也不会发生变化。(肯定还依赖于别的地方,暂时我还没找到)

 

方法二:用c++操作:

参考:MFC框架中对最近文件列表的支持 

 

下面介绍下,在WM的界面上的未读短信数和邮件数的获取

注册表[HKEY_CURRENT_USER/System/State/Messages/TotalEmail/Unread]的Count表示邮件未读数量

注册表[HKEY_CURRENT_USER/System/State/Messages/sms/Unread]的Count表示短信未读数量

 

最后补充一个小技巧,如何读取远程计算机的注册表。

使用VS2005或VS2008菜单中Remote Tools下的Remote Registry Editor工具。

可以连接到WM设备来看其注册表键值。

 

代码下载:DeviceMRUDemo.rar

 

转载于:https://my.oschina.net/201003674/blog/288898

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值