VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

分發VFP應用時自動建立快捷方式(轉貼)

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
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才會更有趣~
#############################
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作