VB.NET创建快捷方式的两种方法

来源:百度文库 编辑:神马文学网 时间:2024/04/30 08:48:38
VB.NET创建快捷方式的两种方法 作者:夜闻香    来源:cleclso     更新时间:2009-7-30

 

方法一:

快速创建快捷方式只需要调用Windows系统内部的一个COM组件即可,它的名字为 Windows Script Host Object Model,项目菜单或者工程菜单上添加引用,然后选择COM,找到WSH组件。
如果没有发生错误,VB.NET自动为我们创建了一个COM包装库文件,并自动引用该库。我们新建一个窗体,在引用菜单上导入该库的命名空间:
Imports IWshRuntimeLibrary '引用 WSH COM 类库

拖放一个按钮Button1,双击进入代码页,写入下面代码:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' 使用COM导入库
        Dim wsh As New IWshShell_Class
        Dim desk As String = wsh.SpecialFolders.Item("Desktop") '从SHELL枚举中获取桌面路径
        Dim lnk As IWshShortcut = wsh.CreateShortcut(desk & "\说明1.lnk") '在桌面上创建说明文件的路径,注意扩展名为 .lnk

        With lnk
            .Arguments = "/?" '传递参数
            .Description = "这是说明信息,我是COM托管类库创建的快捷文件!"
            .IconLocation = Application.StartupPath & "\Mac.ico" '快捷方式的图标,空表示使用默认文件图标,可使用ico或exe、dll shell.dll,23
            .TargetPath = Application.StartupPath & "\说明.txt" '目标文件路径
            .WindowStyle = 1 '打开窗体的风格
            .WorkingDirectory = Application.StartupPath '工作路径

            .Save() '保存快捷方式
        End With

        MsgBox("OK!", MsgBoxStyle.Information)
    End Sub

按F5进行调试,如果没有发生错误,本程序将会自动在你的桌面上创建一个快捷方式,你可以打开右键查看它的属性,就如同设置的一样。

 

方法二:

虽然使用上面的方法创建快捷方式很方便,但必须要带一个48k的 Interop.IWshRuntimeLibrary.dll ,带着一个拖油瓶,总是让人很不爽。
嘿嘿,总有解决的办法,下面介绍如何直接调用COM组件。

在VB.NEt中,有一个CreateObject函数,这个函数可以直接创建COM对象。虽然它返回的是一个 __ComObject 对象,但利用VB.NET的后期动态反射,它可以直接调用这个对象的属性和方法,非常方便!
新建一个按钮Button2,写入下面的代码:
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ' 直接调用COM对象
        Dim wsh As Object = CreateObject("WScript.Shell")
        Dim desk As String = wsh.SpecialFolders("Desktop")
        Dim lnk As Object = wsh.CreateShortcut(desk & "\说明2.lnk")

        With lnk
            .Arguments = "/?" '传递参数
            .Description = "我是直接调用COM创建的非托管对象创建的快捷方式!"
            .Ic '调用dll资源内的图标,索引在第23个图标,问号帮助
            .TargetPath = Application.StartupPath & "\乐博网.txt"
            .WindowStyle = 7 '打开窗体的风格,最小化
            .WorkingDirectory = Application.StartupPath '工作路径

            .Save() '保存快捷方式
        End With

        MsgBox("OK!", MsgBoxStyle.Information)
    End Sub

如果没有发生错误,将会在桌面创建另一个快捷方式,它调用了系统目录下的 shell32.dll 内的资源图标,并以最小化打开文件。