golang获取u盘序列号(通过读取注册表实现)
package mainimport ("fmt""log""os""strconv""strings"registry "github.com/golang/sys/windows/registry" )func main() {//查询插入的u盘个数k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SYSTEM\CurrentControlSet\Services\USBSTOR\Enum`, registry.QUERY_VALUE)if err != nil {log.Fatal(err)}defer k.Close()n, _, err := k.GetIntegerValue("Count")if err != nil {log.Fatal(err)}if n < 1 {fmt.Println("没有检测到u盘!")os.Exit(-1)}//查询u盘序列号var sn, pvid, vid, pid stringinformation, _, err := k.GetStringValue(strconv.Itoa(0))strn := strconv.FormatUint(n, 10) //n是uint64类型,先转成stringnInt, _ := strconv.Atoi(strn) //再转成int类型if n > 1 {fmt.Printf("\n检测到多个u盘,按插入顺序输出u盘信息\n\n")}for i := 0; i < nInt; i++ {information, _, err = k.GetStringValue(strconv.Itoa(i))if err != nil {log.Fatal(err)}sn = strings.Split(information, "\\")[2]pvid = strings.Split(information, "\\")[1]vid = strings.Split(pvid, "&")[0]vid = strings.Split(vid, "_")[1]pid = strings.Split(pvid, "&")[1]pid = strings.Split(pid, "_")[1]fmt.Println("当前u盘sn码:", sn)fmt.Println("当前u盘vid: ", vid)fmt.Println("当前u盘pid: ", pid)fmt.Println("")} }
参考链接: https://godoc.org/golang.org/x/sys/windows/registry
20190318更新,此方法不适于慧荣主控的u盘。
转载于:https://www.cnblogs.com/sherlock-merlin/p/10197581.html
golang获取u盘序列号(通过读取注册表实现)相关推荐
- 获取U盘序列号的代码
2019独角兽企业重金招聘Python工程师标准>>> 获取U盘序列号的代码 日期:2007年10月29日 作者:laihongbo 人气:4679 查看:[大字体 中字体 小字体] ...
- pe方式修改计算机名,通过修改PE注册表实现更换WinPe文件夹浏览方式
通过修改PE注册表实现更换WinPe文件夹浏览方式 发布时间:2014-04-04 16:19:31 作者:佚名 我要评论 WinPe中的文件夹浏览方式早已看的不耐烦了,想不想换个品味呢?如果 ...
- 获取u盘序列号 linux,linux usbmon获取的U盘数据
urb标志 ep->id 时间戳 ep->tstamp 事件类型(S-submission, C-Callback, E-submission error) ep->type 端点类 ...
- linux c程序获取u盘序列号,linux下怎么用c获取硬盘物理序列号
波斯汪 1.在Linux系统中通过C语言获取硬盘序列号,可以借助于ioctl()函数,该函数原型如下:1int ioctl(int fd, unsigned long request, ...); 1 ...
- 修改注册表实现程序开机自启动
注册表简介 何为注册表 注册表相当于Windows下的一个庞大的层次性数据库. 基本上有责系统所有的配置信息 注册表是windows操作系统中的一个核心数据库,其中存放着各种参数,直接控制着windo ...
- 重装系统后通过修改注册表实现记录还原
安装前先备份部分数据 微信.QQ聊天记录 Navicat Premium 记录 SecureCRT 记录 WiFi 信息 其他需要备份的信息 以上备份的信息中微信.QQ可以在安装时就将安装目录设置到 ...
- .html 打开方式注册表,修改注册表实现文件默认打开方式
在您的系统中安装了许多应用软件时,难免会有几个软件可以打开同一种文件格式的情况,这时,您可能希望能够自己选择用哪一种软件打开,也可能希望能在使用的过程中更换打开方式,这样不仅可以避免在某个应用软件损坏 ...
- Windows: Longmai GM3000 ukey修改注册表实现是否清PIN码方法
操作系统:Win7x64 ukey型号:Longmai GM3000 for itrus(itrus定制版.通用版应该也可以,手头没有,没法测试) csp版本: GM3000TWCSP.dll 1. ...
- C++通过写注册表实现将文件夹映射为系统虚拟盘
最近为了实现这个需求,网上找了很久也没有具体说明用注册表来实现的,大多数是用DefineDosDevice,或者调用系统工具,后来请教了一个CSDN上的朋友,然后自己慢慢摸索,最终可以实现了.不过还是 ...
- wince Hive注册表实现机制
WinCE下的注册表可以分为两种,一种是RAM based,另外一种是HIVE based了.这要根据你在PB里添加的是哪种配置. 用PB向导新建的WinCE工程文件默认会用RAM based. Hi ...
最新文章
- 【Cocos2d入门教程二】Cocos2d-x基础概念
- mysql自增mybatis返回主键_Mybatis + mysql 返回自增主键
- 我的zencart 安装流程
- Java实现八皇后问题的解法(一维数组版本)
- c++队列queue
- c mysql备份还原数据库,MySQL数据库备份与恢复方法
- (二分)Trailing Zeroes (III)
- Java动态代理之JDK实现和CGlib实现
- 取出字符串strName前4个汉字
- ​深度学习基础 | Seq2seq+Attention
- 树莓派入门教程 - 0 - 准备篇 - 0.3 树莓派串口访问终端
- 除了html 还有什么页面,HTML页面布局有哪些?
- 关于pycharm安装出现的interpreter field is empty,无法创建项目存储位置
- mysql 给已存在的商品数据,根据商品ID增加商品编号
- python开发grasshopper插件_Rhino_Grasshopper_Python 开发的正确姿势
- 试论软件开发项目的成功因素
- 个人音乐流媒体服务器mStream
- 使用wbadmin备份整个网络上的完整Vista PC
- 报错:Ncat: bind to :::8888: Address already in use. QUITTING
- 立秋了,愿天下人天寒心不寒,快快乐乐