0

このタスクを解決する方法を見つけようとして、私は怒っています。私の目標は非常に簡単です。USB スティックが挿入されるたびにファイルをコピーし、USB スティックを離して LED をオフにします。それを解決する最良の方法は何ですか?

1) この記事を見つけました

http://geekswithblogs.net/BruceEitman/archive/2008/06/13/windows-ce-monitoring-for-disk-insertion-to-add-support-for.aspx

また

http://geekswithblogs.net/BruceEitman/archive/2008/06/13/windows-ce-monitoring-for-disk-insertion-to-add-support-for.aspx

しかし、VB.NET プロジェクトでは翻訳できません。

2)次に、ブロックデバイスにRequestDeviceNotificationsを使用するのに十分であることを読みました。しかし、VB.NETでそれを行うにはどうすればよいですか?

できればOpenNetCFは避けたいです。

ありがとうございました

4

2 に答える 2

1

「OpenNETCF を使用」したくないので、CF に組み込まれていないライブラリや機能を使用したくないと思います。その愚かさの議論と「あなたの時間の価値」の議論をスキップし、それを要件として取り上げます.

あなたがする必要があるのは:

  1. P/Invoke を使用してCreateMsgQueueを呼び出します。これにより、ハンドルが返されます。完全を期すために、おそらく CloseMsgQueue も実行する必要があります
  2. P/ RequestDeviceNotificationsを呼び出し、上記の 1 から返されたハンドルと、必要なデバイス通知のDEVCLASS GUID 値(おそらく STORE_MOUNT_GUID) を渡します。ここでも、完全を期すために StopDeviceNotifications を追加することをお勧めします。
  3. その時点で、挿入または削除が発生するたびに、キューにメッセージが表示されます。次に、ReadMsgQueue を呼び出して、メッセージ内のDEVDETAILデータを取得します。
  4. DEVDETAIL を解析し、fAttachedメンバーを調べます。
于 2012-06-25T14:26:41.447 に答える
0

これを書くには時間がかかるので、自分で行う必要があります。

プロジェクトの作成を開始し、必要な呼び出し (FindFirstFileや などCreateProcess) の P/Invoke ルーチンを見つけます。SO については、「Windows モバイルでのストレージ カードの問題」と「Windows モバイルWM_DEVICECHANGE メッセージのフォームを登録する方法」をご覧ください

あなたが作ることができない特定の呼び出しを見つけることができない場合にのみ、あなたは水中で死んでいるでしょう.

プロジェクトを進めながら、実際に遭遇した問題を投稿 (または検索) します。

そうしないと、誰かにプロジェクトを書いて自分に渡すように頼んでいるように聞こえます。

于 2012-06-25T14:07:15.037 に答える