데스크탑/비주얼 베이직 6
[API]Network drive 연결하기
by 브래드.권
2009. 1. 16.
선언)
Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" _ (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long |
NETRESOURCE 구조체 선언)
Public Type NETRESOURCE dwScope As Long dwType As Long dwDisplayType As Long dwUsage As Long lpLocalName As String lpRemoteName As String lpComment As String lpProvider As String End Type |
미리 정의된 상수들 선언)
Public Const NO_ERROR = 0 Public Const CONNECT_UPDATE_PROFILE = &H1 Public Const RESOURCETYPE_DISK = &H1 Public Const RESOURCETYPE_PRINT = &H2 Public Const RESOURCETYPE_ANY = &H0 Public Const RESOURCE_CONNECTED = &H1 Public Const RESOURCE_REMEMBERED = &H3 Public Const RESOURCE_GLOBALNET = &H2 Public Const RESOURCEDISPLAYTYPE_DOMAIN = &H1 Public Const RESOURCEDISPLAYTYPE_GENERIC = &H0 Public Const RESOURCEDISPLAYTYPE_SERVER = &H2 Public Const RESOURCEDISPLAYTYPE_SHARE = &H3 Public Const RESOURCEUSAGE_CONNECTABLE = &H1 Public Const RESOURCEUSAGE_CONTAINER = &H2 |
설명)
윈도우 95 이상에서 사용할 수 있습니다.
네트워크 드라이브를 동적으로 연결할 때 사용하는 API입니다. 파라미터에 대한 설명은 다음과 같습니다.
lpNetResource : 네트워크 커넥션에 관련된 정보이며, NETRESOURCE 라고 정의된 위에 선언된 구조체를 사용하여 넘겨줘야 합니다.
lpPassword : 커넥션에 사용될 암호이며, null 이면 user name의 현재 기본 암호를 이용하며 빈 문자열일 경우 암호를 사용하지 않습니다.
lpUserName : 커넥션에 사용될 계정이며, null 이면 현재 기본 사용자를 이용하고 빈 문자열일 경우 사용하지 않습니다.
dwFlags :
CONNECT_UPDATE_PROFILE
이 설정이 되있으면, 이렇게 연결된 네트워크 드라이브는 지속적인 것으로 표시되어 윈도우를 다시 로긴할 때 윈도우가 자동으로 연결을 복구합니다.
리턴값 :
NO_ERROR 0인 값으로 함수가 성공적으로 수행되었으면 돌려주는 값입니다.
예제)
Dim NetInfo As NETRESOURCE Dim ReturnValie As Long remote_Drv = "W:" remote_Path = "\\test" Identy.account = "" Identy.passwd = "" NetInfo.dwScope = RESOURCE_GLOBALNET NetInfo.dwType = RESOURCETYPE_DISK NetInfo.dwDisplayType = RESOURCEDISPLAYTYPE_SHARE NetInfo.dwUsage = RESOURCEUSAGE_CONNECTABLE NetInfo.lpLocalName = remote_Drv NetInfo.lpRemoteName = remote_Path NetInfo.lpComment = "" ReturnValue = WNetAddConnection2(NetInfo, Identy.passwd, Identy.account, CONNECT_UPDATE_PROFILE) If ReturnValue <> NO_ERROR Then MsgBox "Making network drive is failed..", vbOKOnly End If |