无声息格式化磁盘的API,VB版
生活随笔
收集整理的這篇文章主要介紹了
无声息格式化磁盘的API,VB版
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
無聲息格式化磁盤的API,VB版,使用方法:
doFormat("E:")
曾經(jīng)用這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
doFormat("E:")
曾經(jīng)用這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
轉(zhuǎn)載于:https://www.cnblogs.com/top5/archive/2009/09/14/1566120.html
《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的无声息格式化磁盘的API,VB版的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 兔子不吃窝边草,跳槽不跳窝边槽。。。
- 下一篇: .net程序打包的几篇文章