如何在没有安装程序的情况下在 vb.net 的桌面上创建快捷方式

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/5569843/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-09 15:25:03  来源:igfitidea点击:

how to create shortcut on desktop in vb.net without installer

vb.netwinformswindows-installerdesktop-shortcut

提问by vaichidrewar

I want to create desktop shortcut for exe file through program. I do not want to use installer to do this. Can a piece of code in program do this?How?

我想通过程序为exe文件创建桌面快捷方式。我不想使用安装程序来执行此操作。程序中的一段代码可以做到这一点吗?怎么做?

回答by Rhapsody

Chaslerhas answered that question a couple of years ago here on SO.

Chasler几年前在 SO 上回答了这个问题。

Add a reference to the Windows Script Host Object Model

添加对 Windows 脚本宿主对象模型的引用

Imports IWshRuntimeLibrary

Private Sub CreateShortCut(ByVal FileName As String, ByVal Title As String)
    Try
        Dim WshShell As New WshShell
        ' short cut files have a .lnk extension
        Dim shortCut As IWshRuntimeLibrary.IWshShortcut = DirectCast(WshShell.CreateShortcut(FileName, IWshRuntimeLibrary.IWshShortcut)

        ' set the shortcut properties
        With shortCut
            .TargetPath = Application.ExecutablePath
            .WindowStyle = 1I
            .Description = Title
            .WorkingDirectory = Application.StartupPath
            ' the next line gets the first Icon from the executing program
            .IconLocation = Application.ExecutablePath & ", 0"
            .Arguments = String.Empty
            .Save() ' save the shortcut file
        End With
    Catch ex As System.Exception
        MessageBox.Show("Could not create the shortcut" & Environment.NewLine & ex.Message, g_strAppTitleVersion, MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
End Sub

(Source)

来源

回答by Bernardo Ravazzoni

This code works very well

这段代码效果很好

 Private Function CreateShortCut(ByVal TargetName As String, ByVal ShortCutPath As String, ByVal ShortCutName As String) As Boolean
    Dim oShell As Object
    Dim oLink As Object
    'you don't need to import anything in the project reference to create the Shell Object

    Try

        oShell = CreateObject("WScript.Shell")
        oLink = oShell.CreateShortcut(ShortCutPath & "\" & ShortCutName & ".lnk")

        oLink.TargetPath = TargetName
        oLink.WindowStyle = 1
        oLink.Save()
    Catch ex As Exception

    End Try

End Function

Credits

学分