tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルポータブルデバイスについて
記事No10850
投稿日: 2012/06/24(Sun) 11:31
投稿者アンナ
よろしくお願いします

現在外部記録媒体が接続されたかどうかを監視するプログラムをvb2010(Win7)で作っています。

しかし、スマートフォンはディスクドライブで無いため、接続を監視できません。
Dim l_strSQL As String = "SELECT * FROM Win32_DiskDrive"

    For Each drive As ManagementObject In New ManagementObjectSearcher("root\CIMV2", l_strSQL).Get()
      Dim l_strCap As String = drive.GetPropertyValue("Caption")
      Dim l_strNo As String = drive.GetPropertyValue("PNPDeviceID")
      MsgBox(String.Format("Caption = {0}" & vbCrLf & "SerialNo.= {1}", l_strCap, l_strNo))
    Next
上の処理は動くようになったのですが、スマートフォンは含まれませんでした。
デバイスマネジャーではポータブルデバイスに含ませていましたので
色々調べてたのですがどこにもポータブルデバイスの一覧表示のクラスが見つかりませんでした。

どうしたらこのポータブルデバイスの一覧を取得できるのでしょうか?
またこの方法以外でも可能な方法があればお願いします

よろしくお願いします。
※ Win32_PnPEntityにしたら出てきたのは出てきましたが、どれがポータブルデバイスなのか判断できませんでした。しかも時々フリーズします><
※スマートフォンはXperiaです

[ツリー表示へ]
タイトルRe: ポータブルデバイスについて
記事No10851
投稿日: 2012/06/24(Sun) 22:30
投稿者オショウ
> しかし、スマートフォンはディスクドライブで無いため、接続を監視できません。

  スマホのUSB接続設定は、何に設定しているのでしょうか?
  Optimus LTE で、大容量ストレージ設定にして接続したところ
  WM_DEVICECHANGE メッセージが飛びましたので、接続監視も可能
  でした。

  WndProc をオーバーライドして、WM_DEVICECHANGE メッセージの
  wParam が、DBT_DEVICEARRIVAL の場合を捕捉できるか確認して
  下さい。

※ スマホのメーカーによっては、USBの接続方法が、
    メディア転送モード(MTP)とファイル転送モード(MSC)があります。
  Android のOSのバージョンにも依存してますので、確認してください。

  http://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=al2&namber=30617&rev=&no=0

以上。参考まで

[ツリー表示へ]
タイトルRe^2: ポータブルデバイスについて
記事No10852
投稿日: 2012/06/25(Mon) 22:51
投稿者アンナ
ありがとうございます
参照してみます。

MTPで接続しています。
かってにスマートフォン等を接続するのを監視したいので設定を変えることはできません。

WM_DEVICECHANGE
調べてみます。ありがとうございました。
帰ってくるかもしれませんが・・・

[ツリー表示へ]
タイトルRe^3: ポータブルデバイスについて
記事No10855
投稿日: 2012/06/26(Tue) 23:03
投稿者アンナ
帰ってきてしまいました><

リンクインク先を拝見させていただきました。
しかし、C++みたいなのと所々の単語しかなく理解できませんでした。
しかし、一つ発見がありました。メディア転送モード(MTP)のパスにアクセスできたら問題は解決しそうです。

でグーグルで調べたのですが、出てきません・・・需要はあると思うのですが・・・
VB2010でWin7開発ですが、使用する端末はWin7SP2以降の端末です(フレイムワーク3.5適用済み

どうかよろしくお願いします

[ツリー表示へ]
タイトルRe^4: ポータブルデバイスについて
記事No10856
投稿日: 2012/06/26(Tue) 23:40
投稿者オショウ
> どうかよろしくお願いします

  と言われても・・・

  http://www.microsoft.com/windowsembedded/en-us/develop/MTP-Responder-Deployment-Guide.aspx
  http://msdn.microsoft.com/en-us/windows/hardware/gg463543.aspx

  いくら英語でも、そのものズバリが書かれているのだから、読破する
  くらいの努力はしてもらわないと。

  あと、Azulenさんのカキコミでは・・・
  http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/e6fa2d73-c530-493f-b1d7-e20e812d0d7e

  Windows API Code Pack のサンプル(C#)などをつつき回した結果、
  以下の手順で列挙に含まれることがわかりました。
  と書かれてます。C#のサンプルがWindows API Code Packに存在する
  と言うことですネ!

  http://archive.msdn.microsoft.com/WindowsAPICodePack

以上。頑張って下さい。

[ツリー表示へ]
タイトルRe^5: ポータブルデバイスについて
記事No10865
投稿日: 2012/07/04(Wed) 20:07
投稿者アンナ
わかりました
がんばってみます
ありがとうございました

[ツリー表示へ]