Public Declare Function GetVolumeInformation& Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal pVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, ByVal nFileSystemNameSize As Long)
Public Const MAX_FILENAME_LEN = 256Dim RetVal As Long
Dim str As String * MAX_FILENAME_LEN
Dim str2 As String * MAX_FILENAME_LEN
Dim a As Long
Dim b As Long    retval= GetVolumeInformation("c:\", str, MAX_FILENAME_LEN, RetVal, a, b, str2, MAX_FILENAME_LEN)retval就是序列号

解决方案 »

  1.   

    这里有个代码, 不过要注册为用户。http://www.dapha.net/vb/list.asp?id=1886
      

  2.   

    我的肯定是真的 :-)http://www.csdn.net/expert/topic/934/934383.xml?temp=.7288172http://www.dapha.net/vb/list.asp?id=1886
      

  3.   

    http://ygyuan.3322.net/源代码下载.
      

  4.   

    acev(睡眠不足) 提供的方法在win2k下行不通。CreateFile结果-1
    http://www.dapha.net/vb/download.asp?downid=1&id=1886
    大家可以下载看看。y1g1y1(袁飞☆曾经沧海难为水,除却VB不是云☆)兄的网站我提问前就去过了。好像是用BCB解决的吧?
    VB通过WMI获取硬件信息,得不到的。DeviceID指该设备在操作系统中的标识符。谢谢大家关注。但是问题还是没有解决。
    我的环境是Win2k,VB6.
      

  5.   

    不是笔记本的问题,应该和你的操作系统有关。
    用acev(睡眠不足)的方法可以。
    但是需要改动代码。
    用DeviceIoControl,操作IOCTL_CHANGER_GET_PRODUCT_DATA就可以。
    我在MSDN上找到的,但是我没有VC,也找不到IOCTL_CHANGER_GET_PRODUCT_DATA具体的数值,所以问题还没有解决。
      

  6.   

    我找了好多代码,98/Me下均可,就是XP/2K下不行,主要是CopyMemory中的地址访问出现问题,请专家们看看如何解决好。