Thread View: fj.lang.visualbasic
9 messages
9 total messages
Started by Masataka Nakagawa
Wed, 04 Feb 1998 00:00
$B3d$jEv$F$i$l$F$$$k(JH/D\08D^W2L^J_=$B$N<hF@J}K!$r65$($F$/$@$5$$!#(J
Author: Masataka Nakagawa
Date: Wed, 04 Feb 1998 00:00
Date: Wed, 04 Feb 1998 00:00
14 lines
957 bytes
957 bytes
$B$3$s$K$A$O!#Cf@n$H?=$7$^$9!#(J $B<ALd(J 8W21]DPC $B$N(J D^W2L^ $B$,$I$3$N(J H/D\08D^W2L^J_= $B$K3d$jEv$F$i$l$F$$$k$+$rCN$k(J L_[8^WQ $B$O:n$l$^$9$+!#(J $BNc$($P(J 8W21]DPC $B$N(J F D^W2L^ $B$K(J H/D\08D^W2L^ "\\Ew220s02\d" $B$,3d$jEv$F$i$l$F$$$k(J $B>l9g!"0z?t$K(J "F" $B$rEO$9$HLa$jCM$K(J "\\Ew220s02\d" $B$rJV$9$h$&$J(J L_[8^WQ$B!#(J ;0J^ $B$N(J OS $B$O(J Windows NT ;0J^ Ver3.51 $B$G$9!#(J $B$4B8CN$NJ}$h$m$7$/$*4j$$$7$^$9!#(Jm(_ _)m
Re: 割り当てられているネットワークドライブパスの取得方法を教えてください。
Author: HINA
Date: Wed, 04 Feb 1998 00:00
Date: Wed, 04 Feb 1998 00:00
33 lines
2105 bytes
2105 bytes
こんにちは、HINAです。 Masataka Nakagawa wrote in message <01bd3141$5b988780$0d0314ac@9750967.hmw.mhi.co.jp>... >こんにちは。中川と申します。 > >質問 >クライアントPC の ドライブ がどこの ネットワークドライブパス に割り当てられているかを知る >プログラム >は作れますか。 >例えば クライアントPC の F ドライブ に ネットワークドライブ "\\Ew220s02\d" >が割り当てられている >場合、引数に "F" を渡すと戻り値に "\\Ew220s02\d" を返すような プログラム。 > >サーバ の OS は Windows NT サーバ Ver3.51 です。 > >ご存知の方よろしくお願いします。m(_ _)m > WNETで始まるAPIに多分あると思います。(APIビューワで探してくださ い) 実際、WNETADDCONNECTION2やWNETCANCELCONNEC TIONを 使って切断接続をおこなっています。 説明はSDKでしか見たことがありません。(英語) あと、裏わざでもないですが、 フォームにドライブコンボボックスを貼り付けて そのリストから求めるという方法もあります。 この場合バックで接続切断が行われても リストはアップデートされませんので直前にREFRESHする 必要があります。 なお、そのドライブがリモートかどうかはGETDRIVETYPE(API)で わかります。
Re: 割り当てられているネットワークドライブパスの取得方法を教えてください。
Author: Sato Masahiro
Date: Thu, 05 Feb 1998 00:00
Date: Thu, 05 Feb 1998 00:00
48 lines
2377 bytes
2377 bytes
元記事がばけばけで読めないので、HINAさんの記事ににフォローさせて 頂きます。 In article <6b9tgr$k9v$1@tymwsv02.fitweb.or.jp>, HINA wrote: >Masataka Nakagawa wrote in message ><01bd3141$5b988780$0d0314ac@9750967.hmw.mhi.co.jp>... >>こんにちは。中川と申します。 >> >>質問 >>クライアントPC の ドライブ がどこの ネットワークドライブパス に割り当てられているかを知る >>プログラム >>は作れますか。 >>例えば クライアントPC の F ドライブ に ネットワークドライブ "\\Ew220s02\d" >>が割り当てられている >>場合、引数に "F" を渡すと戻り値に "\\Ew220s02\d" を返すような プログラム。 >> >>サーバ の OS は Windows NT サーバ Ver3.51 です。 >> >>ご存知の方よろしくお願いします。m(_ _)m >> >WNETで始まるAPIに多分あると思います。(APIビューワで探してくださ >い) WNetGetUniversalName ですね。例えば、以下のようになるでしょうか。 Public Const UNIVERSAL_NAME_INFO_LEVEL As Long = 1 Declare Function WNetGetUniversalName Lib "mpr" _ Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, _ ByVal dwInfoLevel As Long, lpBuffer As Long, lpBufferSize As Long) As Long Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" _ (ByVal lpString1 As String, ByVal lpString2 As Long) As Long Dim BufSize As Long Dim Buf(1000) As Long Dim UNC As String * 1000 BufSize = 1000 WNetGetUniversalName "F:", UNIVERSAL_NAME_INFO_LEVEL, Buf(0), BufSize lstrcpy UNC, Buf(0) MsgBox UNC -- Computer Institute of Japan, Ltd. 佐藤正宏 masahiro@cij.co.jp
$BH>3Q%+%?%+%J;H$C$F$4$a$s$J$5$$!#(J
Author: Masataka Nakagawa
Date: Thu, 05 Feb 1998 00:00
Date: Thu, 05 Feb 1998 00:00
10 lines
714 bytes
714 bytes
Masataka Nakagawa <mieyan@blue.plapa.or.jp> wrote in article <01bd3141$5b988780$0d0314ac@9750967.hmw.mhi.co.jp>... $BFI<T$N$_$J$5$^$X!#(J $BH>3Q%+%?%+%J$G=q$/$H2=$1$k$3$H$rCN$i$J$+$C$?$b$N$G$9$+$i!#$*CQ$:$+$7$$8B$j(J $B$G$9!#(J
Re: $B3d$jEv$F$i$l$F$$$k%M%C%H%o!<%/%I%i%$%V%Q%9$N<hF@J}K!$r65$($F$/$@$5$$!#(J
Author: Masataka Nakagawa
Date: Thu, 05 Feb 1998 00:00
Date: Thu, 05 Feb 1998 00:00
2 lines
592 bytes
592 bytes
$B#H#I#N#A$5$s!!$"$j$,$H$&$4$6$$$^$7$?!#(J
Re: $B3d$jEv$F$i$l$F$$$k%M%C%H%o!<%/%I%i%$%V%Q%9$N<hF@J}K!$r65$($F$/$@$5$$!#(J
Author: Masataka Nakagawa
Date: Thu, 05 Feb 1998 00:00
Date: Thu, 05 Feb 1998 00:00
77 lines
2932 bytes
2932 bytes
> WNetGetUniversalName $B$G$9$M!#Nc$($P!"0J2<$N$h$&$K$J$k$G$7$g$&$+!#(J
>
> Public Const UNIVERSAL_NAME_INFO_LEVEL As Long = 1
>
> Declare Function WNetGetUniversalName Lib "mpr" _
> Alias "WNetGetUniversalNameA" (ByVal lpLocalPath As String, _
> ByVal dwInfoLevel As Long, lpBuffer As Long, lpBufferSize As Long) As
Long
> Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" _
> (ByVal lpString1 As String, ByVal lpString2 As Long) As Long
>
> Dim BufSize As Long
> Dim Buf(1000) As Long
> Dim UNC As String * 1000
>
> BufSize = 1000
>
> WNetGetUniversalName "F:", UNIVERSAL_NAME_INFO_LEVEL, Buf(0), BufSize
> lstrcpy UNC, Buf(0)
>
> MsgBox UNC
>
> --
> Computer Institute of Japan, Ltd.
> $B:4F#@59((J masahiro@cij.co.jp
>
>
$B:8F#$5$s!!$"$j$,$H$&$4$6$$$^$7$?!#(J
$B<!$N$h$&$J%W%m%0%i%`$r:n$C$F<B9T$7$F$_$^$7$?$,4|BT$7$?CM$,5"$C$F$-$^$;$s$G(J
$B$7$?!#(J
$BAG?M$J$b$N$G$9$+$i$I$3$,0-$$$N$+$4;XE&$/$@$5$$!#(J
Private Declare Function WNetGetUniversalName Lib "mpr" Alias
"WNetGetUniversalNameA" (ByVal lpLocalPath As String, ByVal dwInfoLevel As
Long, lpBuffer As Long, lpBufferSize As Long) As Long
Private Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal
lpString1 As String, ByVal lpString2 As Long) As Long
Public Function PF_WNetGetUniversalName(InDriveName As String) As String
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'$B5!G=!'%I%i%$%V$K3d$jEv$F$i$l$?%M%C%H%o!<%/%Q%9L>$rJV$9!#(J
'$BLaCM!'3d$jEv$F$i$l$?%\%j%e!<%`L>!"%(%i!<;~$O%V%i%s%/!#(J
'$B0z?t!'%I%i%$%VL>!#(J
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
On Error GoTo Err_PF_WNetGetUniversalName
Dim W_Ret As String
Dim W_WNetGetUniversalName As Long
Dim W_lstrcpy As Long
Dim W_BufSize As Long
Dim W_Buf(1000) As Long
Dim W_UNC As String * 1000
W_BufSize = 1000
W_WNetGetUniversalName = WNetGetUniversalName(InDriveName, 1, W_Buf(0),
W_BufSize)
W_lstrcpy = lstrcpy(W_UNC, W_Buf(0))
W_Ret = W_UNC
Exit_PF_WNetGetUniversalName:
PF_WNetGetUniversalName = W_Ret
Exit Function
Err_PF_WNetGetUniversalName:
W_Ret = ""
MsgBox format(Err, "00000") & ":" & Error$
Resume Exit_PF_WNetGetUniversalName
End Function
Re: 割り当てられているネットワークドライブパスの取得方法を教えてください。
Author: Sato Masahiro
Date: Thu, 05 Feb 1998 00:00
Date: Thu, 05 Feb 1998 00:00
33 lines
2220 bytes
2220 bytes
In article <01bd31f6$e764ca20$0d0314ac@9750967.hmw.mhi.co.jp>, Masataka Nakagawa wrote: >次のようなプログラムを作って実行してみましたが期待した値が帰ってきませんで >した。 >素人なものですからどこが悪いのかご指摘ください。 (以下略) 参考までに、どのようにうまく行かなかったのか、教えていただけ ますか? まず注意しなければならないのは、API 関数のエラーは、On Error ステートメントでは、捕捉できないことです。API 関数が正常に実行 されたかどうかの判定は、関数の戻り値や GetLastError 関数などで 判断する必要があります。(蛇足ですが、GetLastError 関数を用いる 際には VB が暗黙に処理を行う可能性を極力排除した方が良いかも しれません) 従って、まず WNetGetUniversalName 関数の戻り値である W_WNetGetUniversalName 変数の値によって、エラーの原因を特定 してみてください。例えば、ERROR_BAD_DEVICE (=1200) が返って きたのならば、渡している引数に誤りがある可能性があります。 “F:” を渡すつもりが、 誤って “F” を渡している、など。 以上を考慮してもエラーが特定できないならば、念のため以下の ようなコードに、エラー処理を加えて試してみてください。 (途中略) WNetGetUniversalName "F:", REMOTE_NAME_INFO_LEVEL, Buf(0), BufSize lstrcpy UNC, Buf(1) -- Computer Institute of Japan, Ltd. 佐藤正宏 masahiro@cij.co.jp
Re: 割り当てられているネットワークドライブパスの取得方法を教えてください。
Author: Sirai Kazuki
Date: Fri, 06 Feb 1998 00:00
Date: Fri, 06 Feb 1998 00:00
16 lines
1689 bytes
1689 bytes
「5 Feb 1998 09:44:45 GMT」頃 「<6bc1md$p3q@cij-gw.ykhm.cij.co.jp>」の記事 「Re: 割り当てられているネットワ ークドライブパスの取得方法を教えてく ださい。」で 「masahiro@cij.co.jp (Sato Masahiro)」氏 wrote: >ステートメントでは、捕捉できないことです。API 関数が正常に実行 >されたかどうかの判定は、関数の戻り値や GetLastError 関数などで >判断する必要があります。(蛇足ですが、GetLastError 関数を用いる VB内部で、API関数の詳細エラーを調べる場合は、 LastDLLError プロパティですね。 =================================================== Sirai@mcn.ne.jp Datula → http://www.vector.co.jp/authors/VA012699/ ===================================================
Re: 割り当てられているネットワークドライブパスの取得方法を教えてください。
Author: Sato Masahiro
Date: Fri, 06 Feb 1998 00:00
Date: Fri, 06 Feb 1998 00:00
11 lines
1172 bytes
1172 bytes
In article <6be3a7$f50$1@cad10.bpr.oki.co.jp>, Sirai Kazuki wrote: > VB内部で、API関数の詳細エラーを調べる場合は、 > LastDLLError プロパティですね。 > おっしゃる通りです。大変失礼致しました。m(_ _)m -- Computer Institute of Japan, Ltd. 佐藤正宏 masahiro@cij.co.jp
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads