- '
- '取硬盘的物理信息(序列号,容量,转速,型号)(smHDinfo)
- '
- '/网站:东方热讯:http://www.easthot.net
- '/邮件:sales@easthot.net
- '/2003.01.23
- '*************************************************************************
- Option Explicit
- '/以下这一行是必须的,困为要做结构复制。而结构中有数组。所以,没有它则会错位
- Option Base 0
- Private Const DFP_GET_VERSION =
- Private Const DFP_SEND_DRIVE_COMMAND =
- Private Const DFP_RECEIVE_DRIVE_DATA =
- '/#pragma pack(1)
- Private Type TGETVERSIONOUTPARAMS '{
- bVersion As Byte '/Binary driver version.
- bRevision As Byte '/Binary driver revision.
- bReserved As Byte '/Not used.
- bIDEDeviceMap As Byte '/Bit map of IDE devices.
- fCapabilities As Long '/Bit mask of driver capabilities.
- dwReserved(4) As Long '/For future use.
- End Type
- Private Type TIDEREGS
- bFeaturesReg As Byte '/Used for specifying SMART "commands".
- bSectorCountReg As Byte '/IDE sector count register
- bSectorNumberReg As Byte '/IDE sector number register
- bCylLowReg As Byte '/IDE low order cylinder value
- bCylHighReg As Byte '/IDE high order cylinder value
- bDriveHeadReg As Byte '/IDE drive/head register
- bCommandReg As Byte '/Actual IDE command.
- bReserved As Byte '/reserved for future use. Must be zero.
- End Type
- Private Type TSENDCMDINPARAMS
- cBufferSize As Long '/Buffer size in bytes
- irDriveRegs As TIDEREGS '/Structure with drive register values.
- bDriveNumber As Byte '/Physical drive number to send '/command to (0,1,2,3).
- bReserved(2) As Byte '/Reserved for future expansion.
- dwReserved(3) As Long '/For future use.
- '//BYTE bBuffer(1) '/Input buffer.
- End Type
- Private Type TDRIVERSTATUS
- bDriverError As Byte '/Error code from driver, '/or 0 if no error.
- bIDEStatus As Byte '/Contents of IDE Error register.
- '//Only valid when bDriverError '/is SMART_IDE_ERROR.
- bReserved(1) As Byte '/Reserved for future expansion.
- dwReserved(1) As Long '/Reserved for future expansion.
- End Type
- Private Type TSENDCMDOUTPARAMS
- cBufferSize As Long '/Size of bBuffer in bytes
- DRIVERSTATUS As TDRIVERSTATUS '/Driver status structure.
- bBuffer(511) As Byte '/Buffer of arbitrary length
- '//in which to store the data read from the drive.
- End Type
- '/下面的结构是要从另一结构复制数据过来的,所以,必须是字节数与VC的完全一致
- '/而不能用兼容变量,但这里的我们还是用了兼容变量,Integer,因为此结构中这一
- '/类型的的变量程序中没有用到,如果要用到,建议改为Byte类型。因为VB没有USHORT
- Private Type TIDSECTOR
- wGenConfig As Integer
- wNumCyls As Integer
- wReserved As Integer
- wNumHeads As Integer
- wBytesPerTrack As Integer
- wBytesPerSector As Integer
- wSectorsPerTrack As Integer
- wVendorUnique(2) As Integer
- sSerialNumber(19) As Byte
- wBufferType As Integer
- wBufferSize As Integer
- wECCSize As Integer
- sFirmwareRev(7) As Byte
- sModelNumber(39) As Byte
- wMoreVendorUnique As Integer
- wDoubleWordIO As Integer
- wCapabilities As Integer
- wReserved1 As Integer
- wPIOTiming As Integer
- wDMATiming As Integer
- wBS As Integer
- wNumCurrentCyls As Integer
- wNumCurrentHeads As Integer
- wNumCurrentSectorsPerTrack As Integer
- ulCurrentSectorCapacity(3) As Byte '/这里只能用byte,因为VB没有无符号的LONG型变量
- wMultSectorStuff As Integer
- ulTotalAddressableSectors(3) As Byte '/这里只能用byte,因为VB没有无符号的LONG型变量
- wSingleWordDMA As Integer
- wMultiWordDMA As Integer
- bReserved(127) As Byte
- End Type
- Private vers As TGETVERSIONOUTPARAMS
- Private in_data As TSENDCMDINPARAMS
- Private out_data As TSENDCMDOUTPARAMS
- Private h As Long
- Private I As Long
- Private J As Byte
- Private Type OSVERSIONINFO
- dwOSVersionInfoSize As Long
- dwMajorVersion As Long
- dwMinorVersion As Long
- dwBuildNumber As Long
- dwPlatformId As Long
- szCSDVersion As String * 128
- End Type
- Private Declare Function GetVersionEx Lib "kernel32" Alias "GetVersionExA" _
- (LpVersionInformation As OSVERSIONINFO) As Long
- Private Const VER_PLATFORM_WIN32S = 0
- Private Const VER_PLATFORM_WIN32_WINDOWS = 1
- Private Const VER_PLATFORM_WIN32_NT = 2
- Private Declare Function CreateFile Lib "kernel32" _
- Alias "CreateFileA" (ByVal lpFileName As String, _
- ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, _
- ByVal lpSecurityAttributes As Long, _
- ByVal dwCreationDisposition As Long, _
- ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) _
- As Long
- Private Const CREATE_NEW = 1
- Private Const GENERIC_READ =
- Private Const GENERIC_WRITE =
- Private Const OPEN_EXISTING = 3
- Private Const FILE_SHARE_READ =
- Private Const FILE_SHARE_WRITE =
- Private Type OVERLAPPED
- Internal As Long
- InternalHigh As Long
- offset As Long
- OffsetHigh As Long
- hEvent As Long
- End Type
- 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 OVERLAPPED) As Long
- Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
- Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _
- hpvDest As Any, hpvSource As Any, ByVal cbCopy As Long)
- Private Sub ChangeByteOrder(szString() As Byte, uscStrSize As Long)
- Dim I As Long
- Dim temp As String
- For I = 0 To uscStrSize - 1 Step 2
- temp = szString(I)
- szString(I) = szString(I + 1)
- szString(I + 1) = temp
- Next I
- End Sub
- Private Function hdid9x() As smHdInfoType()
- '/We start in 95/98/Me
- Dim RevInfo() As smHdInfoType
- Dim RevID As Long
- Dim olp As OVERLAPPED
- Dim lRet As Long
- h = CreateFile("//./Smartvsd", 0, 0, 0, CREATE_NEW, 0, 0)
- If h = 0 Then
- RevID = RevID + 1
- ReDim Preserve RevInfo(RevID - 1)
- RevInfo(RevID - 1).InfoFlag = False
- GoTo EndFun
- End If
- lRet = DeviceIoControl(h, DFP_GET_VERSION, ByVal 0&, 0, vers, Len(vers), ByVal I, olp)
- If lRet = 0 Then
- RevID = RevID + 1
- ReDim Preserve RevInfo(RevID - 1)
- RevInfo(RevID - 1).InfoFlag = False
- CloseHandle (h)
- GoTo EndFun
- End If
- '/If IDE identify command not supported, fails
- If (vers.fCapabilities And 1) <> 1 Then
- '/hdid9x = "Error: IDE identify command not supported."
- RevID = RevID + 1
- ReDim Preserve RevInfo(RevID - 1)
- RevInfo(RevID - 1).InfoFlag = False
- CloseHandle (h)
- GoTo EndFun
- End If
- '/Display IDE drive number detected
- Dim sPreOutStr As String
- sPreOutStr = DetectIDE(vers.bIDEDeviceMap)
- '/hdid9x = sPreOutStr
- '/Identify the IDE drives
- For J = 0 To 3
- Dim phdinfo As TIDSECTOR
- Dim s(40) As Byte
- RevID = RevID + 1
- ReDim Preserve RevInfo(RevID - 1)
- RevInfo(RevID - 1).Hdid = J
- If (J And 1) = 1 Then
- in_data.irDriveRegs.bDriveHeadReg =
- Else
- in_data.irDriveRegs.bDriveHeadReg =
- End If
- If (vers.fCapabilities And (16 / (2 ^ J))) = (16 / (2 ^ J)) Then
- RevInfo(RevID - 1).InfoFlag = False
- Else
- in_data.irDriveRegs.bCommandReg =
- in_data.bDriveNumber = J
- in_data.irDriveRegs.bSectorCountReg = 1
- in_data.irDriveRegs.bSectorNumberReg = 1
- in_data.cBufferSize = 512
- RevInfo(RevID - 1).InfoFlag = True
- lRet = DeviceIoControl(h, DFP_RECEIVE_DRIVE_DATA, in_data, Len(in_data), out_data, Len(out_data), ByVal I, olp)
- If lRet = 0 Then
- RevInfo(RevID - 1).InfoFlag = False
- CloseHandle (h)
- GoTo EndFun
- End If
- Dim StrOut As String
- CopyMemory phdinfo, out_data.bBuffer(0), Len(phdinfo)
- CopyMemory s(0), phdinfo.sModelNumber(0), 40
- s(40) = 0
- ChangeByteOrder s, 40
- StrOut = ByteArrToString(s, 40)
- RevInfo(RevID - 1).ModuleNumber = Trim$(StrOut)
- CopyMemory s(0), phdinfo.sFirmwareRev(0), 8
- s(8) = 0
- ChangeByteOrder s, 8
- StrOut = ByteArrToString(s, 8)
- RevInfo(RevID - 1).FirmwareRev = Trim$(StrOut)
- CopyMemory s(0), phdinfo.sSerialNumber(0), 20
- s(20) = 0
- ChangeByteOrder s, 20
- StrOut = ByteArrToString(s, 20)
- '/hdid9x = hdid9x & vbCrLf & "Serial Number:" & StrOut
- RevInfo(RevID - 1).SerialNumber = Trim$(StrOut)
- CopyMemory s(0), phdinfo.ulTotalAddressableSectors(0), 4
- s(5) = 0
- Dim dblStrOut As Double
- dblStrOut = ByteArrToLong(s)
- RevInfo(RevID - 1).Capcity = CLng(dblStrOut / 2 / 1024) & "M"
- End If
- Next J
- '/Close handle before quit
- CloseHandle (h)
- EndFun:
- hdid9x = RevInfo
- End Function
- Private Function hdidnt() As smHdInfoType()
- Dim hd As String * 80
- Dim phdinfo As TIDSECTOR
- Dim s(40) As Byte
- Dim StrOut As String
- Dim RevInfo() As smHdInfoType
- Dim RevID As Long
- '/hdidnt = ""
- '/We start in NT/Win2000
- For J = 0 To 3 '/这里取四个硬盘的信息,因为正常PC不超过四个硬盘
- RevID = RevID + 1
- ReDim Preserve RevInfo(RevID - 1)
- RevInfo(RevID - 1).Hdid = CStr(J)
- hd = "//./PhysicalDrive" & CStr(J)
- '/hdidnt = hdidnt & vbCrLf & hd
- h = CreateFile(hd, GENERIC_READ Or GENERIC_WRITE, _
- FILE_SHARE_READ Or FILE_SHARE_WRITE, 0, OPEN_EXISTING, 0, 0)
- Dim olpv As OVERLAPPED
- Dim lRet As Long
- lRet = DeviceIoControl(h, DFP_GET_VERSION, ByVal 0&, 0, vers, Len(vers), ByVal I, olpv)
- If lRet = 0 Then
- RevInfo(RevID - 1).InfoFlag = False
- CloseHandle (h)
- Else
- '/If IDE identify command not supported, fails
- If (vers.fCapabilities And 1) <> 1 Then
- '/hdidnt = "Error: IDE identify command not supported."
- RevInfo(RevID - 1).InfoFlag = False
- CloseHandle (h)
- GoTo EndFun
- '/Exit Function
- End If
- '/Identify the IDE drives
- If (J And 1) = 1 Then
- in_data.irDriveRegs.bDriveHeadReg =
- Else
- in_data.irDriveRegs.bDriveHeadReg =
- End If
- If (vers.fCapabilities And (16 / (2 ^ J))) <> 0 Then
- '/We don't detect a ATAPI device.
- RevInfo(RevID - 1).InfoFlag = False
- '/hdidnt = hdidnt & vbCrLf & "Drive " & CStr(j + 1) & " is a ATAPI device, we don't detect it"
- Else
- in_data.irDriveRegs.bCommandReg =
- in_data.bDriveNumber = J
- in_data.irDriveRegs.bSectorCountReg = 1
- in_data.irDriveRegs.bSectorNumberReg = 1
- in_data.cBufferSize = 512
- Dim olpr As OVERLAPPED
- lRet = DeviceIoControl(h, DFP_RECEIVE_DRIVE_DATA, in_data, Len(in_data), out_data, Len(out_data), ByVal I, olpr)
- If lRet <= 0 Then
- '/hdidnt = hdidnt & vbCrLf & "DeviceIoControl failed:DFP_RECEIVE_DRIVE_DATA"
- RevInfo(RevID - 1).InfoFlag = False
- CloseHandle (h)
- Else
- RevInfo(RevID - 1).InfoFlag = True
- CopyMemory phdinfo, out_data.bBuffer(0), Len(phdinfo)
- CopyMemory s(0), phdinfo.sModelNumber(0), 40
- s(40) = 0
- ChangeByteOrder s, 40
- StrOut = ByteArrToString(s, 40)
- RevInfo(RevID - 1).ModuleNumber = Trim$(StrOut)
- '/hdidnt = hdidnt & vbCrLf & "Module Number:" & StrOut
- CopyMemory s(0), phdinfo.sFirmwareRev(0), 8
- s(8) = 0
- ChangeByteOrder s, 8
- StrOut = ByteArrToString(s, 8)
- RevInfo(RevID - 1).FirmwareRev = Trim$(StrOut)
- '/hdidnt = hdidnt & vbCrLf & "Firmware rev:" & StrOut
- CopyMemory s(0), phdinfo.sSerialNumber(0), 20
- s(20) = 0
- ChangeByteOrder s, 20
- StrOut = ByteArrToString(s, 20)
- '/hdidnt = hdidnt & vbCrLf & "Serial Number:" & StrOut
- RevInfo(RevID - 1).SerialNumber = Trim$(StrOut)
- CopyMemory s(0), phdinfo.ulTotalAddressableSectors(0), 4
- s(5) = 0
- Dim dblStrOut As Double
- dblStrOut = ByteArrToLong(s)
- RevInfo(RevID - 1).Capcity = CLng(dblStrOut / 2 / 1024) & "M"
- '/hdidnt = hdidnt & vbCrLf & "Capacity:" & dblStrOut / 2 / 1024 & "M"
- CloseHandle (h)
- End If
- End If
- End If
- Next
- EndFun:
- hdidnt = RevInfo
- End Function
- Private Function DetectIDE(bIDEDeviceMap As Byte) As String
- If (bIDEDeviceMap And 1) Then
- If (bIDEDeviceMap And 16) Then
- DetectIDE = DetectIDE & "ATAPI device is attached to primary controller, drive 0."
- Else
- DetectIDE = DetectIDE & "IDE device is attached to primary controller, drive 0."
- End If
- End If
- If (bIDEDeviceMap And 2) Then
- If (bIDEDeviceMap And 32) Then
- DetectIDE = DetectIDE & "ATAPI device is attached to primary controller, drive 1."
- Else
- DetectIDE = DetectIDE & "IDE device is attached to primary controller, drive 1."
- End If
- End If
- If (bIDEDeviceMap And 4) Then
- If (bIDEDeviceMap And 64) Then
- DetectIDE = DetectIDE & "ATAPI device is attached to secondary controller, drive 0."
- Else
- DetectIDE = DetectIDE & "IDE device is attached to secondary controller, drive 0."
- End If
- End If
- If (bIDEDeviceMap And 8) Then
- If (bIDEDeviceMap And 128) Then
- DetectIDE = DetectIDE & "ATAPI device is attached to secondary controller, drive 1."
- Else
- DetectIDE = DetectIDE & "IDE device is attached to secondary controller, drive 1."
- End If
- End If
- End Function
- Private Function ByteArrToString(inByte() As Byte, ByVal strlen As Integer) As String
- Dim I As Integer
- For I = 0 To strlen
- If inByte(I) = 0 Then
- Exit For
- End If
- ByteArrToString = ByteArrToString & Chr(inByte(I))
- Next I
- End Function
- Private Function ByteArrToLong(inByte() As Byte) As Double
- Dim I As Integer
- For I = 0 To 3
- ByteArrToLong = ByteArrToLong + CDbl(inByte(I)) * (256 ^ I)
- Next I
- End Function
- Public Function GetHdInfo() As smHdInfoType()
- Dim RevInfo() As smHdInfoType
- Dim verinfo As OSVERSIONINFO
- Dim Ret As Long
- verinfo.dwOSVersionInfoSize = Len(verinfo)
- Ret = GetVersionEx(verinfo)
- Select Case verinfo.dwPlatformId
- Case VER_PLATFORM_WIN32S
- ReDim RevInfo(1)
- RevInfo(0).InfoFlag = False
- Case VER_PLATFORM_WIN32_WINDOWS
- RevInfo = hdid9x()
- Case VER_PLATFORM_WIN32_NT
- RevInfo = hdidnt()
- End Select
- GetHdInfo = RevInfo
- End Function
相关推荐
vb6获取磁盘剩余容量可用空间[完美代码]硬盘容量C盘大小,支持2GB以上容量
此代码将允许您在大小超过 2 Gb 的驱动器上获得可用磁盘空间
vb获得硬盘ID
<br /> 建窗体,窗体放置1个ComBox,命名为cbDrive,1个ListBox,命名为lstMain,一个CommandButton,命名为cmdGo,添加如下代码:<br />Dim h As clsMainInfo<br />Private Sub cmdGo_Click()<br /> Dim hT As Long<br /> Dim uW() As Byte<br /> Dim dW() As Byte<br /> Dim pW() As Byte<br />
目前VB6.0读硬盘序列号最完美的代码
目前VB6.0读硬盘序列号最完美的代码 里面包括一个模块和一个VB6.0工程示例。
★★★★Excel-VBA操作文件四大方法之四 by excelhome
通过前面三种方法的介绍,你是否已经觉得足够了?是的,前面的方法完全可以应付几乎所有的文件操作。但是为了普及一下API,展示一下API的魅力,最后向大家介绍一下如何利用API函数来处理文件。另一方面也是本人对API情有独钟,为她做一下广告,呵呵。大家对API的强大也是有所耳闻了,在文件操作方面,API自然毫不逊色。说明:为了文章简洁,我们先给出API函数的名称及功能,其完整的声明及常数就不再一一
VB检测硬盘空间大小及使用情况
VB检测硬盘空间大小及使用情况,很小很灵活,可以看看
VB检测硬盘空间大小及使用情况.7z
VB检测硬盘空间大小及使用情况
vb 获取计算机序列号,VB获得硬盘序列号的方法
该楼层疑似违规已被系统折叠隐藏此楼查看此楼EndFunctionPublicFunctionDoEnableSMART(ByValhSMARTIOCTLAsLong,pSCIPAsSENDCMDINPARAMS,pSCOPAsSENDCMDOUTPARAMS,ByValbDriveNumAsByte,lpcbBytesReturnedAsLong)AsB...
远心F-theta镜ZEMAX设计
根据给出的F-theta镜的设计指标,对F-theta镜进行了具体的光学设计。从对F-theta镜设计思想的介绍出发,对选取的初始结构进行了优化设计,优化完成后,对所设计的F-theta镜进行了像质评价,通过点列图、场曲与畸变图、相对照度、能量集中度对所设计的F-theta镜进行了分析,最终,对F-theta镜的设计效果进行了验证。
纯VB代码取得硬盘的物理序列号
网上有很多获取硬盘序列号的代码,但大部分都只能取得逻辑分区的序列号,而不能取得硬盘的物理序列号。我们知道,逻辑分区的序列号是FORMAT时产生的,重新FORMAT将会改变。这对于要求唯一识别码的程式来说是致命的。这段代码利用API可以取得物理硬盘的很多特性,包括硬盘出厂时的唯一编号。这段代码我是从优快云论坛获得,原作者不详。我将其稍做修改和增添,独立出两个常用的函数:GetDiskV
手把手教你设计低噪声前置放大电路:从光电二极管到X射线探测器的实战配置
本文实战指南详细解析了低噪声前置放大电路的设计,重点针对光电二极管和X射线探测器等微弱信号源。文章深入对比了跨阻放大器与电荷灵敏放大器的核心架构、噪声优化策略及PCB布局技巧,手把手指导从电路选型、仿真验证到调试测试的全流程,助力工程师构建精准可靠的信号链。
Haystack框架实战:从零构建企业级智能问答系统
自然语言处理(NLP)技术通过让计算机理解和生成人类语言,正在深刻改变信息检索与交互方式。其核心原理在于将文本转化为机器可处理的向量表示,并通过语义相似度计算实现精准匹配。这一技术价值在于能够从海量非结构化数据中快速提取精准信息,大幅提升知识获取效率。在工程实践中,检索增强生成(RAG)架构结合了密集向量检索与大语言模型生成能力,成为构建智能问答、知识库助手等应用的主流方案。该架构通过将用户查询与文档库进行语义匹配,并为大语言模型提供精准上下文,有效提升了回答的准确性与可追溯性。本文以Haystack这一生
VB取得硬盘物理序列号
'============================================'模块功能:取得硬盘的信息'更新日期:2005/7/8'调用方法:' GetDiskVolume() 取得逻辑盘的序列号' GetHardDiskInfo() 取得物理盘的型号或序列号'============================================Private Const ...
Python Opencv cv2提取图像中某种特定颜色区域(例如黑字白纸背景下的红色公章提取),并将纯色背景透明化
拜拜PHOTOSHOP- 领导突然让我帮他把公章从图片中抠出来,在确保了不是要做坏事的情况下,我打开了PHOTOSHOP,用魔棒工具一点一点抠,但由于魔棒工具的原理是对比临近区域像素差值,导致封闭字体中的区域无法剔除,而且一点一点抠非常麻烦,愤而PYTHON,使用CV2完美解决。 效果如下(马赛克是我添加的): 任务就是把蓝色的公章抠出来。 效果如上。 代码如下: import cv2 import numpy as np src = cv2.imread(r"imagepath")#这里填你的原图像路
[转载]纯VB代码取得硬盘的物理序列号
本文原来地址: http://blog.youkuaiyun.com/fxy_2002/services/trackbacks/436183.aspx 本来想收藏的,但是不知道怎么做,所以直接copy下来了 网上有很多获取硬盘序列号的代码,但大部分都只能取得逻辑分区的序列号,而不能取得硬盘的物理序列号。我们知道,逻辑分区的序列号是FORMAT时产生的,重新FORMAT将会改变。这对于要求唯一识别码的程式
YOLOv8改进策略【卷积层】| DEConv: 强度信息与梯度特征融合的细节增强 适用于小目标与细节目标检测任务
本文记录的是利用 模块优化 的目标检测网络模型。(Detail-Enhanced Convolution,细节增强卷积)的设计旨在,解决 目标检测网络中传统普通卷积缺乏目标细节相关先验、对小目标边缘、目标与背景边界等关键细节捕捉能力不足的问题,同时避免引入额外参数量与计算开销,以适配 对实时推理性能与检测精度的双重需求。DEA-Net: Single image dehazing based on detail-enhanced convolution and content-guided atte
PyInstaller打包后在Win7无法运行,提示缺少`api-ms-win-core-path-l1-1-0.dll`问题解决
这个问题的关键在于Python 3.12和Windows 7之间的兼容性问题。解决方法是使用Python 3.8.8版本进行打包,确保程序能够在Windows 7系统上运行。如果你也遇到类似的问题,不妨尝试降级Python版本,看看是否能够解决。希望我的经验能够帮到你!如果你在使用PyInstaller打包时遇到其他问题,欢迎留言讨论。
vb获取cpuid 硬盘物理序列号和逻辑盘序列号 的方法
vb获取硬盘物理序列号和逻辑盘序列号
vb获得硬盘物理序列号
最近在找加密算法 发现很多读取硬盘序列号的方法是收费的bs之下面公布我找到的方法 绝对是物理序列号============================================模块功能:取得硬盘的信息编 程:来自互联网,阿勇修改更新日期:2005/7/8调用方法: GetDiskVolume() 取得逻辑盘的序列号 GetHa
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
Data-Structures-and-Algorithm-Analysis-in-Java.pdf
作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...
硬盘序列号的获得
window98必需使用smartvsd.vxd, ZeroMemory(&vers,sizeof(vers)); h=CreateFile("////.//Smartvsd",0,0,0,CREATE_NEW,0,0);// SMARTVSD.VXD if (!h) { AfxMessageBox("open smartvsd.vxd failed"); return 0; }
STM32F407中文手册
STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。
VB获取硬盘逻辑序列号的方法
新建个窗口,在其上加个Command,Caption为Get Serial加入下列代码:Private Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, ByVal lpVolumeNameBuffer As
Camera2Demo
在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作
直接从RING3获取硬盘序列号
****************************************************************原作: Bardo出处: 《东方热讯》网站网址: www.easthot.net****************************************************************(如需转载,请不在删除以上信息,否则视为侵权!)*
读取硬盘物理序列号
//HDID.CPP //Written by Lu Lin // http://lu0.126.com // 2000.11.3 //---*/ #include #include #include #define DFP_GET_VERSION 0x00074080
取得硬盘序列号的类(C#)
using System;using System.Runtime.InteropServices;using System.Text;namespace Encry{[Serializable]public struct HardDiskInfo{/// <summary>/// 型号/// </summary>public string Modul...
1674



被折叠的 条评论
为什么被折叠?



