[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2006/02/27(Mon) 15:25
投稿者名:あやめ
URL :
タイトル:
ネットワークパスワード
LAN上のパソコン-A 内のエクセルファイルを同一LAN上のパソコン-Bから読んだり書いたり
VB6プログラムで行っています。

しかし、パソコン-Bの電源を立ち上げ直した場合、 パソコン-Aにアクセスして
ネットワークパスワードの入力をしておかないと パソコン-Bの
VB6プログラムで lRetS=Dir( \\パソコンA\aaa\XXX.xls) とやっても 
lRetS="" です。ファイルが読めない状態です。

このネットワークパスワードの手入力を VB6 プログラムで実現したいのですが。
APIの一覧を見てもわからず、ネット検索しても、情報を得ることができず、こちらに書き込みました


ご経験のあるかた宜しくお知らせください。

電源入れっぱなし、パスワードを入力をやめれば問題ないのでしょうが、
そうもできない環境です。

お忙しいところすみませんが宜しくお願いします。

投稿時間:2006/02/27(Mon) 16:02
投稿者名:GOD
Eメール:
URL :
タイトル:
Re: ネットワークパスワード
> このネットワークパスワードの手入力を VB6 プログラムで実現したいのですが。
> APIの一覧を見てもわからず、ネット検索しても、情報を得ることができず、こちらに書き込みま
した
> 。
>
WNet〜 系統の API を調べてみてください。
私も詳しく試したことがないのでどこまで出来るのかは分かりません。
接続だけなら WNetAddConnection2 でやった(実験した)ことは有りますが、今回は
1)接続の判定
2)ユーザー名、パスワードの入力
等も行わなければならないでしょうから。

投稿時間:2006/03/13(Mon) 17:46
投稿者名:あやめ
URL :
タイトル:
Re^2: ネットワークパスワード
お世話になります。

教えていただいて
色々やりましたがうまくいきません。
下記がそのときの定義とプログラムです。


’’’’’’’’’’’’’’’’’’’’’’’’
Option Explicit

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

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

’構造体定義
Public Type NETRESOURCE
    lpLocalName  As String
    lpRemoteName As String
    lpProvider As String
    dwType As String
End Type

’’’’’’’’’’’’’’
Private Sub linknet_Click()

Dim  dwFlags as Long
Dim lpNetResource as NETRESOURCE

With lpNetResource
   .dwType = ””                '(1)
   .lpLocalName = ""               '(2)
   .lpRemoteName = "\\Bxx-soumu2"  '(3)
   .lpProvider = ""                '(4)
   .dwFlags = CONNECT_UPDATE_PROFILE
end With
lRet = WNetAddConnection2(lpNetResource, "income", "administrator", dwFla
gs)

End Sub

’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’’

同一 LAN WARKGROUP の PC "\\Bxx-soumu2" に User "Administrator"
で パスワード "income" で ログインしたいのですが、

(1)の dwTypeに入れる値がわりません。
(CONNECT_UPDATE_PROFILEはデバック時 EMPTYでした。)

(2)(3)(4)は上記でいいと思うのですが?

すみません、ヒントお願いします。

投稿時間:2006/03/13(Mon) 19:04
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re^3: ネットワークパスワード
API を使うときは、Platform SDK に含まれるヘッダファイルを用意しましょう。
定数の値などは、それを元に調べる事になりますので。

> (1)の dwTypeに入れる値がわりません。
> (CONNECT_UPDATE_PROFILEはデバック時 EMPTYでした。)

CONNECT_UPDATE_PROFILE は、『WINNETWK.H』というヘッダファイルにて、
  #define CONNECT_UPDATE_PROFILE      0x00000001
と記述されています。という事は、VB6 に翻訳して
  Const CONNECT_UPDATE_PROFILE As Long = &H1&
という事ですね。


> (2)(3)(4)は上記でいいと思うのですが?
その前に、NETRESOURCE の構造体定義が間違っていそうです。
下記の仕様と比べると、メンバ数もサイズも異なっているようですが…。
hhttp://msdn.microsoft.com/library/en-us/wnet/wnet/netresource_str.asp

投稿時間:2006/03/14(Tue) 09:08
投稿者名:あやめ
URL :
タイトル:
Re^4: ネットワークパスワード
お世話になります。ご指導いただき恐縮です。

1)
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

2)
With lpNetResource
   .dwScope = 1  
   .dwType = RESOURCETYPE_ANY
   .dwDisplayType = RESOURCEDISPLAYTYPE_GROUP
   .dwUsage = RESOURCEUSAGE_ALL
   .lpLocalName = ""
   .lpRemoteName = "\\Bm02-seikan2"
   .lpComment = RESOURCE_CONNECTED
   .lpProvider = ""
End With

dwFlags = CONNECT_UPDATE_PROFILE

上記にのように修正して 戻り値 NO_ERROR です。
ログインできました。 ありがとうございます。