Windows mobile 如何确定Windows Mobile设备的类型?

Windows mobile 如何确定Windows Mobile设备的类型?,windows-mobile,compact-framework,Windows Mobile,Compact Framework,我们有一个Windows Mobile应用程序,目前正在Symbol(现在的摩托罗拉)设备上运行。我们使用制造商的SDK进行注册条形码扫描等操作 我们现在需要让软件与Intermec设备一起工作 我已经在接口后面抽象了扫描代码,所以我所需要做的就是在接口后面包装Intermec API,然后为正在使用的设备加载正确的版本 然而,我在计算软件运行的设备类型时遇到了一些困难。我可以尝试加载符号代码,然后在失败时尝试Intermec代码,但那是相当垃圾的 有人知道我如何通过编程计算出设备的类型吗?见此

我们有一个Windows Mobile应用程序,目前正在Symbol(现在的摩托罗拉)设备上运行。我们使用制造商的SDK进行注册条形码扫描等操作

我们现在需要让软件与Intermec设备一起工作

我已经在接口后面抽象了扫描代码,所以我所需要做的就是在接口后面包装Intermec API,然后为正在使用的设备加载正确的版本

然而,我在计算软件运行的设备类型时遇到了一些困难。我可以尝试加载符号代码,然后在失败时尝试Intermec代码,但那是相当垃圾的


有人知道我如何通过编程计算出设备的类型吗?

见此。它将帮助您获取设备的OEM信息。

这是本机代码,但对我来说很有用

TCHAR buf[255];
SystemParametersInfo(SPI_GETOEMINFO, 255, &buf, NULL);
然后只需解析缓冲区就可以知道它是哪个设备。

From

使用下面的代码并调用
NativeMethods.GetOEMInfo()


原始问题已明确标记为NetCF,因此如果没有更多代码,这将无法工作。即使这样,它也不会告诉你它是什么类型的设备,除非你有一些可能返回的主列表。
private static class NativeMethods
{
  [DllImport("coredll.dll")]
  private static extern int SystemParametersInfo(uint uiAction, uint uiParam, StringBuilder pvParam, uint fWiniIni);

  private const uint SPI_GETPLATFORMTYPE = 257;
  private const uint SPI_GETOEMINFO = 258;

  private static string GetSystemParameter(uint uiParam)
  {
    StringBuilder sb = new StringBuilder(128);
    if (SystemParametersInfo(uiParam, (uint)sb.Capacity, sb, 0) == 0)
      throw new ApplicationException("Failed to get system parameter");
    return sb.ToString();
  }

  public static string GetOEMInfo()
  {
    return GetSystemParameter(SPI_GETOEMINFO);
  }

}