投稿者 N88-BASIC  (社会人) 投稿日時 2016/9/22 14:34:44
Windows 10 Pro (64bit) + Visual Basic 2015 Community にてネットワークドライブへの接続を行う処理を行おうとしております。

サーバー(ネットワークドライブの提供元)はルーターのUSBメモリの共有機能です。
マニュアル処理では問題なく接続でき、また、「ユーザー認証なし」の設定では下記コードで問題なく接続できています。
「ユーザー認証あり」に設定すると、下記コードでは”指定されたネットワークパスワードが間違っています。”と表示されてしまいます(パスワードが間違っているとおっしゃられるとそれまでですが、、)

デバッグをお願いしているようで心苦しいのですが、下記コードに問題があればご指摘いただければ幸いです。

余談ですが、WNetCancelConnection2A ではマニュアル接続のドライブの切断には問題ありません。

以上 よろしくお願いします。

以下、使用コード

'----- ネットワークドライブの接続の環境整備 -----
    Public Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
        "WNetAddConnection2A" (ByRef lpNetResource As NETRESOURCE,
                               ByVal lpPassword As String,
                               ByVal lpUserName As String,
                               ByVal dwFlags As Integer) As Integer

    Public Structure NETRESOURCE
        Public dwScope As Integer
        Public dwType As Integer
        Public dwDispalyType As Integer
        Public dwUsage As Integer
        Public lpLocalName As String
        Public lpRemoteName As String
        Public lpComment As String
        Public lpProvider As String
    End Structure

    Private Function iAddNetDrive() As Integer
        Dim NetRsrc As NETRESOURCE
        Dim strUser As String = "user"
        Dim strPass As String = "A"
        NetRsrc.dwScope = 2
        NetRsrc.dwType = &H1
        NetRsrc.dwDispalyType = &H3
        NetRsrc.lpLocalName = "N:"
        NetRsrc.lpRemoteName = "\\NetDrive\Common"
        NetRsrc.dwUsage = Nothing
        NetRsrc.lpComment = Nothing
        NetRsrc.lpProvider = Nothing
        iAddNetDrive = WNetAddConnection2(NetRsrc, strPass, strUser, 0)
 End Function

'----------- 以下が接続処理と接続処理の結果の確認 -------------
   Private Sub btConnect_Click(sender As Object, e As EventArgs) Handles btConnect.Click
        Dim iRes As Integer = iAddNetDrive()
        lbStatus.Text = New System.ComponentModel.Win32Exception(iRes).Message 
    End Sub