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

开发
本文介绍如何修改Windows CE的平台类型,我们介绍如何编写一个应用程序来检测当前运行的平台类型。

在开发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,会启动向导。

在Platform

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

选择WCE


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

我们选择”Hello

我们打开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  

【编辑推荐】

  1. Windows Embedded Standard 2009 功能简介
  2. 微软计划通过Windows Embedded进军Smartbook市场
  3. Windows Embedded嵌入式系统的特色
  4. 在Windows Embedded中创建Silverlight组件
  5. Windows Embedded与生活息息相关
责任编辑:佚名 来源: 博客园
相关推荐

2009-07-16 15:02:39

Windows CE平台类型

2010-02-25 15:30:47

SDRAMWindows CE

2010-03-31 16:36:35

Windows CE

2009-04-11 15:12:24

Windows CE串行通信GPS

2009-04-22 17:18:29

WindowsCEVistaXP

2011-08-01 16:52:42

Windows CE 嵌入式

2009-08-17 09:57:00

C# Windows

2011-06-27 09:49:53

Windows CEAndroid

2010-03-17 14:21:47

Windows Emb

2009-07-06 18:01:04

Windows CE未公开函数

2009-05-28 13:27:33

Windows CE

2018-05-24 14:40:04

2010-05-05 13:16:02

Windows PhoWindows CE

2021-11-04 23:08:35

Windows 11Windows微软

2020-06-22 08:50:15

WindowsPython编程语言

2023-01-28 16:16:42

WindowsPython

2009-09-24 09:45:07

Windows Emb

2009-08-17 09:27:12

c# Windows

2010-01-13 14:18:52

Windows Emb

2010-03-30 15:44:16

Windows CE
点赞
收藏

51CTO技术栈公众号