アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

・ネットワークドライブの自動割当・切断方法
・割り当てられたパスの取得方法

以上の二つが分かる方、お願い致します。

+++ 開発環境 +++
・VB6.0
・Windows2000

A 回答 (6件)

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/ap …
    • good
    • 1
この回答へのお礼

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

お礼日時:2004/03/22 16:34

以前、WSH(Windows Script Host)を利用してネットワークドライブ割り当てをしたことがあります。


MapNetworkDriveメソッドを用い、Zドライブから試してみて、エラーだったらY、X、W、V、、と試すという荒っぽいやり方ですが。
使い方は、参照設定をして、CreateObject、、です。

参考URL
http://www.microsoft.com/japan/msdn/library/defa …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/23 23:04

> ・ネットワークドライブの自動割当・切断方法


> ・割り当てられたパスの取得方法

ご質問は、2つでしたね。

逆の手順になると思います。
割り当てた後に、パスを取得するのではなく、割り当てるために
パスの指定をしないとダメですね。

ChDrive とかを使うなり、FilsSystemObject を使うなりであいている
ドライブを探すか、通常、割り当てられないようなドライブを固定で
使うかになると思います。( Z: とか)
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/22 14:28

> 参考URLの先の表示が見れなかったので、


失礼しました。。(^^ゞ

今度は大丈夫だと思います。

参考URL:http://www.microsoft.com/japan/technet/prodtechn …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/22 10:19

私は普通にShellコマンドからnet useを叩いて割り当ててました。


他に良い方法があるかもしれませんが次点として参考にしてください。

参考URL:http://hp.vector.co.jp/authors/VA002739/ntcom/co …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/22 10:12

MSのサイトに以下のようなものがあります。


ログオン スクリプトを作成する

参考URL:http://www.microsoft.com/japan/technet/treeview/ …
    • good
    • 0
この回答へのお礼

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

お礼日時:2004/03/22 09:49

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!