我们有一个Windows Mobile应用程序,目前正在Symbol(现在是Motorola)设备上运行。我们使用制造商的SDK来执行注册条形码扫描等操作。
我们现在需要让软件与Intermec设备配合使用。
我已经在界面后面提取了扫描代码,所以我需要做的就是将Intermec API包装在该界面后面,然后为正在使用的设备加载正确的版本。
但是,我在计算软件运行的设备类型时遇到了一些困难。我可以尝试加载符号代码,然后当失败时尝试Intermec代码,但这相当垃圾。
有谁知道如何以编程方式计算出设备的类型?
答案 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);
然后解析缓冲区以确定它是哪个设备。