![]() |
Arbeitsplatz Laufwerksbuchstaben auslesen
Hallo,
ich habe folgendes Problem: Ich möchte alle besetzten Laufwerksbuchstaben ermitteln. Leider ist GetLocalDrives nicht in der Lage einen für ein Netzlaufwerk vergebenen Laufwerksbuchstaben zu ermitteln, wenn die Verbindung nicht aktiv ist. Das Problem schein bekannt und sorg ja bei vielen Rechnern auch für Probleme beim Anschluss von anderen Removables. Allerdings kann doch so eine Uraltkomponente wie OpenDialog alle Laufwerksbuchstaben des Arbeitsplatzes anzeigen (auch die nicht aktiven Laufwerke). Also muss doch irgendwie die möglichkeit bestehen, das ganze auf anderen Wege auszulesen. Hat jemand eine Idee, wie ich, ohne visuelle Komponenten zu benutzen, einfach alle Laufwerke des Arbeitsplatzes in eine StringListe einlese? Gruß Hendrik |
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Der von Dir angesprochene Dialog ist eigentlich 'nur' ein Aufruf einer Windows-API-Funktion. Der Dialog selber ist der vom Betriebssystem.
|
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Ich kann es gerade nicht ausprobieren, aber evtl. hilft Dir
![]() |
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Hallo,
@DeddyH Hilft leider nicht! Wenn ein Laufwerk innerhalb der Windows-Session einmal aktiv war, dann geht das zwar, aber nicht wenn innerhalb der Session nicht verbunden wurde. Dennoch ist dann der Buchstabe belegt. @Phoenix Aber welche API Funktion? Und wie kann man das tatsächlich (Code) umsetzen? Gruß Hendrik |
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Hallo Hendrik,
Du könntest das ganze auch über ![]()
SQL-Code:
SELECT Name, Description, DriveType, FileSystem, FreeSpace, Size, VolumeSerialNumber from Win32_LogicalDisk
|
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Gib GetDriveType (durchlaufen mit allen Laufwerksbuchstaben) auch nicht den korrekten Typ (RemoteDrive)?
|
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Ja, über den Weg kann man es auch machen, so dass man mit
![]() |
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Leider nein. Ich hatte das direkt mit meinem Laufwerk z:\ getestet.
Mit meinem aktiven Laufwerk T:\ funktioniert das wunderbar. |
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Zitat:
|
Re: Arbeitsplatz Laufwerksbuchstaben auslesen
Denke ist wohl das leidige Problem, wenn eine Remote-Laufwerk "mit Netzlaufwerk verbinden" an einen lokalen Laufwerksbuchstaben gekoppelt wird. Da wir die Verbindung (trotz Häkchen, bei Start neu verbinden) immer erst verbunden, wenn ein Programm versucht darauf zuzugreifen, was demnach beim ersten Versuch zu einem Fehler führen kann.
Nur NET USE als Autostart-Script funktioniert da, aber auch nur wenn zuvor die Verbindung mit /Delete zurückgesetzt wurde zu 100% (PS: Übrigens ähnlich, wenn mal LTP1 an eine Netzwerkdrucker bindet...) Ein Versuch ist es Wert, zumindest sollte ein Zugriff vermutet werden und Laufwerk verbinden...
Delphi-Quellcode:
Nicht installierte Diskettenlaufwerke (also A/B) bringen die alte Meldung Retry/Ignore/Cancel in nie dagewesener Verwirrtheit.
function GetDriveLetters: String;
var i : Integer; begin Result := 'CDEFGHIJKLMNOPQRSTUVWXYZ'; i := Length(Result); while i > 0 do begin if not DirectoryExists(Result[i]+':\') then Delete(Result,i,1); dec(i); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 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