AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Laufwerkpfad erkennen, welcher ein USB-Stick ist!
Thema durchsuchen
Ansicht
Themen-Optionen

Laufwerkpfad erkennen, welcher ein USB-Stick ist!

Ein Thema von Plague · begonnen am 28. Jan 2005 · letzter Beitrag vom 30. Jan 2005
Antwort Antwort
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#1

Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 28. Jan 2005, 16:11
Hallo,

mein Titel ist vielleicht etwas unglücklich ausgedrückt.
Ich möchte mit Delphi erkennen welches Laufwerk es ist, das als Wechsellaufwerk durch mein USB-Stick erzeugt wurde.
Zweck soll es sein, eine codierte Datei auf diesem Stick zu speichern, die dann ausgelesen wir
--> F:/Datei.dat

Weiß jemand wie das geht?
Gruß
Thomas
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 28. Jan 2005, 16:53
Delphi-Quellcode:
var
   drive : char;
for drive := 'Dto 'Zdo
begin
   case GetDriveType(PChar(drive+':\')) of
      DRIVE_REMOVABLE:
         ShowMessage('hier isses ! '+drive);

   end;
end;
Mit GetvolumeInformation kannst du noch mehr Infos auslesen.
Andreas
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#3

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 28. Jan 2005, 17:27
Danke ich werde es ausprobieren...

Welche weiteren Informationen könnte man denn mit dieser Funktion auslesen?

Gruß
Thomas
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 28. Jan 2005, 18:20
Hallo Plague,

ganz so einfach, wie shmia es schreibt ist es nun doch nicht. Es sei Du willst nur ein Stick anschließen, bei
mehreren Klappt es nicht.
  Mit Zitat antworten Zitat
Plague

Registriert seit: 6. Okt 2003
591 Beiträge
 
#5

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 28. Jan 2005, 23:41
Im Prinzip möchte ich nur einen Stick anschließen. Interessant wäre es aber auch wenn man zusätzlich auch eine Digitalkamera anschließt. Die werden ja auch oft als Wechseldatenspeicher angezeigt. Welcher Fehler wird hier auftreten?

Gruß
Thomas
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#6

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 29. Jan 2005, 06:31
Ich beschaeftige mich gerade genau mit diesem Problem.
Dazu muss man das Setup API und das Config Manager API bemuehen.
Beide Konversionen erscheinen bald (naechste Woche) auf http://www.sf.net/projects/jedi-apilib
Ich werde dann ein Demoprogramm zu diesem Thema beifuegen.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 29. Jan 2005, 12:09
Welcher Wohl?
Die Routine von shmia gibt Dir die Laufwerksbuchstaben aus, also "F:\, H:\" usw.
Du weisst aber nicht, ob F:\ jetzt der Stick ist, oder der Speicherchip der Digitalkamera.

Am bessten wäre es, wenn Du Dich zur Einführung in die Thematik das hier durchliest:USB Device Lister
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#8

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 29. Jan 2005, 15:21
Ich habe mich inzwischen auch mit der von "USB Device Lister" benutzten Methode auseinandergesetzt.
Da kann der Rechner Schluckauf bekommen, wenn man das direkt nach einer WM_DEVICECHANGE macht.

Meine aktuelle Methode ist die Volumes mit Setup API aufzaehlen und dann mit dem Config Manager API
im Baum der Geraete nach oben zu klettern bis man beim Bus-Device ist. Dort kann man dann leicht
den Namen des Busses herausbekommen.
Die Laufwerksbuchstaben matcht man ueber die Mount Points.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
946 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 29. Jan 2005, 20:11
Hallo Robert,

wie geht's, ein besseres Neues Jahr wünsche ich Dir noch!

Das mit dem WM_DEVICECHANGE hatte ich auch, habe es Versucht damit zu lösen, dass ein Timer 2-Sek. wartet und dann agiert.
Brachte es aber nicht Letzt endlich bin ich doch bei der dirkten Action geblieben. Hängt warscheinlich von der
Prozessorauslastung ab. Je nachdem was Los ist, dauert es bis man auf WM_CHANGEDEVICE reagieren kann.

PS: Ruf mal an.
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#10

Re: Laufwerkpfad erkennen, welcher ein USB-Stick ist!

  Alt 30. Jan 2005, 06:00
Ja, das Traversieren ueber die USB Treiber ist problematisch.
Was passieren kann ist das das "surprise removal" fehlerhaft erscheint.
Offensichtlich ist ein Geraeteknoten deaktiviert und beim Traversieren wird er faelschlich aktiviert.
Das kann einem richtig auf den Sack gehen, da es die einzige Methode ist direkt an den
Seriennummernstring eines Geraetes zu kommen. Jetzt loese ich das indem ich einen Registry-Eintrag auswerte.

Ruf du mich doch an. Ich stehe im Telefonbuch.
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:53 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