|
-
March 15th, 2001, 04:52 PM
#1
Determine if drive is floppy or Zip
Program backs up its data to floppies, but some users want to use Zip disks. Does anyone know of an API call to find which is being used? I know how to find available disk space, but is there some way to find the total capacity of a drive?
-
March 15th, 2001, 05:19 PM
#2
Re: Determine if drive is floppy or Zip
I did something similar for finding Cdroms-look into this...
Declare statements...
private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (byval nBufferLength as Long, byval lpBuffer as string) as Long
private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (byval nDrive as string) as Long
Part of subroutine....
'initialize strDrives to 255 spaces
strDrives = Space(255)
'get drives, strDrives var will look like
' A:\<null>C:\<null>D:\<null>E:\<null><null>
'intNumberOfDrives is the new length of Drives
intNumberOfDrives = GetLogicalDriveStrings(len(strDrives), strDrives)
Y = 1
for X = 1 to intNumberOfDrives step 4
'get a drive root directory (like "C:\")
strDriveName = mid(strDrives, X, 3)
'if drive is a CD
If GetDriveType(strDriveName) = DRIVE_CDROM then
intNumberOfCDDrives = intNumberOfCDDrives + 1
strCDLetters = strCDLetters & Left(strDriveName, 1) & " "
strCDDriveArray(Y) = strDriveName
Y = Y + 1
End If
next X
-
March 15th, 2001, 07:36 PM
#3
Re: Determine if drive is floppy or Zip
Private Sub GetInfo()
Dim fs, d, s, t
Dim drvpath As String
On Error Resume Next
drvpath = Text1.Text
Set fs = CreateObject("Scripting.FileSystemObject")
Set d = fs.GetDrive(fs.GetDriveName(fs.GetAbsolutePathName(drvpath & ":\")))
Select Case d.DriveType
Case 0: t = "Unknow"
Case 1: t = "Removable"
Case 2: t = "Hard Disk"
Case 3: t = "Network"
Case 4: t = "CD-ROM"
Case 5: t = "RAM Disc"
End Select
If Err Then
lblDrive = "Unit " & Text1.Text & ": not found"
lblSN = ""
lblFree = ""
lblTot = ""
Exit Sub
Else
lblDrive = "Unit " & d.DriveLetter & ": - " & t
lblSN = "NS: " & d.SerialNumber
If Err Then
lblSN = "Unit not ready"
lblFree = ""
lblTot = ""
End If
If (d.AvailableSpace / 1024) >= 1024 Then
lblFree = "Free Space: " & FormatNumber(d.AvailableSpace / 1048576, 2) & " MB"
Else
lblFree = "Free Space: " & FormatNumber(d.AvailableSpace / 1024, 0) & " KB"
End If
If (d.TotalSize / 1024) >= 1024 Then
lblTot = "Total Size: " & FormatNumber(d.TotalSize / 1048576, 2) & " MB"
Else
lblTot = "Total Size: " & FormatNumber(d.TotalSize / 1024, 0) & " KB"
End If
End If
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
If ((KeyAscii >= 65) And (KeyAscii <= 90)) Or ((KeyAscii >= 97) And (KeyAscii <= 122)) Then
Text1.Text = Chr(KeyAscii)
Text1.Text = UCase(Text1.Text)
GetInfo
End If
End Sub
Private Sub Form_Load()
GetInfo
KeyPreview = True
End Sub
Iouri Boutchkine
[email protected]
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|