名前 題名 ▼ andyさん > 以下のコードでUSBのドライブを取得していますが > function FillFlashDriveList:string; //USBのドライブリスト > const > NameSize = 4; > VolumeCount = 26; > TotalSize = NameSize * VolumeCount; > var > Buff, Volume, DosDevice: String; > lpQuery: array [0..MAXCHAR - 1] of Char; > I, Count: Integer; > aa:string; > begin > SetLength(Buff, TotalSize); > Count := GetLogicalDriveStrings(TotalSize, @Buff[1]) div NameSize; > if Count = 0 then > RaiseLastOSError > else > for I := 0 to Count - 1 do > begin > Volume := PChar(@Buff[(I * NameSize) + 1]); > case GetDriveType(PChar(Volume)) of > DRIVE_REMOVABLE: > begin > Volume[3] := #0; > QueryDosDevice(PChar(Volume), @lpQuery[0], MAXCHAR); > Volume[3] := '\'; > DosDevice := String(lpQuery); > if (DosDevice <> '\Device\Floppy0') and (DosDevice <> '\Device\Floppy1') then > if aa='' then aa:=Volume[1] else aa:=aa+','+Volume[1]; > end; > end; > end; > Result:=aa; > end; > > メモリーカードスロットのさしていないドライブを拾ってしまいます。 > 刺さっていないドライブは無視するようにしたいのですが > なにかいい方法はないでしょうか。 > スロットのないパソコンは問題ありません。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link