Vielen herzlichen Dank für deine Analyse, HolgerX!
Feature oder Bug:
Wenn man ein Netzlaufwerk dieser Konstellation trennt (mit dem Wizzard von Windows per Explorer-Hauptmenü > Extras > Trennen, oder alternativ per net use oder
API), dann verbleibt die Verbindung wie schon bekannt sichtbar. Verbindet man jetzt ein neues Netzlaufwerk auf diesen Laufwerksbuchstaben (was ja problemlos geht, auch wenn der Buchstabe laut Explorer schon/noch vergeben ist), wird weiterhin der Name/Pfad der alten Verbindung angezeigt. Klickt man allerdings drauf kommt man ins neu verbundene Verzeichnis.
[Edit: Ich habe gerade mal versucht, ein lokales Laufwerk auf den Laufwerksbuchstaben vom halb-getrennten Netzlaufwerk zu legen. Das geht problemlos, nur dass im Explorer das Laufwerk unverändert als getrenntes Netzlaufwerk mit Netzwerknamen angezeigt wird; per Doppelklick kommt man dann allerdings auf den Inhalt des lokalen Laufwerks. Verrückt.
]
Zudem: Der Explorer zeigt nach dem "fehlerhaften Trennen" ein Laufwerk an, das nirgends sonst anzeigbar ist. Weder in anderen Tools, noch in anderen Windows-Darstellungen (Netzlaufwerk verbinden, etc.)
Ich glaube, man kann das durchaus als Bug bezeichnen.
Benutzt mann dann 'Trennen' im Explorer wird eventuell das Laufwerk entfernt, manchmal aber auch nicht.
Das Laufwerk wird meinen Tests nach manuell
immer korrekt getrennt und entfernt, sofern man die Trennung zuvor nicht schon auf anderem Wege durchgeführt hat (dann sagt er, die Netzwerkverbindung würde nicht existieren).
Genau das ist auch der Grund, warum es eine Lösung geben
muss. Irgendetwas tut der Explorer zusätzlich. Und falls er eine Funktion auslöst, die per
API nicht verfügbar ist, dann war mein gedanklicher Ansatz, dass man eben zumindest das "Rechtsklick+Trennen"-Verhalten irgendwie reproduzieren kann. Aus diesem Grund habe ich es zunächst mit diesem Thread hier versucht:
http://www.delphipraxis.net/186217-e...usfuehren.html
Wenn man exakt den gleichen Kontextmenüpunkt ausführen könnte, müsste ja auch das gleiche Ergebnis kommen, oder?
Absurderweise scheint das Netzlaufwerk-Kontextmenü, das man per
API aufruft zwar exakt so auszusehen und augenscheinlich auch die richtigen Funktionen auszuführen. Aber das betätigen von "Trennen" führt zum gleichen fehlerhaften Ergebnis. Wie kann das sein?
Und: Das Kontextmenü zu einem "halb getrennten" Netzlaufwerk lässt sich im Explorer problemlos öffnen und bedienen, aber per
API kann man auf dieses Kontextmenü nicht mehr zugreifen, weil das Laufwerk darüber nicht mehr zugreifbar ist. Ich glaube mittlerweile aber, dass sobald dieser Fehlerfall eingetreten ist, man nichts mehr tun kann (eben ein Explorer-Bug). Aber
bevor der Fehler eintritt muss man doch den "Trennen"-Punkt irgendwie
exakt so ausführen können wie per Maus, oder??