首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测Windows Mobile5设备序列号?(.NET CF 3.5)

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

Stack Overflow用户
提问于 2011-08-20 02:34:15
回答 2查看 4.7K关注 0票数 0

我们有几台我工作的设备(主要是Datalogic 4420 Falcon),但总有人把其中一台留在基础上。电池没电了,然后他们把它们带回来重新安装。(应该有一种方法可以将SD卡上的文件配置为在出现此类错误时重新加载,但它并不能很好地工作)

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

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

代码语言:javascript
复制
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确实制作了专门针对他们设备的软件开发工具包,但我们不希望我们的应用程序与任何一家制造商捆绑在一起(我们已经与VS2008捆绑在一起)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-24 00:32:30

我首先尝试使用P/Invoke来获取设备ID (带有IOCTL_HAL_GET_DEVICEIDKerneIoControl),并查看它是否与您想要的序列号相匹配。Here's an example

票数 3
EN

Stack Overflow用户

发布于 2011-08-23 22:44:09

我不知道你的Datalogic4420 Falcon设备,但我在Intermec CK30 & CK60工作,我有他们的itc50.dll文件。以下是代码片段:

代码语言:javascript
复制
[DllImport("itc50.dll")]public static extern int ITCGetSerialNumber(StringBuilder Snumber, int buffSize);

StringBuilder hwSN = new StringBuilder(12);

if (ITCGetSerialNumber(hwSN, hwSN.Capacity) >= 0)
{
    ;
    ;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7125867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档