golang读取u盘序列号(通过读取序列号实现)
发布时间:2020-12-16 09:31:07 所属栏目:大数据 来源:网络整理
导读:仅供参考 package mainimport ("fmt""log""os""strconv""strings"registry "github.com/golang/sys/windows/registry")func main() {//查询插入的u盘个数k,err := registry.OpenKey(registry.LOCAL_MACHINE,`SYSTEMCurrentControlSetServicesUSBSTOREnum
仅供参考
package main import ( "fmt" "log" "os" "strconv" "strings" registry "github.com/golang/sys/windows/registry" ) func main() { //查询插入的u盘个数 k,err := registry.OpenKey(registry.LOCAL_MACHINE,`SYSTEMCurrentControlSetServicesUSBSTOREnum`,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 string information,err := k.GetStringValue(strconv.Itoa(0)) strn := strconv.FormatUint(n,10) //n是uint64类型,先转成string nInt,_ := strconv.Atoi(strn) //再转成int类型 if n > 1 { fmt.Printf("n检测到多个u盘,按插入顺序输出u盘信息nn") } 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |