![]() |
USB Device ID auslesen
Ich suche eine sichere Methode die Device ID (nicht Windows ID) eines USB-Sticks auszulesen. Was mir dabei ins Auge gefallen ist
![]() ![]() und als alternative ![]() Kann mir jemand sagen welche Lib ich verwenden muss, um die beiden APIs verwenden zu können? |
Re: USB Device ID auslesen
Update:
Ich habe jetzt mal bissl rumprobiert und komme mal wieder nicht weiter. Die Lib habe ich aus Luckie's SysInfo. Mein Problem ist das die if Abfrage immer false liefert. Irgendwas ist falsch ich weiß nur nicht was.
Delphi-Quellcode:
uses JwaWinIoctl;
procedure GetSerial:String; var Dummy :DWord; FHandle :Cardinal; RealPath :String; dg :CHANGER_PRODUCT_DATA; //falscher Datentyp? Laut SDK müsste es eigentlich // MEDIA_SERIAL_NUMBER_DATA sein aber den gibs nicht Serial :String; i :byte; begin RealPath:='\\.\F:'; FHandle:=CreateFile(PChar(RealPath),GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if DeviceIOControl(FHandle,IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER, nil, 0, @dg, sizeof(dg), dummy, nil) then begin Serial:=''; for i:=0 to 31 do Serial:=Serial+IntToStr(dg.SerialNumber[i]); Result:=Serial; end; end; end; Inc(pDrive, 4); end; end; |
Re: USB Device ID auslesen
Das ist eine ziemlich verwinkelte Gegend des APIs.
MEDIA_CHANGER ist ein CD-Wechsler, also unbrauchbar hier. Das '\\.\F:' sich nicht oeffnen laesst liegt wahrscheinlich daran das du keine Admin-Privilegien hast. Fuer IOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER muss man mit der richtigen GUID die Geraete (Volumes) mit den SetupDi-Funktionen aufzaehlen. Ich schau mal nach ob das mit meinem Win 2000 geht. Ich bin so ziemlich der Einzige der sich damit auskennt. Ich habe ein bischen rumprobiert, aber unter Win 2000 scheint es nicht zu funktionieren. |
Re: USB Device ID auslesen
Kennst du evtl. eine andere Methode DeviceID und DeviceName auszulesen? Ich verzweifle hier langsam :(
|
Re: USB Device ID auslesen
Was willst du genau erreichen?
Schreib mich mal direkt an. Ich habe Setup API und Config Manager API fuer Delphi fast fertig. Ich muss nur noch die Beispiele aufarbeiten und dann ist es zur Verbreitung fertig. Viele der DeviceIoControl Konstanten sind aber nur im DDK aufgefuehrt. robert_marquardt att gmx dott de |
Re: USB Device ID auslesen
Habe dir geschrieben ! Danke
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz