matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号

PVOID buf = malloc(100);

char * buf1 = (char *)malloc(100);

PVOID buf2 = malloc(100);

char * buf3 = (char *)malloc(100);

PVOID buf4 = malloc(100);

char * buf5 = (char *)malloc(100);

int num = 0;

int num1 = 0;

int num2 = 0;

PHIDD_ATTRIBUTES a;

UpdateData(false); //更新界面

int Count = 0; //Total number of devices found

DWORD strSize=0,requiredSize=0;

BOOL result1,result2;

//定义一些变量,以后会用到

SP_DEVINFO_DATA DeviceInfoData;

SP_DEVICE_INTERFACE_DATA  DeviceInterfaceData;

PSP_DEVICE_INTERFACE_DETAIL_DATA DeviceInterfaceDetailData;

//第一步:获取deviceID

GUID deviceId;

HidD_GetHidGuid(&deviceId);

//第二步:获取设备信息

HDEVINFO handle;

handle = SetupDiGetClassDevs(&deviceId, NULL, NULL, (DIGCF_DEVICEINTERFACE | DIGCF_PRESENT)); //Get only HID devices

//第三步:对所有的设备进行枚举

result1=false; //定义一些变量

result2=false;

CString temp11="";

while(1)

{

DeviceInterfaceData.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);

result1 = SetupDiEnumDeviceInterfaces(

handle,

NULL, // IN PSP_DEVINFO_DATA  DeviceInfoData,  OPTIONAL

&deviceId,

Count,

&DeviceInterfaceData

);

if(result1 == FALSE)

{

break;

}

//获得设备详细数据(初步)

result1 = SetupDiGetDeviceInterfaceDetail(handle,

&DeviceInterfaceData,

NULL,

0,

&strSize,

NULL);

requiredSize=strSize;

DeviceInterfaceDetailData=(PSP_DEVICE_INTERFACE_DETAIL_DATA)malloc(requiredSize);

DeviceInterfaceDetailData->cbSize=sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);

DeviceInfoData.cbSize=sizeof(SP_DEVINFO_DATA);

//再次获得详细数据

SetupDiGetDeviceInterfaceDetail(handle,

&DeviceInterfaceData,

DeviceInterfaceDetailData,

strSize,

&requiredSize,

&DeviceInfoData);

//获得设备路径(最重要的部分)

//m_zf1=DeviceInterfaceDetailData->DevicePath;

UpdateData(false);

Count++;

}

if(Count != 0)

{

//AfxMessageBox("进来了");

a = (PHIDD_ATTRIBUTES)malloc(100);

a->Size = sizeof(struct _HIDD_ATTRIBUTES);

HANDLE hCom = CreateFile(DeviceInterfaceDetailData->DevicePath,

NULL,//GENERIC_READ | GENERIC_WRITE,

FILE_SHARE_READ | FILE_SHARE_WRITE,

NULL,

OPEN_EXISTING,

FILE_FLAG_OVERLAPPED,

NULL);

if (hCom == INVALID_HANDLE_VALUE)

{

AfxMessageBox("无效句柄!");

}

HidD_GetAttributes(hCom,a);

//m_sz1 = a->VendorID;

result2 = HidD_GetManufacturerString(hCom,buf,100);

if(result2 == FALSE)

{

AfxMessageBox("失败!");

}

result2 = HidD_GetProductString(hCom,buf2,100);

if(result2 == FALSE)

{

AfxMessageBox("失败!");

}

result2 = HidD_GetSerialNumberString(hCom,buf4,100);

if(result2 == FALSE)

{

AfxMessageBox("失败!");

}

while(1)

{

if(buf1[num-1] != '\0')

{

if(num == 0)

{

sprintf(buf1,"%s",(char *)buf);

}

else

{

sprintf(buf1,"%s%s",buf1,(char *)buf + (2*num));

}

num++;

}

else

{

break;

}

}

while(1)

{

if(buf3[num1-1] != '\0')

{

if(num1 == 0)

{

sprintf(buf3,"%s",(char *)buf2);

}

else

{

sprintf(buf3,"%s%s",buf3,(char *)buf2 + (2*num1));

}

num1++;

}

else

{

break;

}

}

while(1)

{

if(buf5[num2-1] == '\0')

{

if(num2 == 0)

{

sprintf(buf5,"%s",(char *)buf4);

}

else

{

sprintf(buf5,"%s%s",buf5,(char *)buf4 + (2*num1));

}

num2++;

}

else

{

if(num2 == 0)

{

buf5 = "Not specified";

}

break;

}

}

m_zf1 = buf1;

m_zf2 = buf3;

m_zf3 = buf5;

}

