AGB  ·  Datenschutz  ·  Impressum  







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

USB-Stick und das Laufwerk

Ein Thema von Mattze · begonnen am 25. Feb 2014 · letzter Beitrag vom 25. Feb 2014
Antwort Antwort
Seite 1 von 2  1 2      
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#1

USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 06:13
Hallo,

ich finde es einfach mal wieder nicht...

Wenn ein USB-Stick neu angesteckt wird, kriegt er von Windows einen Laufwerksbuchstaben verpasst, unter dem es nun auch später wieder bei Anstecken angesprochen wird.

Wie bekommt man diese Zuordnung eines Laufwerksbuchstaben zu einem gegebenen USB-Stick raus?
Das muss doch irgendwo in der Registry stehen, aber ich finde es eben nicht.

Weiß jemand etwas genaueres?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 06:21
Das sollte hier stehen
Code:
HKLM/System/MountedDevices
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#3

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 07:31
Hallo Sir Rufo,

danke, aber...
Da habe ich (natürlich) als erstes gesucht.
Leider steht da als Datum ein Reg_Binary, aus dem nicht erkennbar ist, welches Laufwerk dem Wert zugeordnet ist bzw. umgekehrt. (Falls man aus der GUID im Wert den Sticknamen kriegt, findet man doch keine Laufwerkszuweisung unter diesem Wert.)
Probiert unter Win7 pro.

Das scheint es also nicht zu sein - muss man wahrscheinlich wieder über mindestens drei Ecken gehen.


Noch andere Vorschläge?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 07:56
Welchen Sticknamen soll sich das System denn speichern/merken und wozu?

Wenn du dem Stick an einem anderen System umbenennst, dann ist der gespeicherte Name obsolet.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 09:07
Mein Halbwissen:
Ich kann einem USB Stick unter Windows
- einen Laufwerksbuchstaben zuordnen
- ein Partitionsnamen(?) vergeben (oder ist es ein Stichname?)

Der Name wird offenbar auf dem Stick abgelegt.
Die Laufwerkszuordnung muss aber wohl in der Registry definiert sein.
Das sollte man dann ja wohl auch finden können.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#6

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 09:11
Ich würde hier über WMI gehen. Das wäre eine andere Alternative.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#7

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 09:22
Hallo,

FALSCH! Es ist NICHT der Name, den man normalerweise selbst vergibt, sondern der Name, der vom Hersteller fest vorgegeben wird.
Schau mal unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\U SBSTOR.
Da wird ein Schlüssel aus diesem Namen zusammengebastelt.
Und dieser Name steht auch als Datum irgendwo (mehrmals) in der Registry. Auch bei nicht angestecktem Stick!
(Wie die das unterscheiden, wenn ein namensgleicher Stick dabei ist, weiß ich (noch) nicht.)

Und um die Zuordnung des Laufwerksbuchstabens zu diesem Namen geht es.
Bsp:
Ich habe einen USB3-Stick "Transcend 16GB", was auch in der Registry steht. Den habe ich aber "Win7PE" genannt, was natürlich nicht in die Registry gehört und von "Transcend 16GB" völlig unabhängig ist. Das gibt es trotzdem, auch noch. An diesen Namen kommt man nicht so ohne weiteres ran!
Und um die Zuordnung "Transcend 16GB" und Laufwerksbuchstaben geht es.
Und, wie gesagt, das finde ich in der Registry nicht. Dass es dort irgendwie stehen müsste, erwarte ich auch!

WMI dachte ich mir auch, aber, wenn der Stick nicht angesteckt ist, also hardwaremäßig für den PC gar nicht da ist? Wie soll das gehen? Welche WMI-Klasse soll denn das machen?

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.121 Beiträge
 
Delphi 12 Athens
 
#8

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 09:31
In der Registry sollte der Gerätename stehen, also der vom USB-Device.
Und mit den Gerätedaten (Name, aber vermutlich/bestimmt eher mit der Serial/GeräteID) und manchmal auch mit dem Anschlußpunkt (USB-Port) wird verknüpft wie und wo, oder ob überhaupt, die darauf befindlichen Partitionen (es muß nicht nur Eine sein) gemounted werden. Das kann ein Laufwerksbuchstabe sein oder z.B. auch ein NTFS-Verzeichnis.

Was man im Explorer sieht, ist der Name/Bezeichner im Dateisystem, also quasi von der formatierten Partition. Und falls da kein Bezeichner angeben ist, dann wird ein Gerätebezeichner vom System angezeigt, welches entweder der Gerätename ist oder ein Bezeichner für den Gerätetyp (je nach dem, wie Windows garde Lust drauf hat ... wer kennt denn nicht den "Lokaler Datenträger").
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (25. Feb 2014 um 09:35 Uhr)
  Mit Zitat antworten Zitat
Mattze

Registriert seit: 6. Jan 2005
664 Beiträge
 
#9
  Alt 25. Feb 2014, 10:44
Hallo himitsu,

danke!
2. Teil: Sage ich doch! Das ist aber besser beschrieben.

1.Teil: Ja, und genau diese Verknüpfung kriege ich nicht raus.
Bei angestecktem Stick ist das sicher kein Problem (über IOControl z. Bsp.),
aber das muss auch irgendwie ohne angesteckten Stick rauszukriegen sein.
(Es gibt Software, die damit etwas macht. Also muss es gehen!)

Gruß
Mattze
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: USB-Stick und das Laufwerk

  Alt 25. Feb 2014, 11:20
Du musst dir die DiskId holen
Code:
HKEY_LOCAL_MACHINE\
  SYSTEM\
    CurrentControlSet\
      Enum\
        USBSTOR\
          <Name>\
            <ID>\
              Device Parameters\
                Partmgr
Ich habe hier aktuell gerade
Code:
HKEY_LOCAL_MACHINE\
  SYSTEM\
    CurrentControlSet\
      Enum\
        USBSTOR\
          Disk&Ven_TwinMOS&Prod_MOBILE_DISK&Rev_1.11\
            2B4015EF3D98EAB9&0\
              Device Parameters\
                Partmgr
                  DiskId={6af28d05-6431-11e1-99eb-080027b4f06d}
Diese DiskId findest du dann wieder unter
Code:
HKEY_LOCAL_MACHINE\
  SYSTEM\
    MountedDevices
      \??\Volume{6af28d07-6431-11e1-99eb-080027b4f06d}=<REG_BINARY-Wert>
Wenn du jetzt alle Einträge \DosDevice\ auflistetet, die diesen REG_BINARY-Wert haben, dann hast du auch die verknüpften Laufwerksbuchstaben
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (25. Feb 2014 um 12:34 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:17 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