![]() |
Re: Zugriff auf USB-Platten via Seriennummer?
Also wenn ich das recht verstehe gibt es keinen Weg über den Explorer, ausser den Laufwerksbuchstaben?
|
Re: Zugriff auf USB-Platten via Seriennummer?
Ja!
Aber Du kannst den Laufwerksbuchstaben für Deine USB-Sticks in der Datenträgerverwaltung an die Sticks binden und festlegen. Dann haben zwei Sticks immer zwei unterschiedliche Laufwerksbuchstaben, auch wenn der eine mal nicht eingesteckt ist. PS: Ansonsten haben himitsu und oki die Verfahrensweise für Anwendungen beschrieben. Interessant ist das für Sticks mit Rom-Anteilen, da man die dann als Dongle benutzen kann. Grüße // Martin |
Re: Zugriff auf USB-Platten via Seriennummer?
Hallo,
@oki Zitat:
Code:
an, damit kann man zumindest für Festplatten die entsprechenden Werte auslesen, eventuell geht's ja auch für USB-Sticks.
ROOT\CIMV2.Win32_Volume
DriveLetter DriveType Label Capacity FreeSpace SerialNumber FileSystem IndexingEnabled Automount BlockSize Compressed DirtyBitSet |
Re: Zugriff auf USB-Platten via Seriennummer?
Hallo nahpets,
ich hb grad das WMI-Demo von himitzu getestet. Da seh ich auch die Seriennummer des angeschlossenen Sticks (auf jeden Fall ein einer Stelle versteckt :lol: ). Leider schreiben einige Member, dass die Unit sehr buggy sein soll (Sorry himitzu, hab ich nicht selber nachgeprüft und will auch keine üble Nachrede betreiben :oops: ). Soweit ich das bis jetzt mitbekommen habe kann man die auch darüber einzeln ermitteln. Huch Zeit rennt. Muß grad los, schreib nachher weiter. Gruß oki |
Re: Zugriff auf USB-Platten via Seriennummer?
Hauptgrund ist wohl ein "winziges" Speicherleck :mrgreen:
aber da hab ich auch erwähnt, aus welchen Units das mal entstanden ist ... kanst ja auch die große Version nutzen :stupid: |
Re: Zugriff auf USB-Platten via Seriennummer?
Ok, bin wieder da.
@himitzu: Ist wirklich kein Vorwurf meinerseits. Hatte das nur erwähnt, dass das so sein soll. Die Autoren diese Beiträge sind imho auch welche die nach Kompetenz riechen. Ich hab in WMI noch gar nicht reingerochen, brauchte das bis jetzt einfach nicht. Im Grunde hatte ich gehofft, dass dazu jemand was sagt (hat ja auch geklappt :mrgreen: ). Da ich mich heute eigentlich schon entschieden hatte das auf dem WMI-Weg zu machen wurde ich halt etwas unsicher. So, nun noch mal zurück. @nahpets: Ja, SerialNumber ist mein Freund. Ich denke ich muss die Querry von ROOT\CIMV2.Win32_Volume auf ROOT\CIMV2.Win32_DiskDrive ändern. Der Knackpunkt ist aber, ob ich das selber direkt umsetzen kann oder Tonnen von fremden Units etc. einbinden muss. Selber neu schreiben scheint ja eher Schwachsinn zu sein. Ich brauch an dieser Stelle wirklich nur die Seriennummer. Das ganze andere Gedöns ist für mich uninteressant. Um eine Connection zu öffnen muss man ja eine Instanz von SWbemLocator erstellen und die Methode ConnectServer aufrufen. Dann dies tun, dann das tun und schwups, Seriennummer ist da :mrgreen: Hört sich gut an nicht!? Tja, aber irgentwo muss ja dann eine Klasse TSWbemLocator und das ganze Gedöns dafür deklariert sein. Ich denke da scheitert es mit Delphi-Boardmitteln. Und jetzt stellt sich mir die Frage, ob es Sinn macht schnell eine kleine eigene Unit aufzumachen und die paar Sachen für meine kleine Abfrage zu implementieren, oder Wird das ein Monster, das ich lieber extern hole. Mehr als 3-6 Stunden wollte ich dafür eigentlich nicht investieren. Joop, so siehts aus. Gruß oki |
Re: Zugriff auf USB-Platten via Seriennummer?
per API
Delphi-Quellcode:
per WMI
If GetVolumeInformation(PChar(LogicalDrives[Di].VolumeName + '\'),
PWideChar(S), 65, @W, W2, W3, PChar(S2), 65) Then Begin LogicalDrives[Di].SerialNumber := IntToHex(W shr 16, 4) + '-' + IntToHex(W and $FFFF, 4); WMI > ROOT\CIMV2.Win32_CDROMDrive > VolumeSerialNumber WMI > ROOT\CIMV2.Win32_LogicalDisk > VolumeSerialNumber es gehen aber nicht immer beide Versionen Quelle: ![]() in dem verlinkten Programm siehst du eventuell, daß nicht immer alle Seriennummern existieren (vorallem bei den Physical-Drives) |
Re: Zugriff auf USB-Platten via Seriennummer?
Liste der Anhänge anzeigen (Anzahl: 2)
Hi Himitzu,
dank für den Link. Hab das grad mal ausprobiert. Für meinen gesteckten USB-Stick zeigt dein Tool keine Seriennummer an. Der Stick hat aber definitiv eine. Ich hab sie auch im WMI-Demo entdeckt. Dass das die Seriennummer ist weis ich hundertpro. An anderer Stelle verwendet das WMI-Demo die Abfrage "SELECT Name, Description, DriveType, FileSystem, FreeSpace, Size, VolumeSerialNumber from Win32_LogicalDisk" Da wird eine VolumeSerialNumber ausgeworfen. Dies ist aber nicht die Seriennummer des Stick. Ich habe eher das Gefühl, das ist die Volume-ID, also die ID der Partition. Das erkenne ich auch schon daran, dass ich einen Stick mit zwei Partitionen verwende, bei denen jede einen eigenen Laufwerksbuchstaben belegt. Im Anhang für Win32DiskDrive habe ich die Seriennummer mal markiert. Gruß oki [edit] Ach, das wollte ich noch los werden. GetVolumeInformation liefert nicht die Hardware-Seriennummer sondern die ID der Partition. Diese ändert sich imho nach jeder Formatierung. [/edit] |
Re: Zugriff auf USB-Platten via Seriennummer?
jupp ... Win32_LogicalDisk, also die Partition
Die PNP-DeviceID könntest du dir auch direkt auch der Registry rausholen, nur wird es da etwas schwieriger die Devices mit den Laufwerken zu verknüpfen und Inaktive (von schonmal angesteckten, aber grad nicht dranhängenden Datenträgern) rauszufiltern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 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