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内核版本号)。

Detect Windows Mobile vs. "plain" Windows CE

如果您愿意参考微软MSDN常见问题解答>> VSD常见问题解答<<下面的问题#10:我如何检测平台和Windows Mobile版本?

我会重新发布,但是有一个小的代码示例和几个链接在这里复制会很耗时。

从框架3.5开始,在Microsoft.WindowsCE.Forms命名空间中有一个属性SystemSettings.Platform,它提供了这些信息(返回WinCEGeneric, PocketPCSmartphone)。

您还可以检查是否存在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();