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

时间:2009-03-09 10:21:50

标签: windows-mobile compact-framework

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

我们现在需要让软件与Intermec设备配合使用。

我已经在界面后面提取了扫描代码,所以我需要做的就是将Intermec API包装在该界面后面,然后为正在使用的设备加载正确的版本。

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

有谁知道如何以编程方式计算出设备的类型?

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

来自http://www.christec.co.nz/blog/archives/77

使用以下代码并致电NativeMethods.GetOEMInfo()

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);
  }

}

答案 2 :(得分:-1)

这是本机代码,但它适用于我。

TCHAR buf[255];
SystemParametersInfo(SPI_GETOEMINFO, 255, &buf, NULL);

然后解析缓冲区以确定它是哪个设备。