• ベストアンサー

VB6.0でネットワークドライブの接続・切断

VBから、ネットワークドライブにフォルダを作ろうとしたのですが、ネットワークドライブが割り当てられていない為、エラーが返ってきてしまします。 ネットワークドライブの割り当てを行うAPIは分かったのですが、それでは割り当てを要求するダイアログが表示されてしまいます。 ソフトを使用する人間の殆どがパソコンのことを殆ど分からない人ばかりなので、ネットワークドライブの割り当てと切断を自動的に行えるようにしたいと思っています。 そして、自動的に割り当てられたパスの先に任意のフォルダを作成するプログラムを作成したいのです。 ・ネットワークドライブの自動割当・切断方法 ・割り当てられたパスの取得方法 以上の二つが分かる方、お願い致します。 +++ 開発環境 +++ ・VB6.0 ・Windows2000

質問者が選んだベストアンサー

  • ベストアンサー
  • 2ch
  • ベストアンサー率51% (64/125)
回答No.5

Option Explicit Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" (ByVal nDrive As String) As Long Private Const DRIVE_UNKNOWN     As Long = 0&    'ドライブの判別が出来ない Private Const DRIVE_NO_ROOT_DIR As Long = 1&    '指定のルートディレクトリが存在しない。 Private Const DRIVE_REMOVABLE   As Long = 2&    '交換可能なドライブ (フロッピーディスク等) Private Const DRIVE_FIXED       As Long = 3&    '固定ドライブ Private Const DRIVE_REMOTE      As Long = 4&    'ネットワークドライブ Private Const DRIVE_CDROM       As Long = 5&    'CD -ROM Private Const DRIVE_RAMDISK     As Long = 6&    'RAM ディスク Sub Main()     Dim i           As Integer     Dim lngSts      As Long     Dim strDrive    As String     Dim strValue    As String          For i = Asc("A") To Asc("Z")         strDrive = Chr(i) & ":\"         lngSts = GetDriveType(strDrive)                  Select Case lngSts         Case DRIVE_UNKNOWN:     strValue = strDrive & ":判別出来ない。"         Case DRIVE_NO_ROOT_DIR: strValue = strDrive & ":存在しない"         Case DRIVE_CDROM:       strValue = strDrive & ":CD-ROM"         Case DRIVE_FIXED:       strValue = strDrive & ":固定ドライブ"         Case DRIVE_RAMDISK:     strValue = strDrive & ":RAM ディスク"         Case DRIVE_REMOTE:      strValue = strDrive & ":ネットワークドライブ"         Case DRIVE_REMOVABLE:   strValue = strDrive & ":交換可能なドライブ (フロッピーディスク等)"         End Select         Debug.Print strValue     Next i End Sub あとは WNetAddConnection2 WNetCancelConnection2 を使用

参考URL:
http://www.galliver.co.jp/writing/vbm_tokushu/api9031/
xyz0108f
質問者

お礼

ソースの記述&URL有難うございました。 今別の仕事が入ってしまったので、後で試してみようと思います。 有難うございました~。

その他の回答 (5)

noname#6131
noname#6131
回答No.6

以前、WSH(Windows Script Host)を利用してネットワークドライブ割り当てをしたことがあります。 MapNetworkDriveメソッドを用い、Zドライブから試してみて、エラーだったらY、X、W、V、、と試すという荒っぽいやり方ですが。 使い方は、参照設定をして、CreateObject、、です。 参考URL http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/script56/html/vtoriMicrosoftWindowsScriptTechnologies.asp

xyz0108f
質問者

お礼

回答ありがとうございました。 ドライブを試していくとかいうこともできるんですね。 一度URL見てみますね。 でもそれって、時間とかどうなんでしょう?既にネットワークドライブの割り当てがしてあるものはエラーが帰ってくるのかな?? ちょっと一度試してみますね。 ありがとうございました~

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.4

> ・ネットワークドライブの自動割当・切断方法 > ・割り当てられたパスの取得方法 ご質問は、2つでしたね。 逆の手順になると思います。 割り当てた後に、パスを取得するのではなく、割り当てるために パスの指定をしないとダメですね。 ChDrive とかを使うなり、FilsSystemObject を使うなりであいている ドライブを探すか、通常、割り当てられないようなドライブを固定で 使うかになると思います。( Z: とか)

xyz0108f
質問者

お礼

そうなんですよね。空いているドライブも探したいんですよ。私の会社ではZとかPとか使っているようなので、確実に空いているドライブを探さないとダメなのですよ~。 空いているドライブを探す方法を教えてくださって有難うございました。参考にします。 あと問題は自動割当・切断ですね…。 中々難しいのでしょうか………

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.3

> 参考URLの先の表示が見れなかったので、 失礼しました。。(^^ゞ 今度は大丈夫だと思います。

参考URL:
http://www.microsoft.com/japan/technet/prodtechnol/windowsserver2003/proddocs/standard/ctasks004.asp
xyz0108f
質問者

お礼

わざわさ有難うございました。 一度見てみますね。

  • R-Fuji
  • ベストアンサー率40% (18/45)
回答No.2

私は普通にShellコマンドからnet useを叩いて割り当ててました。 他に良い方法があるかもしれませんが次点として参考にしてください。

参考URL:
http://hp.vector.co.jp/authors/VA002739/ntcom/com_network/use.htm
xyz0108f
質問者

お礼

有難うございました。 こういう方法もあるのですね。 ちょっと参考にして考えてみます。

  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.1

MSのサイトに以下のようなものがあります。 ログオン スクリプトを作成する

参考URL:
http://www.microsoft.com/japan/technet/treeview/default.asp?url=/japan/technet/prodtechnol/windowsserver2003/proddocs/da
xyz0108f
質問者

お礼

さっそくの回答有難うございました。 しかし、参考URLの先の表示が見れなかったので、MSのどこからたどっていけば見れるのか教えてくださると助かります。

関連するQ&A