UpdateData(false);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/526282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matlab中多边形滤波器,几种常见空间滤波器MATLAB实现

本文链接:https://blog.csdn.net/LYduring/article/details/80443573一、目的实现算术均值滤波器、几何均值滤波器、中值滤波器、修正的阿尔法均值滤波器、自适应中值滤波器,并比较不同滤波器的降噪结果。二、代码代码的思路如下:(1)先对原始…

matlab fminimax 例子,Matlab应用实例(8)—fminimax

说明:fminimax用来求最小的最大值,比如城市建设消防站点时,考虑到最主要的因素是到最远的地方的用时(可换算为距离)最小,比如A方案到6个区域的用时为(1,1,1,1,1,12)&…

错误请联系管理员文件 index.php,帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法...

本文将为关注织梦者的朋友提供的是的帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法相关教程,具体实例代码请看下文:本文实例讲述了帝国CMS订单、反馈信息、投稿与留言发邮件通知管理员的方法。分享给大家供大家参考。具体实现方法如下:一、设…

php://filter利用条件,浅谈php://filter技巧

php://filterphp://filter可以作为一个中间流来处理其他流,具有四个参数:名称描述备注resource指定了你要筛选过滤的数据流必选read可以设定一个或多个过滤器名称,以管道符(|)分隔。可选write可以设定一个或多个过滤器名称,以管道符(|)分隔。…

mplayer-php,mplayer+smplayer 前后端播放器安装

环境:f8模式:mplayer做后端,smplayer做前端说明:如果是自己编译mplayer,后面所讲到的codecs路径就可能发生变化,做适当修改即可!以下省略一些解压缩之类的操作步骤!安装livna.org的第…

oracle昨日时间,。。今日,昨日,上周,本月,本年,按时间统计总金额

”本月 102“, 这是错的你少加了“10 7 41 2009-1-5 16:26:39”这条数据!结果具体如下:SQL> select A_ID, PAYMONEY, to_char(A_TIME, YYYY-MM-DD HH24:MI:SS) A_TIME from aa;A_ID PAYMONEY A_TIME---------- ---…

php验证卡号,PHP验证信用卡卡号是否正确函数

