繁体   English   中英

如何检测Windows Mobile 5设备序列号? (.NET CF 3.5)

[英]How to detect Windows Mobile 5 Device Serial Number? (.NET CF 3.5)

我们有几种设备在工作(主要是Datalogic 4420 Falcon ),并且总是有人丢掉一个设备。 电池电量耗尽,然后将其放回原处以进行设置。 (应该有一种方法可以配置SD卡上的文件,以在发生此类错误时重新加载,但效果不佳)

当有人将更改保存在设备上时(使用我的将数据写入SQL Server的应用程序),序列号将随它一起发送,因此我们可以跟踪在哪里使用了哪些设备。

每个设备都有一个Serial Number ,我必须物理(即手动)将其写入“ Device name字段中,以便读取。 如果有人想知道如何在这里工作代码:

static string deviceId = null;

public static string DeviceName {
  get {
    if (String.IsNullOrEmpty(deviceId)) {
      using (RegistryKey key = Registry.LocalMachine.OpenSubKey("Ident", true)) {
        try {
          deviceId = key.GetValue("Name", "[Unnamed]").ToString();
        } catch (Exception e) {
          ErrorWrapper("GetDeviceName", e);
          deviceId = Dns.GetHostName();
        } finally {
          key.Flush();
          key.Close();
        }
      }
    }
    return deviceId;
  }
}

我不喜欢手动(即易发胖手指)序列号输入。 是否有电话查询设备的序列号,或者该供应商特定?

Datamax确实制作了针对其设备的SDK,但我们不希望将应用程序绑定到任何制造商(我们已经绑定到VS2008)。

在此处输入图片说明

我试图通过P / Invoke来获取设备ID(启动KerneIoControlIOCTL_HAL_GET_DEVICEID ),看看它是否你以后的序列号相匹配。 这是一个例子

我不了解您的Datalogic 4420 Falcon设备,但我使用Intermec CK30&CK60,并且拥有他们的itc50.dll文件。 这是代码段:

[DllImport("itc50.dll")]public static extern int ITCGetSerialNumber(StringBuilder Snumber, int buffSize);

StringBuilder hwSN = new StringBuilder(12);

if (ITCGetSerialNumber(hwSN, hwSN.Capacity) >= 0)
{
    ;
    ;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM