2012-04-26 12 views
2

埋め込みデバイスが自分のPCのUSBポートに接続されると、イベントとしてEXEがトリガーされます。どうすればこれを達成できますか?一度だけEXEをトリガーするデバイスがUSBで接続されている

USBコネクタバスを監視し続けるサービスを作成する必要がありますか、これを達成するためにWindowsにデフォルトAPIがありますか?

ありがとうございました。

+0

EXEをどのようなコンテキストで実行する必要がありますか?現在インタラクティブにログインしているユーザーですか?サービスはかなり簡単ですが、事前定義されたアカウントで実行されます。 – MSalters

+0

[USBが接続されているときにイベントをトリガする方法](http://stackoverflow.com/questions/10259805/how-to-trigger-an-event-when-usb-is-plugged) – Deanna

答えて

3

接続時に起動する簡単なexeはできません。しかし、デバイス到着イベントをリッスンするサービスまたはユーザーモードアプリケーションを記述することができます。 WM_DEVICECHANGEは、どのデバイスが接続されているかを表すデバイスインタフェースguidを持つすべてのアプリケーション(registered)に送信されます。次に、このIDをsetupapiとともに使用して、デバイスがあるかどうかを確認します。

このイベントを受信すると、実行可能ファイルを開始できます。

+0

このスレッドのサンプルはまさにこれを行いますhttp://www.dotnet247.com/247reference/msgs/32/164968.aspx –

2

ご使用のWindowsのバージョンによっては、USBドライブのルートフォルダにあるAutoRun.infファイルを使用してworkaroundを使用している可能性があります。セキュリティ上の理由から、これはデフォルトでは無効になっており、Windows 7ではまったく使用できません。

より堅牢な方法で同じ効果を達成するには、デバイスが接続されているかどうかを監視するサービスを作成する必要があります(接続されたAppleデバイスを監視するiTunesHelperなど)。

+0

ありがとう迅速な答え。私はUSBメモリデバイスが挿入されるとすぐにウィンドウズオートプレイがどのように動作するのだろうかと思っています。また、ドライバーが見つからない場合、Windowsは「新しいハードウェアウィザード」と呼ばれ、OSはプラグインされたUSBデバイス。上記の点を考慮して、他のWindows API(セットアップApi)を使用することは可能ですか? – 2vision2

+0

これは私の知識の範囲を超えています。恐れ入ります – erikxiv

0

もっとも簡単な解決策はおそらく簡単なUMDFドライバです。これは基本的に、デバイスが接続されているときに呼び出される小さなCOMコンポーネントです。

関連する問題