Über die Shell-Funktion können Sie einen beliebigen Pfad in einem Explorer-Fenster anzeigen lassen, beispielsweise:
Shell "Explorer c:\programme", vbNormalFocus"
Die Verzeichnis-Objekte, die nicht auf physischen Verzeichnissen beruhen (so genannte "Namespaces"), wie etwa die Systemsteuerung, die Netzwerkumgebung, die Drucker, oder auch der gesamte Arbeitsplatz, lassen sich mangels Pfad-Bezeichnung so jedoch nicht öffnen. Als Alternative zu einer Pfad-Bezeichnung können Sie jedoch die internen (GUID)-Schlüssel verwenden, die ein Namespace-Objekt eindeutig im System kennzeichnen. Diese Schlüssel sind in der Windows-Registrierung abgelegt. Da diese nicht so einfach zu ermitteln sind, haben wir die Schlüssel gleich in fertig konfigurierte Aufrufe der Shell-Funktion verpackt. Sie können diese Namespace-Funktionen entweder direkt aufrufen, oder aber über die allgemeinere Funktion OpenNamespace. Bei letzterer wählen Sie das gewünschte Namespace-Objekt im ersten Parameter über eine enumerierte Konstante aus.
Public Enum onNamespaceConstants
onMyComputer
onNetworkNeighborhood
onRecycleBin
onTaskScheduler
onPrinters
onControlPanel
onWebFolders
End Enum
Private Const kExplorer = "Explorer ::"
Private Const kBaseGUID = "{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
Private Const kBase = kExplorer & kBaseGUID & "\::"
Public Function OpenNamespace(Namespace As onNamespaceConstants, _
Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
Select Case Namespace
Case onMyComputer
OpenNamespace = OpenMyComputer(WindowStyle)
Case onNetworkNeighborhood
OpenNamespace = OpenNetworkNeighborhood(WindowStyle)
Case onRecycleBin
OpenNamespace = OpenRecycleBin(WindowStyle)
Case onTaskScheduler
OpenNamespace = OpenTaskScheduler(WindowStyle)
Case onPrinters
OpenNamespace = OpenPrinters(WindowStyle)
Case onControlPanel
OpenNamespace = OpenControlPanel(WindowStyle)
Case onWebFolders
OpenNamespace = OpenWebFolders(WindowStyle)
End Select
End Function
Public Function OpenMyComputer _
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenMyComputer = Shell(kExplorer & kBaseGUID, WindowStyle)
End Function
Public Function OpenNetworkNeighborhood _
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenNetworkNeighborhood = Shell(kExplorer & _
"{208D2C60-3AEA-1069-A2D7-08002B30309D}", WindowStyle)
End Function
Public Function OpenRecycleBin _
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenRecycleBin = Shell(kExplorer & _
"{645FF040-5081-101B-9F08-00AA002F954E}", WindowStyle)
End Function
Public Function OpenTaskScheduler_
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenTaskScheduler = Shell(kBase & _
"{D6277990-4C6A-11CF-8D87-00AA0060F5BF}", WindowStyle)
End Function
Public Function OpenPrinters _
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenPrinters = Shell(kBase & _
"{2227A280-3AEA-1069-A2DE-08002B30309D}", WindowStyle)
End Function
Public Function OpenControlPanel _
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenControlPanel = Shell(kBase & _
"{21EC2020-3AEA-1069-A2DD-08002B30309D}", WindowStyle)
End Function
Public Function OpenWebFolders _
(Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus) _
As Long
OpenWebFolders = Shell(kBase & _
"{BDEADF00-C265-11D0-BCED-00A0C90AB50F}", WindowStyle)
End Function
|