正文

用VB创建Windows快捷方式(无需DLL)2006-05-29 12:37:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/stef/15160.html

分享到:

创建开始菜单快捷方式 Option ExplicitPrivate Sub Command1_Click()CreateProgManGroup Me, "测试", "test.grp"CreateProgManItem Me, "d:\ghost.exe", "Ghost"CreateProgManItem Me, "d:\setupQQ.exe", "QQ"End SubSub CreateProgManGroup(X As Form, GroupName$, GroupPath$)Dim i As IntegerX.Label1.LinkTopic = "ProgMan|Progman"X.Label1.LinkMode = 2Rem 空循环使DDE有时间执行For i = 1 To 10DoEventsNextX.Label1.LinkTimeout = 100Rem LinkExecute 是在DDE通道中传送这样的命令'──建立一个名为GroupName $的程序组。X.Label1.LinkExecute "[ CreateGroup (" + GroupName$ + Chr$(44) + GroupPath$ + ") ]"X.Label1.LinkTimeout = 50 '恢复Label1 的属性值X.Label1.LinkMode = 0End SubSub CreateProgManItem(X As Form, CmdLine$, IconTitle$)Dim i As IntegerX.Label1.LinkTopic = "ProgMan|Progman"X.Label1.LinkMode = 2For i = 1 To 10DoEventsNextX.Label1.LinkTimeout = 100X.Label1.LinkExecute "[AddItem(" + CmdLine$ + Chr$(44) + IconTitle$ + Chr$(44) + ", ,) ]"X.Label1.LinkTimeout = 50 '恢复Label1 的属性值X.Label1.LinkMode = 0Screen.MousePointer = 0End Sub  将程序建立成“启动”文件夹的捷径 Text1.LinkTopic = "Progman|Progman"Text1.LinkMode = 2 '手动Text1.LinkExecute "[ShowGroup(启动, 4)]"Text1.LinkExecute "[AddItem(可执行文件完整路径, 捷径名称)]"   假设我们想把“c:\vb5db\myprog.exe”建立成“启动”资料夹名称为“我的程序”的捷径,则最后一行的 LinkExecute 应该如下: Text1.LinkExecute "[AddItem(c:\vb5db\myprog.exe, 我的程序)]"   在桌面上添加程序的快捷方式  假如程序为C:\Program Files\MyProg\Prog.exe,需加参数/Para  新键一个项目,添加命令按钮和标签各一个,把下面的代码加上去,一运行,你将如愿以偿! Option ExplicitPrivate Sub Command1_Click()  CreateGroup "MyProg", "", "", 2, True  CreateGroup "MyProg", "C:\ProgramFiles\MyProg\Prog.exe/Para", _  "Para", 3, TrueEnd SubSub CreateGroup(ByVal strGroup As String, ByVal strCmd As String, ByVal _strTitle As String, ByVal intDDE As Integer, ByVal fLog As Boolean)  Const strCOMMA$ = ","  Const strRESTORE$ = ", 1)]"  Const strACTIVATE$ = ", 5)]"  Const strENDCMD$ = ")]"  Const strSHOWGRP$ = "[ShowGroup("  Const strADDGRP$ = "[CreateGroup("  Const strREPLITEM$ = "[ReplaceItem("  Const strADDITEM$ = "[AddItem("  Dim i As Integer  Dim Sourcefile As String, Destinationfile As String  Form1.Label1.LinkMode = 0  For i% = 1 To 20   On Error Resume Next   Form1.Label1.LinkTopic = "PROGMAN|PROGMAN" '设置发送端应用程序和主题   If Err = 0 Then Exit For   DoEvents  Next  Form1.Label1.LinkMode = 2 '采用手动方式建立连接  For i% = 1 To 10   DoEvents  Next  Form1.Label1.LinkTimeout = 100 '设置等待 DDE 响应消息的时间。  If Err = 0 Then   Select Case intDDE     Case 1 '建立程序项      Form1.Label1.LinkExecute strADDGRP & strGroup & strENDCMD      Form1.Label1.LinkExecute strADDITEM & strCmd & strCOMMA & _        strTitle & String$(3, strCOMMA) & strENDCMD     Case 2 '建立程序组      Form1.Label1.LinkExecute strADDGRP & strGroup & strENDCMD      Form1.Label1.LinkExecute strSHOWGRP & strGroup & strRESTORE     Case 3 '建立程序项,并复制一份添加到桌面      Form1.Label1.LinkExecute strADDGRP & strGroup & strENDCMD      Form1.Label1.LinkExecute strADDITEM & strCmd & strCOMMA & _        strTitle & String$(3, strCOMMA) & strENDCMD      Sourcefile = "C:\WINDOWS\Start Menu\Programs\" & strGroup & _        "\" & strTitle & ".lnk" ' 指定源文件名。      Destinationfile = "C:\WINDOWS\DESKTOP\" & strTitle & ".lnk"                  '指定目的文件名。      FileCopy Sourcefile, Destinationfile   End Select  End If  '断开DDE联接  Form1.Label1.LinkMode = 0  Form1.Label1.LinkTopic = ""End Sub

阅读(2823) | 评论(0)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

暂无评论
您需要登录后才能评论,请 登录 或者 注册