这篇文章主要介绍了PHP验证信用卡卡号是否正确函数,本文直接给出实现代码,需要的朋友可以参考下可以使用以下PHP函数,,验证一个卡号是否是信用卡:function validateCard ( $cardnumber ){$cardnumber preg_replace ( " /\D|\s/ " …

ssh远程执行oracle命令,ssh远程执行命令技巧

ssh可以直接在本地显示远程计算机所执行的命令远程ip:192.168.4.36本地:local5[rootlocal5 ~] # ssh 192.168.4.36 df && lsroot192.168.4.36s password:Filesystem 1K-blocks Used Available Use% Mounted on/dev/mapper/VolGro…

小米笔记本装linux教程视频教程,Archlinux安装指南~小米笔记本Air 13.3英寸版本

小米笔记本Air 13.3英寸版本,配置为:Intel Core i5-6200U处理器、8GB内存、256GB固态硬盘、NVIDIA GeForce 940MX独立显卡,13.3英寸1920X1080分辨率的IPS屏幕。1.制作U盘启动盘在Windows下使用USBWiter制作U盘启动盘,ISO为tuna源下…

Elasticsearch的分片平衡问题解决

2023年11月份在某电商系统生产中的Elasticsearch(以下简称ES)集群突然,出现了大量慢查询告警,导致请求堆积。经过几天的排查发现了ES节点主分片和副本分片分布存在不均匀的问题。当然了暂未有定论是由于分片不均衡导致了性能下降&…

linux卸载nomachine,NoMachine 安装与配置及使用

对Linux管理员们来说,远程办公不是什么新鲜事。如果管理员不在服务器跟前,远程办公更是家常便饭。一般而言,图形用户界面(GUI)默认情况下并不安装在Linux服务器上。但是可能有一些Linux管理员还是决定将GUI安装在Linux服务器上。如果你的服务…

linux系统之间无密传输,scp采用无密码在两台linux服务器之间传输数据(示例代码)...

一、root用户:1. 在主机A上执行如下命令来生成配对密钥:ssh-keygen -t rsa按照提示操作,注意,不要输入passphrase。提示信息如下Generating public/private rsa key pair.Enter file in which to save the key (/root/.ssh/id_rsa…

linux中top和ps的内存区别,linux - top与ps间的区别

背景在linux系统中提供了2个查询系统负荷值的命令,一个是 ps -o THREAD 一个是 top ,这两个命令都能够查询当前进程的CPU使用率情况,但是所代表的含义确实不一样的,ps -o THREAD 偏向与整个进程周期所占的CPU使用率,而 top 更偏向…

linux登录界面输入密码时卡住6,centos6.8(虚拟机VNC)输入正确用户名和密码仍跳回登录界面...

1)CentOS自动更新到6.8后root无法登陆问题解决虚拟机CentOS服务器不知道被谁更新系统到6.8后,发现在本机上即使输入正确的密码也无法登陆,发现有一些人也碰见过同样的问题,但是他们是因为系统变为64位后,无法找到pam_limits.so的正…

linux内核功能关闭透明大页 功能,redhat linux 7.4关闭透明大页

每一步:在GRUB_CMDLINE_LINUX加入选项 transparent_hugepageneverecho GRUB_CMDLINE_LINUX"transparent_hugepagenever" >> /etc/default/grub第二步:重新生成grub配置文件grub2-mkconfig -o /boot/grub2/grub.cfgGenerating grub confi…

linux获取ip地址的接口,获取Linux上接口的IP地址

sjsam..23如果您正在寻找特定接口的地址(IPv4),请说wlan0然后尝试使用getifaddrs()的代码:#include #include #include #include #include #include #include #include int main(int argc, char *argv[]){struct ifaddrs *ifaddr, *ifa;int family, s;char host[NI_MAXHOST];if…

linux yum 安装widget,CentOS 7安装Qt5.12.1过程

默认下载在Downloads目录下预安装sudo yum -y install mesa-libGL-devel mesa-libGLU-devel freeglut-devel给下载的文件赋予可执行的权限chmod x qt-opensource-linux-x64-5.12.1.run执行文件,进行安装./qt-opensource-linux-x64-5.12.1.run接下来会进行界面化的安…

usb otg vnc linux,20131126版本后,可以从PC通过USB-OTG VNC到pcDuino

为什么80%的码农都做不了架构师?>>>有些玩家购买pcDuino到手后发现自己没有显示器,没有鼠标键盘,有的只有手机的充电器和数据线。pcDuino开发者了解到粉丝们的郁闷之后,在软件上帮忙大家解决了这个问题。下面就给大家介绍…

linux 镜像错误,VituralBox 使用已有镜像文件报错:E_INVALIDARG (0x80070057)

VituralBox 使用已有镜像文件报错:E_INVALIDARG (0x80070057):问题描述:UUID已经存在Cannot register the hard disk E:\system_iso\CentOS6.8.vdi {05f096aa-67fc-4191-983d-1ed00fc6cce9}because a hard disk E:\system_iso\centos68_02\centos6.8.vdi…

c语言中123 234 345 456,如何在C中将数字从1123456789格式化为1,123,456,789?

宝慕林4294392您可以按以下方式递归执行此操作(请注意&#xff0c;INT_MIN如果使用二进制补码&#xff0c;则需要额外的代码来管理它)&#xff1a;void printfcomma2 (int n) { if (n < 1000) { printf ("%d", n); return; } printfcomma2…