掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
USBメモリの取り外しについて (ID:42260)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
>ただ、XPでは動作したのですが、Win7では一覧にUSBのドライブが表示されず USBメモリの判定処理を工夫すればある程度対応出来ますよ。 下記コードでWindows7の環境でも動作してます。 ただしカードリーダーをUSBメモリと誤認識してしまい。 さらにそれを取り外そうとすると無限ループしました。 function TUSBEject.EjectUSB: Boolean; var d : TDeviceNode; snn : string; i,j : Integer; begin result := False; FUsbDevices.GetDeviceInfo(nil); // リムーバブルかつUSBの名称を含む機器情報を取得 for j := 0 to FUsbDevices.Count-1 do begin // USBデバイスの数だけループ d := FUsbDevices.Items[j]; // j番目のUSBデバイスクラス参照 for i := 0 to d.DeviceNodeCount-1 do begin // USBデバイスに関連するノード分ループ snn := d.DeviceNodeName[i]; // USBのデバイス名称を取得 if not d.Removable then continue; // 取り外せないデバイスは無視 if not d.DisableEnable then continue; // 無効に出来ないデバイスは無視 if not CheckUsbMemory(snn) then continue; // USBメモリではない場合無視 result := d.EjectDevice(); // USBデバイスを取り外す exit; end; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.