Piszesz jakiś prosty instalator dla swojej aplikacji? Możesz wykorzystać poniższy fragment kodu, aby utworzyć do niej skrót na pulpicie:
Function CreateShortCut(LnkFile As String, TargetPath As String) As Boolean
On Error GoTo CreateShortCut_Error
Dim objShell As Object
Dim Shortcut As Object
Set objShell = CreateObject("WScript.Shell")
Set Shortcut = objShell.CreateShortCut(LnkFile)
Shortcut.TargetPath = TargetPath
Shortcut.Save
Set Shortcut = Nothing
Set objShell = Nothing
CreateShortCut = True
CreateShortCut_Error2:
On Error GoTo 0
Exit Function
CreateShortCut_Error:
CreateShortCut = False
MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure CreateShortCut", vbExclamation
Resume CreateShortCut_Error2:
End Function
Sub Test_CreateShortCut()
Dim Ret As Boolean
Dim Desktop As String
Desktop = Environ("USERPROFILE") & "\Desktop\"
Ret = CreateShortCut(Desktop + "liczydlo.lnk", "C:\windows\system32\calc.exe")
'Ret = CreateShortCut(Desktop + "pomoc.lnk", "C:\moja_aplikacja\pomoc.docx")
If Ret = True Then
MsgBox "Skrót został utworzony lub zaktualizowany", vbInformation
Else
MsgBox "Nie utworzono skrótu", vbExclamation
End If
End Sub
Sercem kodu jest metoda CreateShortCut z obiektu bibliotecznego WScript.Shell znajdująca się w funkcji CreateShortCut przyjmującej dwa parametry: ścieżka do nowo utworzonego pliku LNK (pliku ze skrótem) oraz ścieżka do obiektu docelowego, który uruchamia skrót. W naszym przypadku w procedurze Test_CreateShortCut tworzymy na pulpicie skrót liczydlo.lnk, który uruchamia windowsowy kalkulator.
Uwaga: tworząc skrót metoda CreateShortCut obiektu WScript.Shell nie sprawdza, czy docelowy plik istnieje, tak więc można utworzyć skrót prowadzący do pliku, który nie istnieje. Warto dodać do kodu jakąś funkcję sprawdzającą czy owy plik istnieje!
Wskazówka: skróty nie muszą prowadzić tylko do plików wykonywalnych. Możemy utworzyć skrót do dowolnego pliku (np. do pliku pomoc.docx)