Detect Windows Mobile vs. "plain" Windows CE
本文关键字:quot Windows plain CE Mobile Detect vs | 更新日期: 2023-09-27 18:14:33
我的Compact Framework应用程序如何检测它是否在Windows Mobile(顶部开始菜单,底部菜单栏)下运行,而不是"plain"Windows CE(底部开始菜单,应用程序内的菜单栏)?
由于Windows Mobile运行在Windows CE内核之上,Environment.OSVersion.Version
在这里并没有真正的帮助(它只是返回CE内核版本号)。
如果您愿意参考微软MSDN常见问题解答>> VSD常见问题解答<<下面的问题#10:我如何检测平台和Windows Mobile版本?
我会重新发布,但是有一个小的代码示例和几个链接在这里复制会很耗时。
从框架3.5开始,在Microsoft.WindowsCE.Forms
命名空间中有一个属性SystemSettings.Platform
,它提供了这些信息(返回WinCEGeneric
, PocketPC
或Smartphone
)。
您还可以检查是否存在Microsoft。WindowsMobile和Microsoft.WindowsMobile.Status assembly…CE不包含这些WM在CE代码库之上分层的附加组件。
我们使用这样的东西。但是每个CE设备可能会返回一个不同的字符串。
[DllImport("coredll.dll", SetLastError = true)]
public static extern bool SystemParametersInfoGetString(uint uiAction, uint uiParam, System.Text.StringBuilder pvParam, uint fWinIni);
System.Text.StringBuilder platformBuff = new System.Text.StringBuilder(100);
if (SystemParametersInfoGetString(SPI_GETPLATFORMTYPE, (uint)platformBuff.Capacity, platformBuff, 0))
return platformBuff.ToString();