随笔-148  评论-1050  文章-1  trackbacks-4

Memory Information on Windows Mobile

    Windows Mobile设备跟桌面PC比起来,资源是相当受限的。目前最新的设备一般也就128M RAM+256M Flash,再外扩4G的存储卡。但Windows Mobile设备的资源与RAMFlash是用Byte来计算的8bit单片机来说,还是相当可观的,编程的时候也不用像以前那样抠门到以Byte来计算全局变量。虽然是如此,但是程序和OS都是在RAM中运行的,最郁闷的是,由于RAM不够大,以至于跑一些软件时,不得不关掉正在运行的程序,为其腾出一些空间来,这样捉襟见肘的日子在以前还是经常碰到的。

  大家知道,在Windows Mobile设备上,我们可以通过settings->system->memory来查看当前设备资源的使用状态,但是这个就需要动那么几下手,点击屏幕,麻烦。我们一般喜欢偷懒,让这些信息实时显示在今日界面上该多好啊,于是,好多公司的软件中都将设备资源的使用状态实时显示在界面上,比如Spb的,比如Resco的,很多很多。

  其实,在WM6.0 SDK自带的Sample中,就有相关的程序,它位于 \PocketPC\CPP\win32\MemWatcher文件夹下。这个工程是用native code写的一个今日界面的插件,编译完以后,生成一个dll文件和cab安装文件,我们可以直接将cab文件安装到设备上,然后在今日界面的设置中,将它显示。如下图1所示:

1MemWatcher的今日插件

  当然,我们也可以通过platform invokecoredll中的GetDiskFreeSpaceEx引入进来,通过得到的Total Free BytesTotal Bytes计算当前的资源使用情况。如图2所示:左边是程序的运行效果,右边是settings->system->memory的信息,通过比较可以发现,他们显示的资源信息是一致的。

2:计算Memory使用的程序

  附上今日插件的那个MemWatcher安装包:memwatchercab.CAB.rar,下载后,直接将文件命改为memwatchercab.CAB,然后在设备上安装即可。以及显示资源程序的源文件:GetStorageCard.zip

 

参考文章:Display Device memory information with P/Invoke

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted on 2008-12-12 16:01 施炯 阅读(1472) 评论(10) 编辑 收藏

评论:
#1楼 2008-12-12 19:48 | tight[未注册用户]
有WM5.0下的吗?
 回复 引用   
#2楼[楼主] 2008-12-12 21:23 | 施炯      
@tight
那个安装包应该是可以的,GetStorageCard.zip需要改变目标平台到WM5,然后在重新编译。

 回复 引用 查看   
#3楼 2008-12-13 08:27 | Allen Lee      
正好,我也在了解如何为今日写插件。有使用C#的示例吗?
 回复 引用 查看   
#4楼 2008-12-13 12:54 | 黎波      
@Allen Lee
Creating a Pocket PC Today Screen Plug-in with the .NET Compact Framework
http://msdn.microsoft.com/en-us/library/ms839442.aspx
Creating Managed Today Screen Items
http://www.christec.co.nz/blog/archives/279

 回复 引用 查看   
#5楼[楼主] 2008-12-13 16:50 | 施炯      
@黎波
谢谢黎老师 嘿嘿

 回复 引用 查看   
#6楼 2009-03-03 11:07 | airwolf2026      
楼主请教个问题...俺在wince5上用.net cf写一些winform窗体...想知道如何让某些窗体不在任务栏显示,类似pc上,就是显示这个窗体的时候,在任务栏上看不到它的(标题.)pc上是有属性设置的.而.net cf 却不支持
 回复 引用 查看   
#7楼[楼主] 2009-03-03 11:16 | 施炯      
@airwolf2026
是不是类似Windows Mobile 6 SDK\Samples\Common\CPP\Win32\FullScreen
这个例子的效果呢?
隐藏Toolbar或者隐藏任务栏?

 回复 引用 查看   
#8楼 2009-03-03 11:57 | airwolf2026      
俺没有看过上面的例子的哈.不过名字看它是个全屏的程序

-------------------------------------------------
俺要的效果就是类似,.net Framework里面的 form 窗体的这个属性
"showintaskbar" 设置成false 的效果.俺的窗体不用全屏,只是一些设置界面等哈.

而.net cf 里面的form就没有这个属性了.所以想请教下楼主,看看你对这方面了解不?目标系统是wince5.0

 回复 引用 查看   
#9楼 2009-03-03 11:58 | airwolf2026      
忘记说谢谢啦.(*^__^*) 嘻嘻……
 回复 引用 查看   
#10楼[楼主] 2009-03-03 12:24 | 施炯      
@airwolf2026
呵呵 不客气~

 回复 引用 查看   
Locations of visitors to this page
欢迎访问施炯的技术博客,这是一个专注于移动开发的平台,致力于Windows Phone、Windows Mobile和Windows Embedded CE应用开发。

MVP
我的MVP配置


Get Microsoft Silverlight
昵称:施炯
园龄:3年4个月
粉丝:97
关注:13
<2008年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

搜索

 
 

常用链接

最新随笔

我的标签

随笔档案(148)

文章档案(1)

Microsoft Most Professional

Mobile Blogs

Mobile Portal

MSDN Blogs

MVPs' Blogs

My Blog

My Portal

Windows Phone

积分与排名

  • 积分 - 262794
  • 排名 - 283

最新评论

阅读排行榜

评论排行榜

推荐排行榜