function CheckUsbDisk(FLable:string):Boolean; //检验是否是USB优盘 var Drive: Integer; DriveLetter: Char; begin Result :=false; for Drive := 2 to 25 do begin DriveLetter := Chr(Drive + ord('A')); if GetDrivetype(PChar(DriveLetter+':\'))= DRIVE_REMOVABLE then begin if VolumeID(DriveLetter)=FLable then begin Result :=true; exit; end; end; end; end;
function VolumeLable(DriveChar: Char): string; //检验USB优盘的卷标 var OldErrorMode: Integer; NotUsed, VolFlags: DWORD; Buf: array [0..MAX_PATH] of Char; begin OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS); try Buf[0] := #$00; if GetVolumeInformation(PChar(DriveChar + ':\'), Buf, DWORD(sizeof(Buf)), nil, NotUsed, VolFlags, nil, 0) then SetString(Result, Buf, StrLen(Buf)) else Result := ''; if DriveChar < 'a' then Result := AnsiUpperCaseFileName(Result) else Result := AnsiLowerCaseFileName(Result); Result := Format('%s',[Result]); finally SetErrorMode(OldErrorMode); end; end;