tedsmith,
Perhaps this forum in awhile but not by a long shot. I remember a thread that was almost 150 replies in forum68.
ZOR, JAG14,
So let me get this right. You are now looking to see if a USB device is shared across a network or if it is attached to the local machine, right? If so let me introduce you to the GetDriveType API...
[tt]
Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long
Private Const DRIVE_TYPE_UNDTERMINED = 0
Private Const DRIVE_ROOT_NOT_EXIST = 1
Private Const DRIVE_REMOVABLE = 2
Private Const DRIVE_FIXED = 3
Private Const DRIVE_REMOTE = 4
Private Const DRIVE_CDROM = 5
Private Const DRIVE_RAMDISK = 6
Private Sub Form_Load()
Dim DriveType As Long, Msg As String
DriveType = GetDriveType(Left(App.Path, InStr(3, App.Path, "\"

))
Select Case DriveType
Case DRIVE_TYPE_UNDTERMINED
Msg = "Huh?"
Case DRIVE_ROOT_NOT_EXIST
Msg = "No Root?"
Case DRIVE_REMOVABLE
Msg = "Removable"
Case DRIVE_FIXED
Msg = "Fixed"
Case DRIVE_REMOTE
Msg = "Remote"
Case DRIVE_CDROM
Msg = "CD"
Case DRIVE_RAMDISK
Msg = "Ram Disk"
End Select
MsgBox Msg
End Sub
[/tt]
Ok, so let me explain the logic and reasoning behind this suggestion. First the logic...
See the call to the API where [tt]Left(App.Path, InStr(
3, App.Path, "\"

)[/tt] the 3 is. UNC paths are \\
ServerName\ and Drive letters are C:
\ so what would be returned from this is either C:\ or \\ServerName
Now for the reasoning...
If it is a UNC path it will return a value of 1 or = DRIVE_ROOT_NOT_EXIST so you will know it is an invalid drive.
AND, lets say the USB device is mapped to the machine as a drive letter then the call will return as DRIVE_REMOTE = 4 and once again it is an invalid drive.
BUT, if it is attached to the local machine then it will return DRIVE_REMOVABLE = 2 (I am using a USB Hardrive so it may return with a memory stick as DRIVE_RAMDISK = 6) of which I would think is what you are looking to verify and this would be a valid drive.
Good Luck