![]() |
Wechseldatenträger auswerfen
Hallo,
stehe vor einem kleinen Problem und hoffe, dass ihr mir helfen könnt. Und zwar geht es darum, einen Wechseldatenträger (hauptsächlich USB-Sticks) aus meinem eigenen Programm heraus sicher zu entfernen (also zunächst abzumelden, wie über das Tray-Icon "Hardware sicher entfernen"). Hab natürlich schon gesucht (in der DP und über Google) und mir auch schon was zusammengebastelt, was ansatzweise schon ganz gut funktioniert. Ich arbeite hierbei mit der Methode DeviceIoControl. Meine Vorgenhensweise ist dabei folgendermaßen:
Teste ich meinen Quellcode mit einem USB-Stick, so scheint das ganze schon zu funktionieren. Die LED blinkt zunächst und geht dann irgendwann aus, wie es auch beim Standard-Abmelden mit dem Tray-Icon der Fall ist. Allerdings wird das Gerät anscheinend nicht vollständig abgemeldet. Das Laufwerk-Icon bleibt im Explorer erhalten und auch das Tray-Icon zum Abmelden verschwindet nicht. Ein Zugriff auf den Datenträger ist allerdings nicht mehr möglich (Nachricht "Bitte Datenträger in Laufwerk einlegen" oder ähnlich). Wenn ich über den Geräte-Manager von Windows nach geänderter Hardware suchen lassen, bleibt das Problem weiterhin bestehen. Muss ich Windows noch irgendetwas mitteilen oder habe ich in meinem Code einfach nur etwas vergessen? Hoffe, ich hab mich verständlich ausgedrückt und mein Problem ist lösbar ;-) Danke schonmal ;-) Patti |
Re: Wechseldatenträger auswerfen
Ist zwar noch nicht ganz 24 Stunden seit meinem ersten Post her, aber ich hoffe, das wird mir verziehen ;-)
Noch eine Anmerkung: wenn ich DeviceIoControl mit dem Parameter IOCTL_STORAGE_EJECT_MEDIA aufrufe, um das Medium auszuwerfen, liefert mir die Funktion als result "true", scheint also tatsächlich erfolgreich zu sein. Es geht nur darum, Windows noch mitzuteilen, dass das Gerät vollkommen abgemeldet wurde und nicht mehr als angestecktes Gerät erkannt werden soll. Muss ich mit Datenverlust auf meinem Stick rechnen, wenn ich ihn nach der (erfolgreichen) Ausführung meines Quelltextes einfach abziehe? (Denke eigentlich nicht, weil das Gerät ja "geunmountet" wurde und auch ausgeworfen ["eject"] wurde). Kennt vielleicht noch jemand eine andere Möglichkeit (allerdings ohne Fremdkomponenten, ...), einen USB-Stick aus meinem Delphi-Programm heraus sicher zu entfernen? Patti |
AW: Wechseldatenträger auswerfen
Hi,
hast Du hierfür inzwischen eine Lösung gefunden? Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 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