如何修改WindowsCE的平台类型(上)

在开发Windows CE的应用程序时,经常需要检测平台类型,了解我们的应用程序运行在Pocket PC、Smartphone还是Windows CE上。在这篇文章里,我们介绍如何编写一个应用程序来检测当前运行的平台类型。

在开发Windows CE的操作系统时,我们会遇到另外一种情况:某些应用程序限制了运行的操作系统平台,比如只允许运行在Pocket PC上。而我们如果想在Windows CE上运行的话,就需要修改操作系统的平台类型。注意:这种情况只能出现在测试时,不应该修改实际产品的平台类型,否则会引起很多安全性的问题。
创建平台检测程序

首先,我们需要创建一个应用程序来检测当前的平台类型,我们使用C++和Platform Builder来创建这个程序。如果你熟悉.NET Compact Framework的开发,想开发托管的平台检测程序,请参考:

如何检测你的应用程序是否运行在模拟器上

http://blogs.msdn.com/netcfteam/archive/2006/09/15/756755.aspx

检测你的程序运行在Pocket PC或Smartphone上

http://blogs.msdn.com/netcfteam/archive/2006/09/22/766343.aspx

检测平台是否支持触摸屏

http://blogs.msdn.com/netcfteam/archive/2006/10/02/Platform-detection-III_3A00_-How-to-detect-a-touch-screen-on-Windows-CE-in-.NET-CF.aspx

创建OS Design和编译的过程在此略过,可以参考《Windows CE 6.0 R2开发初体验》. 我们首先在Platform Builder里创建一个子工程(Subporject),在Solution Explorer里找到Subporject节点,右键选择Add New Porject,会启动向导。

在向导中,选择WCE Application,将工程名称改为”CheckPlatform”.

为了少写代码,我们选择”Hello World” application,一般情况下,我们应该选择simple Windows Embedded CE application.

我们打开Subprojects节点中的CheckPlatform(工程名称)中的Source files节点中找到CheckPlatform.cpp文件。在文件中找到WndProc函数,将代码修改为:

 
 
 
 
  1. TCHAR szPlatform[1024];  
  2. switch (message)  
  3. {  
  4. case WM_PAINT:  
  5. hdc = BeginPaint(hWnd, &ps);  
  6. // TODO: Add any drawing code here...  
  7. RECT rt;  
  8. GetClientRect(hWnd, &rt);  
  9. if (SystemParametersInfo(SPI_GETPLATFORMTYPE,sizeof(szPlatform),szPlatform,0)!=0)  
  10. {  
  11. DrawText(hdc, szPlatform, _tcslen(szPlatform), &rt, DT_CENTER);  
  12. }  
  13. EndPaint(hWnd, &ps);  
  14. break;  
  15. default:  
  16. return DefWindowProc(hWnd, message, wParam, lParam);  

代码写的并不好,主要是为了验证SystemParametersInfo函数,我们就将Platform Type显示到窗体上了。正常情况下,我们应该用下面的代码判断运行平台:

 
 
 
 
  1. if (SystemParametersInfo(SPI_GETPLATFORMTYPE,sizeof(szPlatform),szPlatform,0)!=0)  
  2. {  
  3. if (lstrcmp(szPlatform,TEXT("PocketPC"))==0)  
  4. ; // Pocket PC  
  5. else if (lstrcmp(szPlatform,TEXT("Smartphone"))==0)  
  6. ; // smartphone  

分享文章:如何修改WindowsCE的平台类型(上)
URL网址:http://www.shufengxianlan.com/qtweb/news49/347249.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联