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就是序列号
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就是序列号
http://www.dapha.net/vb/download.asp?downid=1&id=1886
大家可以下载看看。y1g1y1(袁飞☆曾经沧海难为水,除却VB不是云☆)兄的网站我提问前就去过了。好像是用BCB解决的吧?
VB通过WMI获取硬件信息,得不到的。DeviceID指该设备在操作系统中的标识符。谢谢大家关注。但是问题还是没有解决。
我的环境是Win2k,VB6.
用acev(睡眠不足)的方法可以。
但是需要改动代码。
用DeviceIoControl,操作IOCTL_CHANGER_GET_PRODUCT_DATA就可以。
我在MSDN上找到的,但是我没有VC,也找不到IOCTL_CHANGER_GET_PRODUCT_DATA具体的数值,所以问题还没有解决。