Rubrik: COM/OLE/Registry/DLL · Verknüpfungen | VB-Versionen: VB5, VB6 | 04.11.02 |
Verknüpfung erstellen II Erstellt eine Verknüpfung auf dem Desktop, Startmenü, Programme oder im Autostartordner. | ||
Autor: Jens Malchow | Bewertung: | Views: 35.980 |
www.malchowgmbh.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Unter Verwendung des "Windows Scripting Host" lassen sich schnell und einfach Dateiverknüpfungen erstellen - sei es auf dem Desktop, im Startmenü unter Programme oder in einem x-beliebigen Ordner auf der Festplatte. Bei dieser Art von Verknüpfung handelt es sich um sogenannte Link-Dateien (*.lnk), über welche man per Doppelklick eine bestimmte Anwendung aktivieren kann.
Das WSH-Objekt stellt u.a. auch eine Methode SpecialFolder zur Verfügung, über die man bestimmte Systemordner ermitteln kann:
SpecialFolders("AllUsersDesktop") SpecialFolders("AllUsersStartMenu") SpecialFolders("AllUsersPrograms") SpecialFolders("AllUsersStartUp") SpecialFolders("Desktop") SpecialFolders("StartMenu") SpecialFolders("Programs") SpecialFolders("StartUp")
Hinweis: Unter Win9x liefern die AllUsers-Schlüsselwörter einen Leerstring zurück!
Nun aber zur eigentlichen Funktion - dem Erstellen einer Verknüpfung:
' Verknüpfung erstellen Public Function CreateLink(ByVal sFile As String, _ ByVal sLinkName As String, _ Optional ByVal sParameter As String = "", _ Optional ByVal sComment As String = "", _ Optional ByVal sWorkingDir As String = "", _ Optional ByVal sHotKey As String) As Boolean ' Fehlerbehandlung, falls WSH-Objekt nicht ' verfügbar On Error GoTo ErrHandler Dim WshShell As Object Dim WshLink As Object ' Verweis auf den Windows Scripting Host erstellen Set WshShell = CreateObject("WScript.Shell") ' Neuen Link Erstellen Set WshLink = WshShell.CreateShortcut(sLinkName) With WshLink ' Ziel der Verknüpfung .TargetPath = sFile ' Weitere Eigenschaften... .WorkingDirectory = sWorkingDir .Arguments = sParameter .Description = sComment .HotKey = sHotKey ' Verknüpfung speichern .Save End With ' Objekte zerstören Set WshLink = Nothing Set WshShell = Nothing CreateLink = True On Error GoTo 0 Exit Function ErrHandler: CreateLink = False End Function
Die Funktion CreateLink erwartet folgende Parameter:
sFile | Pfad+Dateiname der Anwendung, welche über die Verknüpfung ausgeführt werden soll |
sLinkName | Name und Ort der Verknüpfungsdatei (.lnk) |
sParameter | Optional. Parameter für den Aufruf der Anwendung |
sComment | Optional. Kommentar (wird im Eigenschaften-Dialog der Verknüpfung angezeigt) |
sWorkingDir | Optional. Pfad, in welchem die Anwendung ausgeführt werden soll (Arbeitsverzeichnis) |
sHotKey | Optional. HotKey für das Ausführen der Verknüpfung (z.B. Alt+Ctrl+H) |
Beispiel:
Um nun eine Verknüpfung zu erstellen, rufen Sie die Prozedur folgendermassen auf:
' Verknüpfung zum Windows-Editor im ' Root-Verzeichnis von C: mit dem Namen test.lnk CreateLink "c:\winnt\notepad.exe", "c:\test.lnk"
Weiteres Beispiel:
Erstellen einer Verknüpfung der eigenen Anwendung auf dem Desktop:
' Pfad zum Desktop-Ordner Dim WshShell As Object Dim sPath As String Set WshShell = CreateObject("WScript.Shell") sPath = WShShell.SpecialFolders("Desktop") If Right$(sPath, 1) <> "\" Then sPath = sPath & "\" Set WshShell = Nothing ' Pfad+Dateiname der eigenen Anwendung Dim sFile As String sFile = App.Path & "\" & App.EXEName & ".exe" ' Name der Verknüpfung Dim sLinkName As String sLinkName = App.ProductName & ".lnk" ' Arbeitsverzeichnis (Ausführen in...) Dim sWorkingDir As String sWorkingDir = App.Path ' Kommentar (Beschreibung) Dim sComment As String sComment = App.Description ' HotKey Dim sHotKey As String sHotKey = "Alt+Ctrl+W" ' Verknüpfung auf dem Desktop erstellen If CreateLink(sFile, sPath & sLinkName, "", sComment, _ sWorkingDir, sHotKey) Then MsgBox "Verknüpfung erstellt!" Else MsgBox "Fehler beim Erstellen der Verknüpfung!" End If