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_156hilfts 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
