2

C# で Windows XP/Vista/7 を実行している PC に SD カードがマウントされているかどうかを知るために使用できる Windows イベントまたはメカニズムはありますか?

今日まで、WM メッセージを使用して新しいドライブが接続されているかどうかを確認する方法と、WQL を使用する方法を見つけました。これらは CD/DVD および USB で正常に動作しますが、SD カードを PC に挿入したかどうかを検出することはできませんでした。 . これは USB ドライブとは異なるようで、「リーダー」ハードウェアが既に PC に接続されているためだと思います。

しかし、私は方法がないことが信じられません:(

私の質問の背景:

手動で 800 枚の SD カードをコピーする必要があります。これは 1 回限りの作業です。カードを挿入するとすぐにコピー ジョブを開始する小さなアプリケーションを作成して、ボタンをクリックする必要がないようにしたいと考えています。

4

2 に答える 2

2

それはまさにあなたが探しているものではありませんが、おそらく別の解決策です:

codeproject にアプリを自動再生ハンドラーとして登録する方法のガイドがあります。次に、ウィンドウに常にこのアクションを使用するように指示するボックスをオンにすると、そこに行くことができます。

編集:

別のアプローチは、同じく codeproject で導入された DriveDetector クラスを使用することです。このクラスは、ドライブの到着または取り外しについて自動的に通知しますが、これがフラッシュ カードで機能するかどうかはわかりません。

于 2012-04-23T06:32:20.453 に答える
0

IIRC、Windows 7 では、CD/DVD/BD を除くすべてのドライブで自動再生が無効になっています。

私があなただったら、これが私がすることです:

  1. これを使用して、ターゲット ドライブ (常に同じドライブであると仮定します) からファイルのリストを取得します: http://www.dotnetperls.com/directory-getfiles
  2. リストの長さが 0 (つまり、ファイルがない) の場合は、何もマウントされていないと想定します。
  3. リストの長さが 0 でない場合は、ファイルをコピーします。
于 2012-04-23T06:45:05.727 に答える