AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

USB Device ID auslesen

Ein Thema von CReber · begonnen am 6. Nov 2004 · letzter Beitrag vom 7. Nov 2004
Antwort Antwort
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#1

USB Device ID auslesen

  Alt 6. Nov 2004, 17:08
Ich suche eine sichere Methode die Device ID (nicht Windows ID) eines USB-Sticks auszulesen. Was mir dabei ins Auge gefallen ist

MSDN-Library durchsuchenMEDIA_SERIAL_NUMBER_DATA
MSDN-Library durchsuchenIOCTL_STORAGE_GET_MEDIA_SERIAL_NUMBER

und als alternative

http://www.entwickler-forum.de/webx?...eCn.0@.ee8d6c4


Kann mir jemand sagen welche Lib ich verwenden muss, um die beiden APIs verwenden zu können?
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#2

Re: USB Device ID auslesen

  Alt 6. Nov 2004, 18:42
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;
Christian Reber
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: USB Device ID auslesen

  Alt 7. Nov 2004, 06:32
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.
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#4

Re: USB Device ID auslesen

  Alt 7. Nov 2004, 09:57
Kennst du evtl. eine andere Methode DeviceID und DeviceName auszulesen? Ich verzweifle hier langsam
Christian Reber
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#5

Re: USB Device ID auslesen

  Alt 7. Nov 2004, 12:37
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
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#6

Re: USB Device ID auslesen

  Alt 7. Nov 2004, 13:16
Habe dir geschrieben ! Danke
Christian Reber
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz