AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Zugriff auf USB-Platten via Seriennummer?
Thema durchsuchen
Ansicht
Themen-Optionen

Zugriff auf USB-Platten via Seriennummer?

Ein Thema von Angel4585 · begonnen am 19. Jun 2009 · letzter Beitrag vom 19. Jun 2009
Antwort Antwort
Seite 2 von 2     12   
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 12:26
Also wenn ich das recht verstehe gibt es keinen Weg über den Explorer, ausser den Laufwerksbuchstaben?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#12

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 12:45
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
Martin Schaefer
Phaeno
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#13

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 13:13
Hallo,

@oki
Zitat von oki:
Joop, das ist die Volume-ID. Wird beim Erstellen einer Partition gesetzt und gilt für jede Partition auf dem Stick (können auch mehrere sein!).
Ich glaub, ich werd nicht zu sehr Off-Topic, aber trotzdem hier die Frage. Sieht jemand einen einfachen Weg mittels WMI nur die Seriennummer zu ermitteln, ohne gleich diverse externe Unit einbinden zu müssen (oder andere Wege; kompatibel ab W2000)?

Gruß oki
schau Dir bei WMI mal
Code:
ROOT\CIMV2.Win32_Volume
DriveLetter
DriveType
Label
Capacity
FreeSpace
SerialNumber
FileSystem
IndexingEnabled
Automount
BlockSize
Compressed
DirtyBitSet
an, damit kann man zumindest für Festplatten die entsprechenden Werte auslesen, eventuell geht's ja auch für USB-Sticks.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 13:42
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 ). 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 ).
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
42
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 13:50
Hauptgrund ist wohl ein "winziges" Speicherleck
aber da hab ich auch erwähnt, aus welchen Units das mal entstanden ist ... kanst ja auch die große Version nutzen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#16

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 15:04
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 ). 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
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
42
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 15:16
per API
Delphi-Quellcode:
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);
per WMI
WMI > ROOT\CIMV2.Win32_CDROMDrive > VolumeSerialNumber
WMI > ROOT\CIMV2.Win32_LogicalDisk > VolumeSerialNumber

es gehen aber nicht immer beide Versionen

Quelle:
http://www.delphipraxis.net/internal...ght=datarescue

in dem verlinkten Programm siehst du eventuell, daß nicht immer alle Seriennummern existieren
(vorallem bei den Physical-Drives)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#18

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 15:34
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]
Miniaturansicht angehängter Grafiken
win32diskdrive_163.jpg   volumeserialnumber_212.png  
42
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Zugriff auf USB-Platten via Seriennummer?

  Alt 19. Jun 2009, 15:50
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 00:18 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