×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

API - UNC vs. Mapped path in SW VB extraction

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?



Guy Edkins
Managing Partner
Delta Group Ltd

gedkins@deltagl.com
www.deltagl.com

RE: API - UNC vs. Mapped path in SW VB extraction

I'll give this a crack...

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

(OP)
Ah MS API does it again! Thanks Nathan I will give it a try and see if I don't fall into dll hell.

Guy Edkins
Managing Partner
Delta Group Ltd

gedkins@deltagl.com
www.deltagl.com

RE: API - UNC vs. Mapped path in SW VB extraction

(OP)
I was successful in getting what I wanted done. So now when I do a VB BOM extraction from an assembly, no matter if the files are local, appear on a local mapped drive, or were browsed to via network neighborhood the path returned is always UNC. Local drives even become the correct hidden UNC (D$) with the computer name correctly prefixed. This means when it is later manipulated into an Excel spreadsheet that is then published to the web, all the hyperlinks for the file names are unbreakable regardless of different local machine maps! Viola! Instant web based vault via a browser for all SW objects, parts, assemblies, and drawings! If anyone is interested in this really simple web based viewing system (done in Excel, and any browser) that contains a plethora of data including Cost Roll-Up, Total Weight, Total Cost, NHA, Where Used, Discrete Part Count, Item Master List, and Assembly Hierachy, just drop me an e-mail.

Guy Edkins
Managing Partner
Delta Group Ltd

gedkins@deltagl.com
www.deltagl.com

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources