Beim installieren der WindowsApplication eine Verknüpfung erstellen

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Beim installieren der WindowsApplication eine Verknüpfung erstellen

    Guten Tag

    Ich möchte, das eine Verknüpfung von meiner Application beim installieren erstellt wird.

    Warum ich das will? ich möchte gerne die Sprache lernen und versuche kleinere dinge. nun möchte ich ma gerne wissen wie so ne verknüpfung erstellen lässt beim installieren der application

    Ich hoffe ihr könnt mir dabei helfen..
    wie genau muss man das nun machen.

    ich habe das public in script eingefügt. nun kommt ein error:

    Fehler 2 Die Anweisung ist in einem Namespace ungültig.

    VB.NET-Quellcode

    1. Public Function CreateShortcut(ByVal sLinkFile As String, _
    2. ByVal sTargetFile As String, _
    3. Optional ByVal sArguments As String = "", _
    4. Optional ByVal sDescription As String = "", _
    5. Optional ByVal sWorkingDir As String = "") As Boolean
    6. Try
    7. Dim oShell As New Shell32.Shell
    8. Dim oFolder As Shell32.Folder
    9. Dim oLink As Shell32.ShellLinkObject
    10. ' Ordner und Dateinamen extrahieren
    11. Dim sPath As String = sLinkFile.Substring(0, sLinkFile.LastIndexOf("\"))
    12. Dim sFile As String = sLinkFile.Substring(sLinkFile.LastIndexOf("\") + 1)
    13. ' Wichtig! Link-Datei erstellen (0 Bytes)
    14. Dim F As Short = FreeFile()
    15. FileOpen(F, sLinkFile, OpenMode.Output)
    16. FileClose(F)
    17. oFolder = oShell.NameSpace(sPath)
    18. oLink = oFolder.Items.Item(sFile).GetLink
    19. ' Eigenschaften der Verknüpfung
    20. With oLink
    21. If sArguments.Length > 0 Then .Arguments = sArguments
    22. If sDescription.Length > 0 Then .Description = sDescription
    23. If sWorkingDir.Length > 0 Then .WorkingDirectory = sWorkingDir
    24. .Path = sTargetFile
    25. ' Verknüpfung speichern
    26. .Save()
    27. End With
    28. ' Objekte zerstören
    29. oLink = Nothing
    30. oFolder = Nothing
    31. oShell = Nothing
    32. Return True
    33. Catch ex As Exception
    34. ' Fehler! ggf. Link-Datei löschen, falls bereit erstellt
    35. If System.IO.File.Exists(sLinkFile) Then Kill(sLinkFile)
    36. Return False
    37. End Try
    38. End Function


    die funktion heißt CreateShortcut. wo genau muss ich diese Funktion dann verwenden.
    eine Funktion steht irgenwo in deiner Klasse.

    Dann kannst du sie aufrufen.

    VB.NET-Quellcode

    1. Button1.Click.....
    2. CreateShortcut(Prarameter1 u. Parameter2)


    aber du must bei dieser Funktion noch was mit übergeben.

    hier deklariert als

    VB.NET-Quellcode

    1. ByVal sLinkFile As String, _
    2. ByVal sTargetFile As String


    die anderen sind Optional. DAs heist die brauchst du nicht Übergeben


    Edit:
    Ich habe das Beispiel mal umgesetzt. Es geht einwandfrei

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ChaosBernd“ ()

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. ' Verknüpfung zum Windows-Editor im
    4. ' Root-Verzeichnis von C: mit dem Namen test.lnk
    5. CreateShortcut("c:\test.lnk", "c:\winnt\notepad.exe")
    6. ' Erweiterung des Tipps
    7. 'Der Tipp lässt sich noch dahingehend erweitern, dass man für das Ziel der Verknüpfung einen bestimmten Systemordner angeben kann (z.B. Desktop, Programme im Start-Menü, usw.)
    8. 'Diese Systemordner lassen sich über die Environment.SpecialFolder Aufzählung leicht ermitteln.
    9. 'So lässt sich z.B. eine Verknüpfung auf dem Desktop folgendermassen erstellen:
    10. CreateShortcut(Environment.GetFolderPath(Environment.SpecialFolder.Desktop) & _
    11. "\MeinNotepad.lnk", "c:\winnt\notepad.exe")
    12. End Sub
    13. Public Function CreateShortcut(ByVal sLinkFile As String, _
    14. ByVal sTargetFile As String, _
    15. Optional ByVal sArguments As String = "", _
    16. Optional ByVal sDescription As String = "", _
    17. Optional ByVal sWorkingDir As String = "") As Boolean
    18. Try
    19. Dim oShell As New Shell32.Shell
    20. Dim oFolder As Shell32.Folder
    21. Dim oLink As Shell32.ShellLinkObject
    22. ' Ordner und Dateinamen extrahieren
    23. Dim sPath As String = sLinkFile.Substring(0, sLinkFile.LastIndexOf("\"))
    24. Dim sFile As String = sLinkFile.Substring(sLinkFile.LastIndexOf("\") + 1)
    25. ' Wichtig! Link-Datei erstellen (0 Bytes)
    26. Dim F As Short = CShort(FreeFile())
    27. FileOpen(F, sLinkFile, OpenMode.Output)
    28. FileClose(F)
    29. oFolder = oShell.NameSpace(sPath)
    30. oLink = CType(oFolder.Items.Item(sFile).GetLink, Shell32.ShellLinkObject)
    31. ' Eigenschaften der Verknüpfung
    32. With oLink
    33. If sArguments.Length > 0 Then .Arguments = sArguments
    34. If sDescription.Length > 0 Then .Description = sDescription
    35. If sWorkingDir.Length > 0 Then .WorkingDirectory = sWorkingDir
    36. .Path = sTargetFile
    37. ' Verknüpfung speichern
    38. .Save()
    39. End With
    40. ' Objekte zerstören
    41. oLink = Nothing
    42. oFolder = Nothing
    43. oShell = Nothing
    44. Return True
    45. Catch ex As Exception
    46. ' Fehler! ggf. Link-Datei löschen, falls bereit erstellt
    47. If System.IO.File.Exists(sLinkFile) Then Kill(sLinkFile)
    48. Return False
    49. End Try
    50. End Function
    jo das habe ich soweit verstanden, jedoch ist shell32 nicht definier:

    VB.NET-Quellcode

    1. Dim oShell As New Shell32.Shell
    2. Dim oFolder As Shell32.Folder
    3. Dim oLink As Shell32.ShellLinkObject
    4. oLink = CType(oFolder.Items.Item(sFile).GetLink, Shell32.ShellLinkObject)


    Fehler:

    Fehler 3 Der Typ "Shell32.Folder" ist nicht definiert.
    Fehler 2 Der Typ "Shell32.Shell" ist nicht definiert.
    Fehler 4 Der Typ "Shell32.ShellLinkObject" ist nicht definiert.
    Fehler 5 Der Typ "Shell32.ShellLinkObject" ist nicht definiert.
    übrigens steht alles beschrieben wie du vorgehen muß:
    von vbarchiv.net/t:

    Nun, so schwer ist das ganze eigentlich nicht. Am einfachsten ist es, wenn man sich den Funktionen der System-DLL shell32.dll bedient. Fügen Sie Ihrem Projekt als erstes den COM-Verweis Microsoft Shell Controls And Automation hinzu und übernehmen anschließend nachfolgenden Funktionscode in Ihr Projekt: