02-16-2006, 12:58 PM
Function GetDriveStatus
;/
function# $drivename ;;returns: 0 does not exist, 1 ready, 2 not ready
;EXAMPLES
;out GetDriveStatus("a:\")
;out GetDriveStatus("\\MyServer\MyShare\")
def DRIVE_UNKNOWN 0
def DRIVE_NO_ROOT_DIR 1
def DRIVE_REMOVABLE 2
def DRIVE_FIXED 3
def DRIVE_REMOTE 4
def DRIVE_CDROM 5
def DRIVE_RAMDISK 6
dll kernel32 #GetDriveType $nDrive
def SEM_FAILCRITICALERRORS 0x1
def SEM_NOGPFAULTERRORBOX 0x2
def SEM_NOOPENFILEERRORBOX 0x8000
dll kernel32 #SetErrorMode wMode
dll kernel32 #GetDiskFreeSpaceEx $lpDirectoryName LARGE_INTEGER*lpFreeBytesAvailable LARGE_INTEGER*lpTotalNumberOfBytes LARGE_INTEGER*lpTotalNumberOfFreeBytes
int i=GetDriveType(drivename)
if(i=DRIVE_NO_ROOT_DIR) ret 0
int pem=SetErrorMode(SEM_FAILCRITICALERRORS)
i=GetDiskFreeSpaceEx(drivename 0 0 0)
SetErrorMode(pem)
if(i) ret 1
ret 2