如何用程序得到U盘的ProductID?(最好有源码)

zblaoshu1979 2004-09-21 04:35:48
如题
...全文
343 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
zblaoshu1979 2004-10-08
  • 打赏
  • 举报
回复
up
zblaoshu1979 2004-09-30
  • 打赏
  • 举报
回复
luowin(不黑不白):GetVolumeInformation 函数得到的是盘的卷号吧,不是我要的硬件序列号,不过还是要谢谢你。
zblaoshu1979 2004-09-30
  • 打赏
  • 举报
回复
谢谢大家
luowin 2004-09-28
  • 打赏
  • 举报
回复
接上:
盘符一般是从A到Z,你可以用一个下拉列表框进行选择。
luowin 2004-09-28
  • 打赏
  • 举报
回复
LPCTSTR lpRootPathName=pathstr;//pathstr是盘符;

LPTSTR lpVolumeNameBuffer=new char[12];//磁盘卷标
DWORD nVolumeNameSize=12;// 卷标的字符串长度
DWORD VolumeSerialNumber;//硬盘序列号
DWORD MaximumComponentLength;// 最大的文件长度
LPTSTR lpFileSystemNameBuffer=new char[10];// 存储所在盘符的分区类型的长指针变量
DWORD nFileSystemNameSize=10;// 分区类型的长指针变量所指向的字符串长度
DWORD FileSystemFlags;// 文件系统的一此标志
if(GetVolumeInformation(lpRootPathName,
lpVolumeNameBuffer, nVolumeNameSize,
&VolumeSerialNumber, &MaximumComponentLength,
&FileSystemFlags,
lpFileSystemNameBuffer, nFileSystemNameSize))
{
CString strhigh="aa",strlow="bb";
strhigh.Format("%lx",VolumeSerialNumber/0xffff);//取高16位
while(strhigh.GetLength()<4)
{
strhigh="0"+strhigh;
}
strhigh.MakeUpper();
strlow.Format("%lx",(VolumeSerialNumber)&(0xffff)); //取低16位
while(strlow.GetLength()<4)
{
strlow="0"+strlow;
}
strlow.MakeUpper();
// AfxMessageBox(str);
m_hardid="盘序列号是"+strhigh+"-"+strlow;//m_hardid是一个EDIT
delete [] lpFileSystemNameBuffer;
delete [] lpVolumeNameBuffer;

}
else
{
CString strb="设备没准备好"; //如果没有U盘,那当然........:)
m_hardid=strb;
}
hongqi162 2004-09-28
  • 打赏
  • 举报
回复
有情up
myblind 2004-09-28
  • 打赏
  • 举报
回复
你可以看看 usbview 的源码,在 2003ddk 里有。
cn0cn 2004-09-28
  • 打赏
  • 举报
回复
up
zblaoshu1979 2004-09-24
  • 打赏
  • 举报
回复
up
zblaoshu1979 2004-09-23
  • 打赏
  • 举报
回复
UP
zblaoshu1979 2004-09-22
  • 打赏
  • 举报
回复
to tengfei2005() :windriver怎么用呀,能说的具体点吗?
to roger_ding(海天一色) SetupDiEnumDeviceInfo 好象属于HID的函数,只能枚举出HID设备,列不出U盘
roger_ding 2004-09-22
  • 打赏
  • 举报
回复
用setupapi的一套函数
SetupDiGetClassDevs
SetupDiEnumDeviceInfo
SetupDiGetDeviceRegistryProperty

附个链接,希望对你有帮助
http://community.csdn.net/Expert/topic/3172/3172923.xml?temp=.3612482
large_small 2004-09-22
  • 打赏
  • 举报
回复
UP
tengfei2005 2004-09-22
  • 打赏
  • 举报
回复
用windriver就OK了
zblaoshu1979 2004-09-22
  • 打赏
  • 举报
回复
自己UP
zblaoshu1979 2004-09-22
  • 打赏
  • 举报
回复
to oyljerry(☆勇敢的心☆)
读注册表不行呀,那样没有办法判断当前的U盘对应的是哪个GUID
我用过枚举硬件信息,但是就是得不到U盘的Serial number
哎,郁闷,恳求大家帮忙。
tengfei2005 2004-09-22
  • 打赏
  • 举报
回复
windriver是一个软件,你可以到网上下一个。运行后找到你的U盘,你可以看所有的硬件信息了,而且你也可以通过它的函数莱读。
zblaoshu1979 2004-09-22
  • 打赏
  • 举报
回复
to luowin(不黑不白) :把你写的代码给我看看好吗?
luowin 2004-09-22
  • 打赏
  • 举报
回复
我用的是朗科的双启动U盘,自己编了一个程序可以读出来呀。关注。
zblaoshu1979 2004-09-22
  • 打赏
  • 举报
回复
谢谢roger_ding(海天一色)
to crystal521(水晶泪):这个例子我已经下载了他的源码,可是就是得不到U盘的Serial number
加载更多回复(9)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