Okay, SetupAPI lässt sich problemlos in die uses eintragen und dann stehen die von dir genannten Methoden auch zur Verfügung. Ich benötige hier aber mal ein wenig Hilfe. Aktuell sieht es so aus:
Delphi-Quellcode:
procedure TMainframe.Button1Click(Sender: TObject);
var
GUID: PGUID;
Info: HDEVINFO;
i: Integer;
DevInfoData: SP_DEVINFO_DATA;
begin
if not LoadSetupApi
then Exit;
GUID^ := StringToGUID('
{36fc9e60-c465-11cf-8056-444553540000}');
Info := SetupDiCreateDeviceInfoList(
GUID, 0);
try
if(NativeInt(Info) = INVALID_HANDLE_VALUE)
then
begin
ShowMessage('
Error: Invalid Handle');
Exit;
end;
i := 0;
while(SetupDiEnumDeviceInfo(Info, i, DevInfoData))
do // liefert immer false
begin
Inc(i);
// Hier muss dann irgendwie SetupDiGetDeviceRegistryProperty abgefragt werden
end;
finally
SetupDiDestroyDeviceInfoList(Info);
UnloadSetupApi;
end;
end;
Die while-Schleife läuft aber nie durch. Hier müsste mein erster Denkfehler liegen. Und danach müsste ich ich
SetupDiGetDeviceRegistryProperty aufrufen, aber insbesondere der PByte-Parameter macht Ärger. Wie kriege ich denn da einen brauchbaren String raus?