Rubrik: COM/OLE/Registry/DLL · Verknüpfungen | VB-Versionen: VB4, VB5, VB6 | 28.08.03 |
Beliebige Verknüpfung erstellen II Diesmal zeigen wir Ihnen, wie man mit Windows-Boardmitteln ohne zusätzliche API oder TLB-Datei eine beliebige Verknüpfung erstellen kann. | ||
Autor: Dieter Otter | Bewertung: | Views: 34.642 |
www.tools4vb.de | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Heute möchten wir Ihnen zeigen, wie man mit Windows-Boardmitteln ohne zusätzliche API oder TLB-Datei eine beliebige Verknüpfung erstellen kann. Hierzu bedienen wir uns der Shell32.dll, die Windows von Haus aus bereitstellt
Aktivieren Sie zunächst den Verweis Microsoft Shell Controls And Automation (Shell32.DLL) und fügen nachfolgende Funktion in das Codefenster Ihrer Form oder eines Moduls ein:
' Verknüpfung erstellen über das Shell-Objekt (Shell32.dll) Public Function CreateShortcut(ByVal sLinkFile As String, _ ByVal sTargetFile As String, _ Optional ByVal sArguments As String, _ Optional ByVal sDescription As String, _ Optional ByVal sWorkingDir As String) Dim oShell As New Shell32.Shell Dim oFolder As Shell32.Folder Dim oLink As Shell32.ShellLinkObject Dim sPath As String Dim sFile As String Dim F As Integer ' Ordner und Dateiname extrahieren sPath = Left$(sLinkFile, InStrRev(sLinkFile, "\") - 1) sFile = Mid$(sLinkFile, InStrRev(sLinkFile, "\") + 1) ' Link-Datei mit 0 Bytes erstellen, da die ' LNK-Datei bereits voranden sein muss! F = FreeFile Open sLinkFile For Output As #F: Close #F Set oFolder = oShell.NameSpace(sPath) Set oLink = oFolder.Items.Item(sFile).GetLink ' Eigenschaften der Verknüpfung With oLink If sArguments <> "" Then .Arguments = sArguments If sDescription <> "" Then .Description = sDescription If sWorkingDir <> "" Then .WorkingDirectory = sWorkingDir .Path = sTargetFile ' Verknüpfung speichern .Save End With ' Objekte zerstören Set oLink = Nothing Set oFolder = Nothing Set oShell = Nothing End Function
Um nun eine Verknüpfung zu erstellen, rufen Sie die Funktion wie folgt auf:
' Verknüpfung "test.lnk" im Ordner ' "d:\temp" erstellen CreateShortcut "d:\temp\test.lnk", App.Path & "\" & App.EXEName & ".exe"