タイトル ローカルドライブに割り当てられているUNC名を取得する
対象言語 VB4.0, Access95以降
動作確認OS Windows95,98,NT4.0
使用関数 WNetGetConnection
改築日 1999/08/30(1998/02/04)
Source Download

ローカルドライブからマウントされている
ネットワークリソース名を取得します。


下の例では、Gドライブに適当なネットワークパスを
割り当てておき、そのGドライブのネットワークパス名
を取得します。


1. フォームを作成しコマンドボタン(Command1)テキストボックス(Text1)を貼り付けてください。

Option Explicit

Private Sub Command1_Click()

  Dim StrBuf As String

  StrBuf = Y_GetResourceNameFromLocalDrive("J:")

  If StrBuf <> vbNullString Then
    Text1 = StrBuf
  Else
    Call MsgBox("ドライブがないか、ネットワークドライブじゃないよぉ (ToT)")
  End If

End Sub



2.モジュールウインドウを作成し、下のソースを入力してください。


Option Explicit

'ローカルドライブからマウントされているネットワークリソース名を取得する
Declare Function WNetGetConnection Lib "mpr.dll" Alias "WNetGetConnectionA" _
(ByVal lpszLocalName As String, ByVal lpszRemoteName As String, cbRemoteName As Long) As Long

Public Const MAX_PATH = 260


Public Function Y_GetResourceNameFromLocalDrive(Drv As String) As String
'***********************************************************
'機能 : ローカルドライブからマウントされている
'    ネットワークリソース名を取得する
'引数 : Drv = 取得するドライブ名
'戻り値: ネットワークリソース名
'***********************************************************

  Dim longret As Long
  Dim StrBuf As String
  Dim DriveName As String

  DriveName = Left$(Drv, 1) & ":"

  StrBuf = String$(MAX_PATH, vbNullChar)
  longret = WNetGetConnection(DriveName, StrBuf, MAX_PATH)

  Y_GetResourceNameFromLocalDrive = EditBuf(StrBuf)

End Function


Public Function EditBuf(Buf As String) As String
'***********************************************************
'機能 : 引数 Bufの文字列中の Nullコードを検索し、Nullコードを
'     除いた文字列を返す
'引数 : Buf = Nullコードを含む文字列
'戻り値: Nullコードを除いた文字列
'***********************************************************

  Dim i As Long

  i = InStr(Buf, vbNullChar)
  If i <> 0 Then
    EditBuf = Left$(Buf, i - 1)
  Else
    EditBuf = Buf
  End If

End Function





Copyright (C)1997-2001 空耳工房 MY2Project All rights reserved.