VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



cmdFormatDrive

by Duncan Diep (1 Submission)
Category: Files/File Controls/Input/Output
Compatability: Visual Basic 3.0
Difficulty: Unknown Difficulty
Date Added: Wed 3rd February 2021
Rating: (2 Votes)

Format Floppy Disk using API:Here is the code on How to Format Floppy Disk using API. Note -- This code can format your Hard Disk as well, so you should be careful!!!!

API Declarations
Private Declare Function SHFormatDrive Lib "shell32" _
(ByVal hwnd As Long, ByVal Drive As Long, ByVal fmtID As Long, _
ByVal options As Long) As Long
Private Declare Function GetDriveType Lib "kernel32" Alias _
"GetDriveTypeA" (ByVal nDrive As String) As Long

Rate cmdFormatDrive

Add 2 command buttons named :
cmdFormat and cmdDiskCopy
Private Sub cmdFormatDrive_Click()
  Dim DriveLetter$, DriveNumber&, DriveType&
  Dim RetVal&, RetFromMsg%
  DriveLetter = UCase(Drive1.Drive)
  DriveNumber = (Asc(DriveLetter) - 65) ' Change letter to Number: A=0
  DriveType = GetDriveType(DriveLetter)
  If DriveType = 2 Then 'Floppies, etc
    RetVal = SHFormatDrive(Me.hwnd, DriveNumber, 0&, 0&)
  Else
    RetFromMsg = MsgBox("This drive is NOT a removeable" & vbCrLf & _
      "drive! Format this drive?", 276, "SHFormatDrive Example")
    Select Case RetFromMsg
      Case 6  'Yes
        ' UnComment to do it...
        'RetVal = SHFormatDrive(Me.hwnd, DriveNumber, 0&, 0&)
      Case 7  'No
        ' Do nothing
    End Select
  End If
End Sub
Private Sub cmdDiskCopy_Click()
' DiskCopyRunDll takes two parameters- From and To
  Dim DriveLetter$, DriveNumber&, DriveType&
  Dim RetVal&, RetFromMsg&
  DriveLetter = UCase(Drive1.Drive)
  DriveNumber = (Asc(DriveLetter) - 65)
  DriveType = GetDriveType(DriveLetter)
  If DriveType = 2 Then 'Floppies, etc
    RetVal = Shell("rundll32.exe diskcopy.dll,DiskCopyRunDll " _
      & DriveNumber & "," & DriveNumber, 1) 'Notice space after
  Else  ' Just in case             'DiskCopyRunDll
    RetFromMsg = MsgBox("Only floppies can" & vbCrLf & _
      "be diskcopied!", 64, "DiskCopy Example")
  End If
End Sub
Add 1 ListDrive name Drive1
Private Sub Drive1_Change()
  Dim DriveLetter$, DriveNumber&, DriveType&
  DriveLetter = UCase(Drive1.Drive)
  DriveNumber = (Asc(DriveLetter) - 65)
  DriveType = GetDriveType(DriveLetter)
  If DriveType 2 Then 'Floppies, etc
    cmdDiskCopy.Enabled = False
  Else
    cmdDiskCopy.Enabled = True
  End If
End Sub

Download this snippet    Add to My Saved Code

cmdFormatDrive Comments

No comments have been posted about cmdFormatDrive. Why not be the first to post a comment about cmdFormatDrive.

Post your comment

Subject:
Message:
0/1000 characters