如何获得局域网中某电脑的硬盘序列号?

tyqtcq 2005-02-17 02:51:41
rt
...全文
636 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
tyqtcq 2005-02-18
  • 打赏
  • 举报
回复
to kmzs(.:RNPA:.山水岿濛)
如何获得网卡的MAC编码(网络中的任意一台电脑)
kmzs 2005-02-17
  • 打赏
  • 举报
回复
SCSI硬盘没有序列号
还不如获得网卡的MAC编码比较好办
tyqtcq 2005-02-17
  • 打赏
  • 举报
回复
DING
tyqtcq 2005-02-17
  • 打赏
  • 举报
回复
to viena(维也纳nn-实心木头人)
如果是其他系统呢?
如果不行的话可不可以获得cpu的id号也可以的
你的代码如何指定电脑名称呢?
我运行时nRet =0
whp320 2005-02-17
  • 打赏
  • 举报
回复
有没有VC的啊?:)
viena 2005-02-17
  • 打赏
  • 举报
回复
[转贴其中的一个回复]

'在WIN98下,把在SYSTEM目录下smartvsd.vxd这个文件拷贝到SYSTEM\IOSUBSYS
'然后重新启动,然后再运行以下程序
’-----------------------以下代码经过测试-----------------------
' ---------------——-----到时间可别忘了给分!!!!------------
'注意:以下代码得到的是硬盘厂商固定的序列号,而不是硬盘的逻辑序列号
’以下代码支持Windows 95 OSR2, Windows 98, Windwos 98 SE, Windows ME
'第一个硬盘必须为IDE接口
’------------------------源代码开始--------------------------------
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long
Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any, ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize As Long, lpBytesReturned As Long, lpOverlapped As Long) As Long
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Type IDERegs
bFeaturesReg As Byte
bSectorCountReg As Byte
bSectorNumberReg As Byte
bCylLowReg As Byte
bCylHighReg As Byte
bDriveHeadReg As Byte
bCommandReg As Byte
bReserved As Byte
End Type

Type InParams
cBufferSize As Long
irDriveRegs As IDERegs
bDriveNumber As Byte
bReserved(0 To 19) As Byte
End Type


Dim inbuff As InParams
Dim outbuff(0 To 528) As Byte

Dim SerialNumber As String


Function ChangeByteOrder(s As Variant, nLen As Long)
Dim i As Long
Dim pi As Long
pi = 0
For i = 0 To nLen / 2 - 1
c = s(pi)
s(pi) = s(pi + 1)
s(pi + 1) = c
pi = pi + 2
Next

End Function

Dim SerialNumber As String

Sub Main()
Dim nBytes As Long
Dim nRet As Long
Dim hVxD As Long

Dim BSerialNumber(0 To 19) As Byte

inbuff.cBufferSize = 512
inbuff.bDriveNumber = 0
inbuff.irDriveRegs.bSectorCountReg = 1
inbuff.irDriveRegs.bSectorNumberReg = 1
inbuff.irDriveRegs.bCylHighReg = 0
inbuff.irDriveRegs.bCylLowReg = 0
inbuff.irDriveRegs.bDriveHeadReg = &HA0
inbuff.irDriveRegs.bCommandReg = &HEC
hVxD = CreateFile("\\.\smartvsd", 0, 0, 0, 1, 0, 0)
nRet = DeviceIoControl(hVxD, &H7C088, inbuff, Len(inbuff) - 1, outbuff(0), 528, nBytes, 0)
If nRet > 0 Then
CopyMemory BSerialNumber(0), outbuff(36), 20
SerialNumber = StrConv(BSerialNumber, vbUnicode)
SerialNumber = Trim(SerialNumber)
End If
Call CloseHandle(hVxD)

MsgBox SerialNumber
End Sub

'----------代码结束---------------------------------
viena 2005-02-17
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/2593/2593388.xml?temp=.5579187
http://search.csdn.net/Expert/topic/263/263492.xml?temp=.2834741
http://search.csdn.net/Expert/topic/701/701498.xml?temp=.1207544

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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