#Define NO_ERROR 0 #Define ERROR_NOT_CONNECTED 2250 Declare Integer GetLogicalDriveStrings In win32api; Integer nBufferLength, ; String @lpBuffer Declare Integer WNetGetConnection In mpr.Dll; String lpszLocalName, ; String @lpszRemoteName, ; Integer @cbRemoteName Local ; lcLogicalDrives As String, ; lnBufferLen As Integer, ; lnx As Integer, ; lcDrive As String, ; lcRemoteName As String, ; lnResult As Integer m.lnBufferLen = 128 m.lcLogicalDrives = Space(m.lnBufferLen) m.lnBufferLen = GetLogicalDriveStrings(m.lnBufferLen, @m.lcLogicalDrives) m.lcLogicalDrives = Left(m.lcLogicalDrives, m.lnBufferLen) Clear For m.lnx = 1 To m.lnBufferLen Step 4 m.lcDrive = Substr(m.lcLogicalDrives, m.lnx, 2) m.lnBufferLen = 2048 m.lcRemoteName = Replicate(Chr(0), m.lnBufferLen) m.lnResult = WNetGetConnection(m.lcDrive, @m.lcRemoteName, m.lnBufferLen) m.lcRemoteName = Left(m.lcRemoteName, At(Chr(0), m.lcRemoteName) - 1) Do Case Case m.lnResult = NO_ERROR *!* We have a network drive, do stuff here ?m.lnResult, m.lcDrive, "Network Drive: ", m.lcRemoteName, Drivetype(m.lcDrive) Case m.lnResult = ERROR_NOT_CONNECTED *!* Not a network drive ?m.lnResult, m.lcDrive, "Local Drive", Drivetype(m.lcDrive) Otherwise *!* Some other error ?m.lnResult, m.lcDrive, "Error" Endcase EndforCarlos Alloatti