🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#755
Author: Masataka Nakagawa
Date: Wed, 04 Feb 1998 00:00
14 lines
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: 割り当てられているネットワークドライブパスの取得方法を教えてください。
#761
Author: HINA
Date: Wed, 04 Feb 1998 00:00
33 lines
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: 割り当てられているネットワークドライブパスの取得方法を教えてください。
#765
Author: Sato Masahiro
Date: Thu, 05 Feb 1998 00:00
48 lines
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
#766
Author: Masataka Nakagawa
Date: Thu, 05 Feb 1998 00:00
10 lines
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
#767
Author: Masataka Nakagawa
Date: Thu, 05 Feb 1998 00:00
2 lines
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
#768
Author: Masataka Nakagawa
Date: Thu, 05 Feb 1998 00:00
77 lines
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: 割り当てられているネットワークドライブパスの取得方法を教えてください。
#772
Author: Sato Masahiro
Date: Thu, 05 Feb 1998 00:00
33 lines
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: 割り当てられているネットワークドライブパスの取得方法を教えてください。
#681
Author: Sirai Kazuki
Date: Fri, 06 Feb 1998 00:00
16 lines
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: 割り当てられているネットワークドライブパスの取得方法を教えてください。
#685
Author: Sato Masahiro
Date: Fri, 06 Feb 1998 00:00
11 lines
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