USB-Stick am USP-Port?



  • Hi zusammen,

    gibt es eine Möglichkeit zu erkennen, ob an einem USB-Port ein USB-Stick hängt? Also ein genaues Bestimmen des angeschlossenen Gerätes?
    Unterscheidung nur zwischem USB-Stick und USB-alles_andere?

    grüssle 🙂



  • Dieser Thread wurde von Moderator/in akari aus dem Forum VCL (C++ Builder) in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hallo Smitty,
    jedes USB-Gerät (Maus, Tastatur, Stick...) hat einen sog. Device-Deskriptor. Dieser zeigt an, um welches Gerät es sich da an dem Port handelt. Diesen Deskriptor kann man bei einem Verbindungsaufbau auslesen und auswerten. Man findet hier (http://de.wikipedia.org/wiki/Universal_Serial_Bus) eine Liste der jeweiligen USB-Geräte und deren Geräteklassen.

    Ich hoffe das hift dir weiter...

    Schönen Gruß
    Torsten



  • 👍 thorsten_156

    hilfts mir weiter? Ja, Nein, Jain 😮

    08h - Interface - Massenspeicher - USB-Stick, Memory-Card-Lesegerät, MP3-Player

    somit ist eine genaue Unterscheidung - für meine Anforderungen - nicht möglich.

    Allerdings geht es wohl nicht so, wie ich es bräuchte, von daher hat mir dein Beitrag geholfen.

    Thx nochmal, mal schauen was ich draus mache 🕶

    grüssle 🙂



  • Heyho, es ist möglich, zu erkennen, was für ein Massenspeicher angeschlossen ist.
    Bin im Moment noch in der Schule, aber ich kann nachher mal den Sourcecode uppen, wenn du magst 😉

    MFG DerCoder



  • Also hier der versprochene Code:

    void GetDrives()
    {
      DWORD dwDrives = GetLogicalDrives();
      char  szDriveLetter[_MAX_DRIVE] = {"A:"};
      uint  uintDriveType;
    
      for (DWORD a = 1; a < dwDrives + 1; a = a * 2)
      {
        uintDriveType = GetDriveType(szDriveLetter);
        if (dwDrives & a)
        {
          // http://msdn.microsoft.com/en-us/library/aa364993(v=vs.85).aspx GetVolumeInformation für Bezeichner, Buchstaben, Serialnumber auslesen
          // http://msdn.microsoft.com/en-us/library/aa364939(v=vs.85).aspx GetDriveType für Laufwerktyp: HDD, Removeable (USB-Stick/Externte Festplatte) oder CD
        }
        szDriveLetter[0]++;
      }
    }
    


  • DerCoder schrieb:

    Heyho, es ist möglich, zu erkennen, was für ein Massenspeicher angeschlossen ist.

    Ein MP3-Player kann sich durchaus als USB-Stick ausgeben (Ist gar nicht so selten).



  • DerCoder schrieb:

    Also hier der versprochene Code:

    void GetDrives()
    {
      DWORD dwDrives = GetLogicalDrives();
      char  szDriveLetter[_MAX_DRIVE] = {"A:"};
      uint  uintDriveType;
    
      for (DWORD a = 1; a < dwDrives + 1; a = a * 2)
      {
        uintDriveType = GetDriveType(szDriveLetter);
        if (dwDrives & a)
        {
          // http://msdn.microsoft.com/en-us/library/aa364993(v=vs.85).aspx GetVolumeInformation für Bezeichner, Buchstaben, Serialnumber auslesen
          // http://msdn.microsoft.com/en-us/library/aa364939(v=vs.85).aspx GetDriveType für Laufwerktyp: HDD, Removeable (USB-Stick/Externte Festplatte) oder CD
        }
        szDriveLetter[0]++;
      }
    }
    

    THX DerCoder, aber:

    asc schrieb:

    DerCoder schrieb:

    Heyho, es ist möglich, zu erkennen, was für ein Massenspeicher angeschlossen ist.

    Ein MP3-Player kann sich durchaus als USB-Stick ausgeben (Ist gar nicht so selten).

    habe ich mittlerweile von vielen Seiten gehört. 😞

    Geht wohl wirklich nicht.

    trotzdem noch mal Thx an alle! 👍

    grüssle 🙂


Anmelden zum Antworten