* Constants for drive types. #DEFINE DRIVE_UNKNOWN 0 #DEFINE DRIVE_NO_ROOT_DIR 1 #DEFINE DRIVE_REMOVABLE 2 #DEFINE DRIVE_FIXED 3 #DEFINE DRIVE_REMOTE 4 #DEFINE DRIVE_CDROM 5 #DEFINE DRIVE_RAMDISK 6 #DEFINE CR CHR(13) DECLARE INTEGER GetLogicalDrives IN Win32API DECLARE INTEGER GetDriveType IN Win32API STRING RootPath PRIVATE lcDrivestring, lcDriveRoot, liDrivelist, lcDrives, i lcDrives = "" * GetLogicalDrives returns a 32-bit value containing a list of * available drives. If the specific bit is ON, the drive letter * corresponding to that position exists. liDrivelist = GetLogicalDrives() * Check each of the bits FOR i = 0 TO 31 IF BITTEST(liDrivelist, i) * If the 0th bit is ON, that means drive 'A:', * the 2nd bit is 'C:", etc. lcDriveRoot = CHR(65 + i) + ":\" * Perform a GetDriveType to determine if it is a floppy, CD, etc. lcDrivetype = GetDriveType(lcDriveRoot) DO CASE CASE lcDrivetype = DRIVE_UNKNOWN lcDrivestring = "Cannot be determined" CASE lcDrivetype = DRIVE_NO_ROOT_DIR lcDrivestring = "Root directory does not exist" CASE lcDrivetype = DRIVE_REMOVABLE lcDrivestring = "Floppy/removable drive" CASE lcDrivetype = DRIVE_FIXED lcDrivestring = "Hard drive/nonremovable drive" CASE lcDrivetype = DRIVE_REMOTE lcDrivestring = "Remote/Network drive" lcunc=GetUNCForDriveLetter(LEFT(lcDriveRoot,2)) IF TYPE('lcunc')="C" .AND. !EMPTY(lcunc) lcDrivestring = lcunc ENDIF CASE lcDrivetype = DRIVE_CDROM lcDrivestring = "CD-ROM drive" CASE lcDrivetype = DRIVE_RAMDISK lcDrivestring = "RAM disk" ENDCASE lcDrives = lcDrives + lcDriveRoot + " " + lcDrivestring + CR ENDIF NEXT =MESSAGEBOX(lcDrives, ; 0 + 64 + 0,'All Drives Listing') RETURN FUNCTION GetUNCForDriveLetter LPARAMETER cDriveLetterToCheck LOCAL cBuffer, nResult, lcunc IF TYPE('cDriveLetterToCheck') # 'C' OR ; LEN(cDriveLetterToCheck) < 2 OR ; SUBSTR(cDriveLetterToCheck,2,1) # ':' OR ; ! BETWEEN(UPPER(LEFT(cDriveLetterToCheck,1)),'A','Z') RETURN '' ENDIF DECLARE INTEGER WNetGetConnection IN Win32API ; STRING @cLocalDrive, ; STRING @cRemoteUNCBuffer, ; INTEGER @nSizeOfBuffer cBuffer = SPACE(511) nResult = WNetGetConnection(LEFT(cDriveLetterToCheck,2), ; @cBuffer, ; 511) IF nResult # 0 RETURN '' ELSE lcunc=LEFT(cBuffer,AT(CHR(0),cBuffer)-1) RETURN lcunc *RETURN LEFT(cBuffer,AT(CHR(0),cBuffer)-1) ENDIF>>>>I think WinXP can open ZIP-ed files. Also why you dind't make backup as a Selfextract file? The you didn't need bat, PKUNZIP etc. files.