用VB建立Windows捷徑(無需DLL)

來源:互聯網
上載者:User

 ''  建立開始菜單捷徑

Option Explicit

Private Sub Command1_Click()

CreateProgManGroup Me, "測試", "test.grp"
CreateProgManItem Me, "d:/ghost.exe", "Ghost"
CreateProgManItem Me, "d:/setupQQ.exe", "QQ"

End Sub

Sub CreateProgManGroup(X As Form, GroupName$, GroupPath$)
Dim i As Integer
X.Label1.LinkTopic = "ProgMan|Progman"
X.Label1.LinkMode = 2
Rem 空迴圈使DDE有時間執行
For i = 1 To 10
DoEvents
Next
X.Label1.LinkTimeout = 100
Rem LinkExecute 是在DDE通道中傳送這樣的命令
'──建立一個名為GroupName $的程式組。
X.Label1.LinkExecute "[ CreateGroup (" + GroupName$ + Chr$(44) + GroupPath$ + ") ]"
X.Label1.LinkTimeout = 50 '恢複Label1 的屬性值
X.Label1.LinkMode = 0
End Sub

Sub CreateProgManItem(X As Form, CmdLine$, IconTitle$)
Dim i As Integer
X.Label1.LinkTopic = "ProgMan|Progman"
X.Label1.LinkMode = 2
For i = 1 To 10
DoEvents
Next
X.Label1.LinkTimeout = 100
X.Label1.LinkExecute "[AddItem(" + CmdLine$ + Chr$(44) + IconTitle$ + Chr$(44) + ", ,) ]"
X.Label1.LinkTimeout = 50 '恢複Label1 的屬性值
X.Label1.LinkMode = 0
Screen.MousePointer = 0
End 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 Explicit
Private Sub Command1_Click()
   CreateGroup "MyProg", "", "", 2, True
   CreateGroup "MyProg", "C:/ProgramFiles/MyProg/Prog.exe/Para", _
   "Para", 3, True
End Sub
Sub 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

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.