API - UNC vs. Mapped path in SW VB extraction
API - UNC vs. Mapped path in SW VB extraction
(OP)
All you clever systems folks out there:
When using the SW API call (GetPathName) it returns the mapped drive for that SW session, on that machine. Is there any way (perhaps subclassing via Windows API) to return the UNC path such that if the data extracted is used elsewhere on the same network it would yield a correct path to the file regardless of machine specific mappings?
When using the SW API call (GetPathName) it returns the mapped drive for that SW session, on that machine. Is there any way (perhaps subclassing via Windows API) to return the UNC path such that if the data extracted is used elsewhere on the same network it would yield a correct path to the file regardless of machine specific mappings?
Guy Edkins
Managing Partner
Delta Group Ltd
gedkins@deltagl.com
www.deltagl.com






RE: API - UNC vs. Mapped path in SW VB extraction
According to Microsoft's Knowledge Base this code does the trick
' 32-bit Function version.
' Enter this declaration on a single line.
Declare Function WNetGetConnection32 Lib "MPR.DLL" Alias _
"WNetGetConnectionA" (ByVal lpszLocalName As String, ByVal _
lpszRemoteName As String, lSize As Long) As Long
' 32-bit declarations:
Dim lpszRemoteName As String
Dim lSize As Long
' Use for the return value of WNetGetConnection() API.
Const NO_ERROR As Long = 0
' The size used for the string buffer. Adjust this if you
' need a larger buffer.
Const lBUFFER_SIZE As Long = 255
Sub GetNetPath()
' Prompt the user to type the mapped drive letter.
DriveLetter = UCase(InputBox("Enter Drive Letter of Your Network" & _
"Connection." & Chr(10) & "i.e. F (do not enter a colon)"))
' Add a colon to the drive letter entered.
DriveLetter = DriveLetter & ":"
' Specifies the size in characters of the buffer.
cbRemoteName = lBUFFER_SIZE
' Prepare a string variable by padding spaces.
lpszRemoteName = lpszRemoteName & Space(lBUFFER_SIZE)
' Return the UNC path (\\Server\Share).
lStatus& = WNetGetConnection32(DriveLetter, lpszRemoteName, _
cbRemoteName)
' Verify that the WNetGetConnection() succeeded. WNetGetConnection()
' returns 0 (NO_ERROR) if it successfully retrieves the UNC path.
If lStatus& = NO_ERROR Then
' Display the UNC path.
MsgBox lpszRemoteName, vbInformation
Else
' Unable to obtain the UNC path.
MsgBox "Unable to obtain the UNC path.", vbInformation
End If
End Sub
You should be able to modify it to achieve your nefarious plans.
RE: API - UNC vs. Mapped path in SW VB extraction
Guy Edkins
Managing Partner
Delta Group Ltd
gedkins@deltagl.com
www.deltagl.com
RE: API - UNC vs. Mapped path in SW VB extraction
Guy Edkins
Managing Partner
Delta Group Ltd
gedkins@deltagl.com
www.deltagl.com