Verknüpfung erstellen mit Strict = ON

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Veronesi.

    Verknüpfung erstellen mit Strict = ON

    Hallo Zusammen

    Ich möchte gerne automatisch Verknüpfungen erstellen.
    Dazu habe ich verschiedene Codes gefunden.
    Ich verwende den folgenden, für mich angepassten Code:

    VB.NET-Quellcode

    1. Function CreateShortCut(ByVal ShortCutTarget As String, ByVal ShortcutPathAndName As String, _
    2. Optional ByVal sArguments As String = "", Optional ByVal ShortcutKey As String = "", _
    3. Optional ByVal ShortCutDescription As String = "", Optional ByVal IconLocation As String = "") As Boolean
    4. ' CreateShortCut("http://www.google.ch", "C:\temp\test.lnk", "/Test", "CTRL+SHIFT+G", "Google", "Explorer.exe, 0")
    5. Try
    6. ' Das Shell-Objekt des Windows Script Hosts erstellen.
    7. Dim WSHShell As Object = CreateObject("WScript.Shell")
    8. Dim Shortcut As Object = WSHShell.CreateShortcut(ShortcutPathAndName)
    9. If Not System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(ShortcutPathAndName)) Then
    10. System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(ShortcutPathAndName))
    11. End If
    12. Shortcut.TargetPath = ShortCutTarget
    13. Shortcut.WindowStyle = 1
    14. Shortcut.Arguments = sArguments
    15. Shortcut.Hotkey = ShortcutKey
    16. Shortcut.Description = ShortCutDescription
    17. Shortcut.WorkingDirectory = System.IO.Path.GetDirectoryName(ShortcutPathAndName)
    18. If IconLocation <> "" Then Shortcut.IconLocation = IconLocation
    19. Shortcut.Save()
    20. Return True
    21. Catch ex As Exception
    22. MessageBox.Show(ex.Message & vbLf & System.Reflection.MethodBase.GetCurrentMethod().ToString, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    23. Return False
    24. End Try
    25. End Function

    Das funktioniert auch einwandfrei.
    Aber wenn man die Option Strict auf ON schaltet, kommt die Meldung, dass "Spätes binden" nicht zulässig sei.

    Was das ungefähr bedeutet, habe ich herausgefunden. Aber wie kann ich diesen "Fehler" hier beheben?
    Ich würde gerne mit der Option Strict ON arbeiten.

    Veronesi
    Gugge mal hier: [VB.NET] Diverse Probleme nach nachträglicher Umstellung der Option Strict auf On
    -> Late Binding lässt sich bei manchen Vorhaben einfach nicht umgehen -> wie ErfinderDesRades ein "Schmuddelmodul" machen :P

    VB.NET-Quellcode

    1. Imports IWshRuntimeLibrary
    2. Public Class Form1
    3. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    4. Dim shell As New IWshShell_Class
    5. Dim desktop As String = Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
    6. Dim shortCut As IWshShortcut = DirectCast(shell.CreateShortcut(IO.Path.Combine(desktop, "test.lnk")), IWshShortcut)
    7. shortCut.TargetPath = "c:\test.exe"
    8. shortCut.Save()
    9. End Sub
    10. End Class


    Alles OPTION STRICT ON konform. Du musst eine Referenz auf "Windows Script Host Object Model" hinzufügen, findest Du im Reiter COM.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o