欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

无声息格式化磁盘的API,VB版

发布时间:2025/5/22 编程问答 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 无声息格式化磁盘的API,VB版 小编觉得挺不错的,现在分享给大家,帮大家做个参考.
无声息格式化磁盘的API,VB版,使用方法:
doFormat("E:")

曾经用这API做了个小恶软,专格式化U盘,代码在这里就不予公开了~~~

Public Declare Function FormatEx Lib "FMIFS.DLL" _
(DriveRoot As Any, _
ByVal MediaFlag As Long, _
Format As Any, _
Label As Any, _
ByVal QuickFormat As Long, _
ByVal ClusterSize As Long, _
ByVal Callback As Long) As Long

Public Const FMIFS_HARDDISK = &HC
Public Const FMIFS_FLOPPY = &H8

Public Const FMIFS_SizeDefault = 0
Public Const FMIFS_Size512 = 512
Public Const FMIFS_Size1K = 1024
Public Const FMIFS_Size2K = 2048
Public Const FMIFS_Size4K = 4096
Public Const FMIFS_Size8K = 8192
Public Const FMIFS_Size16K = 16384
Public Const FMIFS_Size32K = 32768
Public Const FMIFS_Size64K = 65536
Public Const FMIFS_Size128K = 131072
Public Const FMIFS_Size256K = 262144

Public Const FMIFS_Progress = 0
Public Const FMIFS_DoneWithStructure = 1
Public Const FMIFS_InsufficientRights = 6
Public Const FMIFS_WriteProtected = 7
Public Const FMIFS_Done = 11
Public Const FMIFS_OutPut = 14
Public Const FMIFS_StructureProgress = 15

Public gbytResult As Byte

Function doFormat(sDriveLetter As String) As Boolean

On Error Resume Next
Dim bytDrive() As Byte
Dim bytFS() As Byte
Dim bytLabel() As Byte

bytDrive = sDriveLetter & Chr$(0)
bytFS = "FAT" & Chr$(0)
bytLabel = GetDriveVol(sDriveLetter) & Chr$(0)

Call FormatEx(bytDrive(0), _
FMIFS_HARDDISK, _
bytFS(0), _
bytLabel(0), _
0, _
FMIFS_SizeDefault, _
AddressOf FormatexCallBack)

If gbytResult = 1 Then
doFormat = True
Else
doFormat = False
End If

End Function

Public Function FormatexCallBack(ByVal lngCommand As Long, ByVal lngSubAction As Long, ByVal ActionInfo As Long) As Long

On Error Resume Next
Dim lngInfo As Long
Dim bytMessage(256) As Byte

Select Case lngCommand
Case FMIFS_Progress
DoEvents
Case FMIFS_DoneWithStructure
DoEvents
Case FMIFS_InsufficientRights
DoEvents
Case FMIFS_WriteProtected
DoEvents
Case FMIFS_Done
Call CopyMemory(gbytResult, ByVal ActionInfo, 1)
DoEvents
Case FMIFS_OutPut
DoEvents
Case FMIFS_StructureProgress
DoEvents
End Select

FormatexCallBack = 1

End Function

转载于:https://www.cnblogs.com/top5/archive/2009/09/14/1566120.html

《新程序员》:云原生和全面数字化实践50位技术专家共同创作,文字、视频、音频交互阅读

总结

以上是生活随笔为你收集整理的无声息格式化磁盘的API,VB版的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。