spinnifex
Goto Top

Getrenntes Share ausblenden.Explorer neustarten VBA

Hallo zusammen!

mit
Sub ShareConnect()
Dim sCMD As String
Dim fso As Object

Set fso = CreateObject("Scripting.FileSystemObject")  

sCMD = Shell("net use V: \\Server\Freigabe /user:testuser testpaswort /persistent:no")  
Application.Wait Now + TimeValue("00:00:02")  
    If fso.DriveExists("V:\") Then  
        MsgBox "Connect!"  
    Else: MsgBox "Disconnect!"  
    End If
End Sub
verbinde ich aus VBA heraus erfolgreich eine Freigabe, die ich aber auf dem gleichen Weg wieder trennen will. Das Trennen an sich klappt mit
Sub ShareDisconnect()
Dim sCMD As String
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")  

sCMD = Shell("net use V: /delete")  
    If fso.DriveExists("V:\") Then  
        MsgBox "Connect!"  
    Else: MsgBox "Disconnect!"  
    End If
End Sub

Das Problem: Das Laufwerk V: ist zwar nicht mehr erreichbar aber weiterhin sichtbar. Erst wenn ich den Explorer neu starte, ist es weg. Mein Versuch das mit
Sub ExplorerRestart()
Dim sCMD As String
sCMD = Shell("taskkill /f /im explorer.exe")  
Application.Wait Now + TimeValue("00:00:01")  
sCMD = Shell("explorer.exe")  
End Sub
zu erreichen, läuft leider nicht wie gewünscht: Der Explorer öffnet sich zwar, aber die Taskleiste und alle darin abgebildeten Apps sind nicht erreichbar.

Gibt es eine elegante Lösung den Laufwerksbuchstaben loszuwerden? Meine bisherige Recherche führte über Registry-Hacks bis Leere Ordner ausblenden ...

Vielen Dank vorab!

Spinnifex

Content-ID: 4174481482

Url: https://administrator.de/contentid/4174481482

Ausgedruckt am: 25.11.2024 um 07:11 Uhr

4091525239
4091525239 06.10.2022 aktualisiert um 22:11:39 Uhr
Goto Top
Netzlaufwerke Mappen und Trennen macht man in VBA anders und zuverlässiger mit dem COM Object "WScript.Network"
https://ss64.com/vb/mapnetworkdrive.html
https://ss64.com/vb/removenetworkdrive.html
spinnifex
spinnifex 07.10.2022 aktualisiert um 18:01:35 Uhr
Goto Top
Hallo Paddel und Danke für die Links.

Ich habe sie getestet und kann im Effekt im Explorer keinen Unterschied feststellen. Mein Laufwerk V: wird zwar brav getrennt, der LW-Buchstabe glotzt mich im Explorer aber immer noch frech an. Und den loszuwerden ist mein Ziel.

Frage zum Lernen: Was macht das COM-Objekt zuverlässiger als net use? Ich hatte damit bisher nie Schwierigkeiten.

Grüße
spinnifex
Lösung spinnifex 07.10.2022 um 19:44:43 Uhr
Goto Top
'n Abend zusammen!

Ich konnte das Problem dadurch lösen, dass ich den Aufruf
sCMD = Shell("explorer.exe")  
oben durch den vollständigen Pfad
sCMD = Shell("c:/windows/explorer.exe")  
ersetzt habe. Es sind dann alle Fenster wieder da, und V: ist verschwunden.

Ich sehe das nicht als Lösung, sondern bestensfalls als Workaround und bin weiterhin für kontruktive Vorschläge dankbar!

Grüße Spinnifex