 |
VFP 愛用者社區 本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
|
上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
Ruey
註冊時間: 2003-03-12 文章: 1698 來自: tunglo
第 1 樓
|
發表於: 星期五 三月 05, 2004 10:01 pm 文章主題: 分發VFP應用時自動建立快捷方式(轉貼) |
|
|
■ 安徽財貿學院計算機系(233041) 車光宏
使用VFP開發一個應用軟件,最後一步是製作發佈磁盤。使用VFP安裝嚮導製作的發佈磁盤在安裝時一般只在「開始\程序\Visual FoxPro 應用程序」組中建立快捷方式。如果希望在安裝時把快捷方式建在桌面上、開始菜單中或啟動組中,該怎麼辦呢?
解決思路
下面是筆者的解決辦法。大體可分兩步進行:
1.使用VFP編製一個用來建立快捷方式的程序(設程序名為CreateShortCut.exe);
2.在安裝嚮導「步驟4-安裝選項」的「執行程序」標籤下的文本框中填入前面建立的程序文件名及其路徑(通過瀏覽「…」按鈕查找)。
這裡的關鍵是第一步,如果有了第一步建立的程序CreateShortCut.exe,後一步是十分簡單的。接下來具體說明用VFP編製建立快捷方式程序的方法。
具體實現
建立快捷方式的程序中需要使用DLL函數fCreateShellLink,該函數在STKIT432.DLL中(STKIT432.DLL可在Visual Basic 4.0 for Windows的Setup Kit中找到)。在VFP中聲明fCreateShellLink函數的命令是:
declare long fCreateShellLink in 「STKIT432.DLL」 String p1, String p2, String p3, String p4
其中:
● p1: 用來指出快捷方式要加入的文件夾及其相對於Windows\Programs文件夾的路徑;
● p2: 用來指出快捷方式的名稱;
● p3: 用來指出程序文件名(含擴展名)及其路徑;
● p4: 用來指出執行程序的命令行參數,一般為空串。
例如,要想把程序「C:\Windows\command
.com」的快捷方式以「DOS窗口」為名建立在附件中,可用命令:
fCreateShellLink(「.\附件」,「DOS窗口」, 「C:\Windows\command.com」, 「」)
下面創建前面所述的CreateShortCut.exe程序,先檢查Windows\System文件夾中是否存在STKIT432.DLL文件,如果存在(否則,找到該文件將其複製到Windows\System文件夾),執行如下操作:
1.打開VFP,新建一個名為CreateShortCut的項目。
2. 在CreateShortCut項目中新建一個名為prgCreateShortCut的程序,程序清單如下:
● 程序prgCreateShortCut.PRG
LPARAMETERS sPn,sPd
application.visible=.f.
if type(『sPn』)=『L』
sPn=「CreateShortCut.exe」
sPd=「建立快捷方式」
endif
if upper(sPn)= 「CREATESHORTCUT.EXE」
cl=chr(13)+chr(10)+chr(13)+chr(10)
sTs=「本程序使用方法:」+cl;
+「先把本程序複製到要建立快捷方式的程序所在的文件夾,然後,」+cl ;
+「從「開始」菜單中單擊「運行」,在「運行」對話框中,通過」+cl ;
+「「瀏覽」按鈕找到本程序,再在「打開」組合框中本程序名之後」+cl ;
+「輸入命令行參數: <程序文件名(含擴展名)> <快捷方式標題>,」+cl ;
+「最後,按「確定」按鈕執行。」
messagebox(sTs,64, 「提示」)
Cancel
endif
sPn=fullpath(sPn)
do form frmCreateShortCut with sPn,sPd
read events
3. 在CreateShortCut項目中新建一個文件名為frmCreateShortCut的表單(如下圖)。各復選框的名稱自上而下依次為: chkProgram、chkDeskTop、chkStartMenu、chkStartUp、chkQuickLaunch。
用戶操作界面
表單中有關對像事件的代碼如下:
(1)表單frmCreateShortCut的Init事件代碼:
LPARAMETERS sPn,sPd
this.AddProperty(「Pn」)
this.AddProperty(「Pd」)
this.Pn=sPn
this.Pd=sPd
this.Caption=「建立」+sPd+「快捷方式」
this.chkDeskTop.value=1
(2)表單frmCreateShortCut的Unload事件代碼:
clear events
(3)「確定」按鈕的Click事件代碼:
declare long fCreateShellLink in 「STKIT432
.DLL」 String sFolderName;
String sLinkName, String sLinkPath, String sLinkArgs
● 注意: 函數名fCreateShellLink中字母的大小寫。
sLinkName=Thisform.pd
sLinkPath=thisform.pn
(4) 將快捷方式加到程序組中
if thisform.chkProgram.value=1
sFolderName=「.」
sLinkArgs=「」
rs=fCreateShellLink(sFolderName, sLinkName, sLinkPath, sLinkArgs)
if rs=0
messagebox(「將快捷方式加到程序組中時出錯!」,48,「提示」)
endif
endif
(5) 將快捷方式加到桌面上
if thisform.chkDeskTop.value=1
sFolderName=「..\..\desktop」
sLinkArgs=「」
rs=fCreateShellLink(sFolderName,sLinkName, sLinkPath, sLinkArgs)
if rs=0
messagebox(「將快捷方式加到桌面上時出錯!」,48,「提示」)
endif
endif
(6)將快捷方式加到啟動組中
if thisform.chkStartUp.value=1
sFolderName=「.\啟動」
rs=fCreateShellLink(sFolderName, sLinkName, sLinkPath, sLinkArgs)
if rs=0
messagebox(「將快捷方式加到啟動組時出錯!」,48,「提示」)
endif
endif
(7)將快捷方式加到開始菜單中
if thisform.chkStartMenu.value=1
sFolderName=「..\」
rs=fCreateShellLink(sFolderName, sLinkName, sLinkPath, sLinkArgs)
if rs=0
messagebox(「將快捷方式加到開始菜單中時出錯!」,48,「提示」)
endif
endif
(8)將快捷方式加到快速啟動區中
if thisform.chkQuickLaunch.value=1
sFolderName=「..\..\Application Data\Microsoft\Internet Explorer\Quick Launch」
rs=fCreateShellLink(sFolderName, sLinkName, sLinkPath, sLinkArgs)
if rs=0
messagebox(「將快捷方式加到快速啟動區中時出錯!」,48,「提示」)
endif
endif
clear dlls
thisform.release
(9)「關閉」按鈕的Click事件代碼:
thisform.release
4. 將程序prgCreateShortCut 設置為主文件。
5.「連編」該項目,生成CreateShortCut.exe文件。
至此,建立快捷方式的程序CreateShortCut.exe 已經完成。通過它,就可以把VFP應用程序的快捷方式自動建立在用戶所指定的位置。 _________________ #############################
快樂媽咪系列幸福宅配,喝十全雞湯~原來幸福那麼簡單!!
學會VFP使用者社區的搜尋,Code才會更有趣~
############################# |
|
回頂端 |
|
 |
|
|
您 無法 在這個版面發表文章 您 無法 在這個版面回覆文章 您 無法 在這個版面編輯文章 您 無法 在這個版面刪除文章 您 無法 在這個版面進行投票 您 無法 在這個版面附加檔案 您 無法 在這個版面下載檔案
|
|