• ベストアンサー
  • すぐに回答を!

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

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

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数6077
  • ありがとう数6

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

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

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/

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • 「切断したネットワークドライブ」ができてしまう

    WinXPのpro SP2 を使用しています。 「Yドライブ」「Zドライブ」にネットワークドライブを割り当てています。 昨日から、PC起動し、数分後 「切断したネットワークドライブ」がT~Xまでずらぁーーと勝手に出来てしまって困っています。 切断しようにも、「ネットワーク接続が見つかりませんでした」とメッセージがでて消えません。 その出来たT~Xのドライブの中は、Yに割り当てたフォルダの内容が表示されています。 PCを再起動すると、一旦消えるのですが、また数分後復活してしまいます・・・。 そして、1時間経ったあたりからO~Sドライブが同じように勝手に出来てしまうんです。 ttp://dell-support.okwave.jp/qa1300939.html ↑ この質問と同じような現象なんですが、変化無しです。 再度割り当てしようにも、割り当ての設定画面(ダイアログ?)にはO~Xが居ない状態です・・・。 エクスプローラー(マイコンピュータ)には、存在し、中も見れる状態です。 ウィルススキャンも行いましたが、検出されませんでした。 どうにか、削除する方法はないでしょうか? よろしくお願いします。

  • ネットワークドライブの切断?

    Windows2000proを使っています。 時々サーバーのファイルが必要になるのでネットワークドライブの割り当てを実行して簡単に出来るようにしていましたが、あるときそのフォルダに保存しようとしたら切断されていました。頻繁ではないのですが気が付いたら切断されているという感じです。ドメイン環境に参加しているのでログインするときはローカルにログインしたり、ドメインにログインしたりしています。これが原因しているのかな?どのような条件で切断されるのかご存知の方教えてください。 ちなみにサーバーはNT4.0でフォルダは共有で権限はEveryOneにしています。 お願いします。

  • ネットワークドライブが切断されてしまう

    環境 : windows98SE × 1台 windows2000pro × 2台 以上のLAN環境で98にネットワークドライブを作成しています。 PC起動時は問題ないのですが、時間が経つとネットワークドライブに接続できなくなります【エラー:ネットワークパスが存在しません】 相手にPingは通ります。ネットワークドライブのアドレスはPC名ではなくIPアドレスを使用しています。 手動でドライブを切断/接続 または再起動で対応している状況です。 時間で切断するような設定をしているつもりは無いのですが・・・ なにか良い解決法がありましたらご教授ください よろしくお願いいたします。

その他の回答 (5)

  • 回答No.6
noname#6131

以前、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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

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

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

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

共感・感謝の気持ちを伝えよう!

質問者からのお礼

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

