Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi USB Festplatte Erkennung (https://www.delphipraxis.net/113423-usb-festplatte-erkennung.html)

wuschel 7. Mai 2008 17:14


USB Festplatte Erkennung
 
Sehr geehrtes Forum,

ich habe folgendes Problem und hoffe hier auf Antwort.

Mein Programm ermittelt über
Delphi-Quellcode:
GetDriveType
alle vorhandenen, fixe Datenträger (Festplatten) über
Delphi-Quellcode:
DRIVE_FIXED
. Nicht gewollt ist hierbei allerdings, dass beim Aufruf dieser Funktion auch Festplatten die per USB angeschlossen sind mit ausgegeben werden (USB-Sticks werden beispielsweise nicht zurückgeliefert).

Besteht die Möglichkeit herauszufinden ob eine Platte eine USB - Platte ist oder nicht? Vielleicht gibt es ja irgendeine API Funktion welche mir die "Art des Anschlusses oder ähnliches" zurück liefert.


Herzlichsten Dank im Voraus

himitsu 7. Mai 2008 18:02

Re: USB Festplatte Erkennung
 
Hier im Forum suchenUSB Festplatte

z.B. http://www.delphipraxis.net/internal...t.php?t=126944


wenn du dich hier etwas nach USB umschaust, dann wirst du bestimmt auch irgendwo Post zu APIs finden, womit man sich z.B. USB-Geräte auflisten kann.

Im Gunde mußt du dann einfach alle Laufwerke suchen und schauen an welchen Ports/Anschlüssen/Treibern sie hängen,
bzw. Datenräger suchen, USB-Geräte suchen und alles was in beiden Listen auftaucht ist ein USB-Stick/USB-Festplatte.


PS: es ist nicht alles so, wie es aussieht ... meine interne S-ATA-Patte wird als Wechsellaufwerk angezeigt :wall:

Muetze1 8. Mai 2008 10:03

Re: USB Festplatte Erkennung
 
Zitat:

Zitat von himitsu
PS: es ist nicht alles so, wie es aussieht ... meine interne S-ATA-Patte wird als Wechsellaufwerk angezeigt :wall:

Weil SATA und dein Controller HotPlug fähig ist und somit ausgeworfen werden kann zum Austausch...

himitsu 8. Mai 2008 12:51

Re: USB Festplatte Erkennung
 
[etwas ot]
ist aber unpraktisch, ok, ein S-ATA-Anschluß liegt extern, aber bei der internen SATA-Platte isses unschön, wenn sie sogar in "Hardware sicher entfernen" aufgelistet wird.

und mein IDE ist auch faast HotPlug-fähig ... jedenfalls kann ich locker im laufendn betrieb eine IDE-Platte ein-/ausstecken ... war schon praktisch, aber man mußte halt etwas mehr aufpassen und den Treiber passend (de)aktivieren.
SATA hab'sch ja erst seit "kurzem" und IDE war einfach schneller als USB.


nja, der Witz dabei ist nun, daß meine interne S-ATA-Platte als Wechsellaufwerk gewertet wird, aber die IDE im Wechselrahmen nicht.

Muetze1 8. Mai 2008 13:42

Re: USB Festplatte Erkennung
 
Zitat:

Zitat von himitsu
und mein IDE ist auch faast HotPlug-fähig ... jedenfalls kann ich locker im laufendn betrieb eine IDE-Platte ein-/ausstecken ...

Das ist mehr als gefährlich, da P-ATA definitiv nicht elektrisch und auch nicht protokolltechnisch HotPlug fähig. Beim S-ATA Stecker sind explizit die Stromversorgungspins länger ausgeführt (und Masse noch ein Stückchen länger) um das ganze elektrisch HotPlug-fähig zu machen.

Ich kann dir nur davon abraten bei P-ATA. Ich kenne mindestens 6 Fälle wo Leute damit die Festplatten (und immer auch die kompletten Daten) verloren hatten.

himitsu 8. Mai 2008 14:02

Re: USB Festplatte Erkennung
 
keine Sorge, hab in ~10 Jahren noch keine Probleme gehabt.

- die Sache mit den Pins (Anschlüssen) wird über den Wechselrahmen gelöst

- und ich stelle Stück für Stück auf extene S-ATA-Platten um
(Anschlüsse und Leitungslängen sind da eh optimaler)

wuschel 8. Mai 2008 14:52

Re: USB Festplatte Erkennung
 
Danke für die Antworten,



Zitat:

Zitat von himitsu
Hier im Forum suchenUSB Festplatte


z.B. http://www.delphipraxis.net/internal...t.php?t=126944


wenn du dich hier etwas nach USB umschaust, dann wirst du bestimmt auch irgendwo Post zu APIs finden, womit man sich z.B. USB-Geräte auflisten kann.

Im Gunde mußt du dann einfach alle Laufwerke suchen und schauen an welchen Ports/Anschlüssen/Treibern sie hängen,
bzw. Datenräger suchen, USB-Geräte suchen und alles was in beiden Listen auftaucht ist ein USB-Stick/USB-Festplatte.


In der Tat bin ich ebenfalls auf den selben "Trichter gestoßen" stellt sich mir derzeit nur noch die Frage wie ich diese Information tatsächlich bekomme. Habe verschiedene Suchmaschinen befragt ohne für mich ein befriedigentes Ergebnis zu finden.
Gibt es keine API Funktion so nach dem Motto

Delphi-Quellcode:
getAllUSBDevices
Dann bräuchte ich "nur" noch den tatsächlichen Namen z.B. e oder f oder ähnliches herausfinden.

Danke.

himitsu 8. Mai 2008 14:59

Re: USB Festplatte Erkennung
 
ich weiß leider auch nicht mehr wie das alles hieß, aber was ich weiß, daß es hier im Frum schon einige Beiträge dazu gibt.

vermutlich lassen sich Einige ganz einfach über Hier im Forum suchenUSB finden :nerd:


[add]
Hier im Forum suchenTUSBDeviceTree

Muetze1 8. Mai 2008 15:12

Re: USB Festplatte Erkennung
 
Zitat:

Zitat von himitsu
- die Sache mit den Pins (Anschlüssen) wird über den Wechselrahmen gelöst

Der bringt genau diese elektrischen Fähigkeiten mit. Dort ist dies genau wie oben beschrieben gelöst worden. Ich ging vom internen 40 poligen Anschluß aus.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:40 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