- 題名: 専用USBメモリカートリッジの挿入を感知につきまして
- 日時: 2008/09/07 17:10:58
- ID: 22944
- この記事の返信元:
- (なし)
- この記事への返信:
- [22945] Re[1]: 専用USBメモリカートリッジの挿入を感知につきまして2008/09/07 21:00:08
- ツリーを表示
■No22951に返信(AS0907さんの記事) >> ttp://yaplog.jp/orator/archive/76 (^^; > しかし専用USBメモリカートリッジには抜き差しても反応しませんでした。 ふたつ確認させてください。 (1)どのようなデバイスなのかよく分からなかったのですが、やりたいことは その専用機器の(PCへの)接続判断でしょうか。それとも、その専用機器に対する メモリカートリッジの挿抜判断なのでしょうか。 (2) 反応しなかった、というのは、SysInfo の DeviceArrival イベントが発生しなかった という意味でしょうか。それとも、イベントそのものは発生しているものの、 ドライブレターが無いために、先のサンプルでは検出できなかったという意味でしょうか。 > 専用USBメモリカートリッジの抜き差しにより何か識別番号のようなものが確認できればと思っています。 DeviceArrival イベント(あるいは WM_DEVICECHANGE) の通知が発生しないのであれば、 『WMI』経由で、何かしらの情報を得られないか試してみてください。 http://msdn.microsoft.com/en-us/library/aa389273.aspx http://www.microsoft.com/japan/msdn/columns/scripting/scripting06112002.aspx たとえば、Win32_USBControllerDevice クラスとか。 Dim device As Object For Each device In GetObject("winmgmts:").InstancesOf("Win32_USBControllerDevice") Debug.Print "-----" Debug.Print device.Antecedent Debug.Print device.Dependent Next 一方、DeviceArrival イベントが発生するのであれば、そこから何か 追加情報を得ることができるかも知れません。まずはデバイスタイプを 調べてみてください。DeviceArrival イベントの場合は、DeviceType 引数、 WM_DEVICECHANGE メッセージの場合は wparam がそれにあたります。 (OS の種類によって、異なるパラメータが返される可能性があります) '=== 以下、Windows SDK v6.0 の DBT.H より === Const DBT_DEVTYP_OEM As Long = &H0 Const DBT_DEVTYP_DEVNODE As Long = &H1 Const DBT_DEVTYP_VOLUME As Long = &H2 Const DBT_DEVTYP_PORT As Long = &H3 Const DBT_DEVTYP_NET As Long = &H4 Const DBT_DEVTYP_DEVICEINTERFACE As Long = &H5 Const DBT_DEVTYP_HANDLE As Long = &H6 Const DBT_DEVNODES_CHANGED As Long = &H7 'ハードウェア構成が変更された Const DBT_QUERYCHANGECONFIG As Long = &H17 Const DBT_CONFIGCHANGED As Long = &H18 Const DBT_CONFIGCHANGECANCELED As Long = &H19 Const DBT_MONITORCHANGE As Long = &H1B Const DBT_SHELLLOGGEDON As Long = &H20 Const DBT_CONFIGMGAPI32 As Long = &H22 Const DBT_VXDINITCOMPLETE As Long = &H23 Const DBT_NO_DISK_SPACE As Long = &H47 Const DBT_LOW_DISK_SPACE As Long = &H48 Const DBT_CONFIGMGPRIVATE As Long = &H7FFF Const DBT_DEVICEARRIVAL As Long = &H8000 'デバイスが追加された Const DBT_DEVICEQUERYREMOVE As Long = &H8001 'デバイスを削除する許可を求めてきた Const DBT_DEVICEQUERYREMOVEFAILED As Long = &H8002 'デバイスの削除がキャンセルされた Const DBT_DEVICEREMOVEPENDING As Long = &H8003 'デバイスが削除されようとしている Const DBT_DEVICEREMOVECOMPLETE As Long = &H8004 'デバイスは削除された Const DBT_DEVICETYPESPECIFIC As Long = &H8005 'デバイス固有のイベント Const DBT_CUSTOMEVENT As Long = &H8006 Const DBT_VOLLOCKQUERYLOCK As Long = &H8041 Const DBT_VOLLOCKLOCKTAKEN As Long = &H8042 Const DBT_VOLLOCKLOCKFAILED As Long = &H8043 Const DBT_VOLLOCKQUERYUNLOCK As Long = &H8044 Const DBT_VOLLOCKLOCKRELEASED As Long = &H8045 Const DBT_VOLLOCKUNLOCKFAILED As Long = &H8046 Const DBT_VPOWERDAPI As Long = &H8100 Const DBT_USERDEFINED As Long = &HFFFF
分類:[VB6以前]
お世話になります。
専用USBメモリカートリッジの挿入を感知するプログラムにつきまして
USBハブに専用USBメモリカートリッジの挿入を感知しましたらデバイスインスタンス
ID(VID、PID)を照合して確認できればと願っています。
USBメモリカートリッジの挿入を感知し、それが専用USBメモリカートリッジか確認する
事は可能でしょうか。参考となるような事でもありましたら、ご授受を願えれば幸いです。
よろしくお願い致します。