Es ist auf jeden Fall - schon wegen der Wiederverwendbarkeit - sinnvoller die einzelnen Funktionsteile auseinander zu ziehen.
Möglich wäre folgende Implementierung:
Delphi-Quellcode:
unit USBSerialNumber;
interface
uses
Classes;
function GetUSBSerialNumbers( AList : TStrings ) : Boolean;
function CheckUSBSerialNumbers( ASerialList : TStrings ) : Boolean;
overload;
function CheckUSBSerialNumbers( ASerial :
string ) : Boolean;
overload;
implementation
uses
SetupAPI;
function GetUSBSerialNumbers( AList : TStrings ) : Boolean;
// Hier die Original-Routine, die aber nur die Liste mit den ausgelesenen Seriennummern liefert
function CheckUSBSerialNumbers( ASerialList : TStrings ) : Boolean;
overload;
var
AList : TStrings;
begin
Result := False;
AList := TStringList.Create;
try
if GetUSBSerialNumbers( AList )
then
// hier jetzt die Seriennummern vergleichen
finally
AList.Free;
end;
end;
function CheckUSBSerialNumbers( ASerial :
string ) : Boolean;
overload;
var
AList : TStrings;
begin
AList := TStringList.Create;
try
AList.Add( ASerial );
Result := CheckUSBSerialNumbers( AList );
finally
AList.Free;
end;
end;
end.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)