今天工作需要,需要程序当中获取U盘的ID 。可是用网上搜来的代码,出错。代码使用的是http://topic.csdn.net/t/20051108/10/4378620.html这个帖子里面的代码,其中      PSP_INTERFACE_DEVICE_DETAIL_DATA = ^PSP_INTERFACE_DEVICE_DETAIL_DATA;这句编译的时候出错,提示[DCC Error] Unit1.pas(53): E2086 Type 'PSP_INTERFACE_DEVICE_DETAIL_DATA' is not yet completely defined,请问是何原因。谢谢大家

解决方案 »

  1.   

    'PSP_INTERFACE_DEVICE_DETAIL_DATA' 未被完全定义?
    用这么底层的函数干什么……
    借用某牛人的资料,读注册表[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_Netac&Prod_OnlyDisk&Rev_1.11\221D19FD3D8E6261&0]   
        
      221D19FD3D8E6261就是硬件ID了   
        
      [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR\Disk&Ven_____&Prod______&Rev_4.00\1F3312000265&0]   
        
      1F3312000265就是硬件ID了   
        
        
      

  2.   

    第一:这个硬件ID每个都不一样吗?
    第二:会不会有人通过修改这个ID,来骗取我程序的通过。
      

  3.   

    或许我的问题没有描述请,我要获取当前插在机器上的U盘的ID,注册表里有所有用过的U盘的ID啊。那个数量可多了啊
      

  4.   

    这几天一直在研究这个问题。发现网上很多代码都是从注册表中来获取这个ID,可是实际上这个ID并不是U盘真正的SN。真正的SN大家可以拿chipgenius来看看,那完全和注册表中的不一样的。谁能提点下如何获取那个真正硬件的SN号呢