関連するQ&A

  • 切断されたネットワークドライブの再接続

    WinXPの端末に接続し、共有化しているDVDドライブを Win2003の端末でネットワークドライブとして設定しています。 ただ、起動する順番がWin2003→XPの順の為、 Win2003のネットワークドライブには常に赤い×がついている状態です。 OpenやDir関数を使用する際、アクセスできずエラーとなってしまいます。 ・VBコマンドやAPI関数に、切断されたネットワークドライブに  再接続を行うようなものがあるのか? ・Win2003側に、ネットワークドライブの状態をリアルタイムに  取得できる設定があるのか? 回答お願い致します。

  • ネットワークドライブの割りあてが。。。接続できませんでしたと・・・

    WINXPでネットワークドライブの割り当てを 設定し、再起動すると・・・・ ネットワークドライブに接続できませんでした・・・ とコメントが返ってきます・・・ でも、他のPCにはきちんと接続されています。 再起動するといちいち ネットワークドライブの割り当てが 切断されちゃうってことってありえるのでしょうか? また。。。この解消法をぜひぜひ 教えて下さい!おねがいしまぁ~す

  • vb6からのネットワーク接続について

    vb6.0について質問です。 Shellexecute関数を使って外部プログラムを起動してすぐに接続しているネットワークドライブをShell関数を使って切断しようとすると 以下のようなメッセージがDOS窓で表示されてしまいます。 「Z:との接続にオープン ファイルや未実行のディレクトリ検索があります。 切断を続行し、強制的に閉じますか?(Y/N)」 Nにすると反応なしになりフリーズしてしまい、Yにすると正常に切断されます。 Shell関数は、 Shell "net use z: /D" このDOS窓が表示されないようにしたいのですがどのような対策が考えられますか? 外部プログラムを起動して5秒ほど経ってからネットワークドライブを切断するとDOS窓が表示されないようですので閉じる前にSleepを使って 対応しています。レスポンスを早くしたいので他の対策をさがしています。 ネットワーク系に詳しい方お知恵をお貸しください。

  • ネットワークドライブの再接続について

    社内のC/SシステムでPC(W/XP)からサーバ(2K)をネットワークドライブとして割り当て、サーバー上のアプリケーションを実行します。 PC起動時に自動的にネットワークドライブとして割り当てられるのですが、あるPCでは起動時のネットワークドライブの再割り当てが上手くいっていないようで、クライアント側のメニューよりサーバのアプリケーションを実行しても動きません。 マイコンピュータを開くと、ちゃんとネットワークドライブは見えていますので、起動直後にマイコンピュータから割り当てられているドライブを開き(おそらくこのタイミングでアタッチされるのでしょう)、それからアプリケーションを実行すると動きます。 なお、このパソコンは有線ですが、他のパソコンで、有線から無線に切り替えたときにも同様の現象が起こり、解決しておりません。 この場合は無線LANアダプタがUSBであり、PC起動からネットワークにつながるまでに時間がかかるため、ネットワークドライブに割り当てができない状態で立ち上がってしまうのだろうと思っていますが、解決方法は見出せずにおります。 PC起動時にネットワークドライブの割り当てができたりできなかったりする原因をご存知の方がいらっしゃったら、ご教授いただけますと幸いです。よろしくお願い致します。

  • ネットワークドライブとは?

    WindowXPについて教えてください。 ネットワークドライブとは一体どういったものなのでしょうか。 通常のドライブとはどう違うのでしょうか。 また、右クリックした際にメニュー項目に表示される 「ネットワークドライブの割り当て」および 「ネットワークドライブの切断」とは どういったことをするメニューなのでしょうか。 ご返答よろしくお願いします。

  • エクスプローラにおける、ネットワークドライブの割当について

    Windows NT を使ってます。 エクスプローラで、ネットワークドライブの割当ができますが、 ある時から、知らないうちに、勝手に、割当られるようになってしまいました。 気づくと、ドライブZまで、勝手に割り当てられていたりします。 実害はないと思うのですが、エクスプローラを使用する際、邪魔なので、 毎回、毎回、ひとつづつ、ネットワークドライブの切断をしています。 これは、何が原因でしょうか? 直す手段をご存知でしたら、教えてください。 よろしくお願いします。

  • ネットワークドライブが勝手に割り当てられて、困っています

    最近、Windows 2000 Professional で、ネットワークドライブが勝手に割り当てられて困っています。 ログオンして最初は、C:, D: ローカルディスク、E: CD-ROM、W: ネットワークドライブ(自分で割り当てたの)になってるんですが、暫くすると自動的に「ネットワークドライブ」が増えていきます。自動的に作成されるネットワークドライブは「ネットワーク ドライブ(Z:)」などという名前になって、切断(D)しようとしても「×ネットワーク接続が見つかりませんでした」となります。Z: のアイコンはネットワークドライブに×が付いたのなんですが、この Z: は開く(O)ことができて、W: と同じトコロに繋がっています。 検索して「FindFast を削除する」というのを見つけましたが、FindFast はインストールされてないみたいです。

  • ネットワークドライブの割り当て

    linuxにたてているsambaにwindows2000から接続しますが windows2000側Xドライブを 「ログオン時に再接続する」のチェックと 「異なるユーザー名で接続する」を選び ネットワークドライブの割り当て、そのときは接続できますが 再起動時 「ネットワークパスワードの入力:パスワードかユーザー名が正しくありません」とでて 再びパスワード入力を求められます。 samba側にユーザーを追加する以外の方法で 自動でログインしてほしいのですが可能でしょうか? 宜しくお願いいたします。

  • ネットワークドライブの割り当てを行ったら…

    ネットワークドライブの割り当てを行ったらパソコンの起動が非常にもたつくようになってしまいました。 具体的にはユーザー名とパスワードを入力した後、30秒ほど、ほとんどハードディスクにもアクセスせずにとまっています。 試しにネットワークドライブを切断し再起動したらこれまでどうり普通に起動するようになりました。 遅いだけで特にトラブルがあるわけではありませんがネットワークドライブの割り当てをおこなった状態でも早く起動できる方法があれば教えてください。 よろしくお願いします

  • ネットワークドライブの削除

    ネットワークドライブを切断してもPCを再起動するとまた接続されてしまいます。削除したいドライブを再接続するときにログオンするのチェックをはずして再割り当てしても消えませんでしたし、いろいろ検索している中で見つけたコマンドプロンプト(NET USE /PERSISTENT:NO)を実行してから削除して見ても消えませんでした。 何かほかの方法で完全にネットワークドライブを切断する方法はありませんでしょうか?