分發(fā)VFP應(yīng)用時自動創(chuàng)建快捷方式
發(fā)表時間:2024-02-23 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]■ 安徽財貿(mào)學(xué)院計算機(jī)系(233041) 車光宏 使用VFP開發(fā)一個應(yīng)用軟件,最后一步是制作發(fā)布磁盤。使用VFP安裝向?qū)е谱鞯陌l(fā)布磁盤在安裝時一般只在“開始\程序\Visual FoxPro 應(yīng)用程序”組中建立快捷方式。如果希望在安裝時把快捷方式建在桌面上、開始菜單中或啟動組中,該怎么辦呢? 解決...
■ 安徽財貿(mào)學(xué)院計算機(jī)系(233041) 車光宏
使用VFP開發(fā)一個應(yīng)用軟件,最后一步是制作發(fā)布磁盤。使用VFP安裝向?qū)е谱鞯陌l(fā)布磁盤在安裝時一般只在“開始\程序\Visual FoxPro 應(yīng)用程序”組中建立快捷方式。如果希望在安裝時把快捷方式建在桌面上、開始菜單中或啟動組中,該怎么辦呢?
解決思路
下面是筆者的解決辦法。大體可分兩步進(jìn)行:
1.使用VFP編制一個用來建立快捷方式的程序(設(shè)程序名為CreateShortCut.exe);
2.在安裝向?qū)А安襟E4-安裝選項”的“執(zhí)行程序”標(biāo)簽下的文本框中填入前面建立的程序文件名及其路徑(通過瀏覽“…”按鈕查找)。
這里的關(guān)鍵是第一步,如果有了第一步建立的程序CreateShortCut.exe,后一步是十分簡單的。接下來具體說明用VFP編制建立快捷方式程序的方法。
具體實現(xiàn)
建立快捷方式的程序中需要使用DLL函數(shù)fCreateShellLink,該函數(shù)在STKIT432.DLL中(STKIT432.DLL可在Visual Basic 4.0 for Windows的Setup Kit中找到)。在VFP中聲明fCreateShellLink函數(shù)的命令是:
declare long fCreateShellLink in “STKIT432.DLL” String p1, String p2, String p3, String p4
其中:
● p1: 用來指出快捷方式要加入的文件夾及其相對于Windows\Programs文件夾的路徑;
● p2: 用來指出快捷方式的名稱;
● p3: 用來指出程序文件名(含擴(kuò)展名)及其路徑;
● p4: 用來指出執(zhí)行程序的命令行參數(shù),一般為空串。
例如,要想把程序“C:\Windows\command
.com”的快捷方式以“DOS窗口”為名建立在附件中,可用命令:
fCreateShellLink(“.\附件”,“DOS窗口”, “C:\Windows\command.com”, “”)
下面創(chuàng)建前面所述的CreateShortCut.exe程序,先檢查Windows\System文件夾中是否存在STKIT432.DLL文件,如果存在(否則,找到該文件將其復(fù)制到Windows\System文件夾),執(zhí)行如下操作:
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;
+“先把本程序復(fù)制到要建立快捷方式的程序所在的文件夾,然后,”+cl ;
+“從“開始”菜單中單擊“運(yùn)行”,在“運(yùn)行”對話框中,通過”+cl ;
+““瀏覽”按鈕找到本程序,再在“打開”組合框中本程序名之后”+cl ;
+“輸入命令行參數(shù): <程序文件名(含擴(kuò)展名)> <快捷方式標(biāo)題>,”+cl ;
+“最后,按“確定”按鈕執(zhí)行。”
messagebox(sTs,64, “提示”)
Cancel
endif
sPn=fullpath(sPn)
do form frmCreateShortCut with sPn,sPd
read events
3. 在CreateShortCut項目中新建一個文件名為frmCreateShortCut的表單(如下圖)。各復(fù)選框的名稱自上而下依次為: chkProgram、chkDeskTop、chkStartMenu、chkStartUp、chkQuickLaunch。
用戶操作界面
表單中有關(guān)對象事件的代碼如下:
(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
● 注意: 函數(shù)名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)將快捷方式加到快速啟動區(qū)中
if thisform.chkQuickLaunch.value=1
sFolderName=“..\..\Application Data\Microsoft\Internet Explorer\Quick Launch”
rs=fCreateShellLink(sFolderName, sLinkName, sLinkPath, sLinkArgs)
if rs=0
messagebox(“將快捷方式加到快速啟動區(qū)中時出錯!”,48,“提示”)
endif
endif
clear dlls
thisform.release
(9)“關(guān)閉”按鈕的Click事件代碼:
thisform.release
4. 將程序prgCreateShortCut 設(shè)置為主文件。
5.“連編”該項目,生成CreateShortCut.exe文件。
至此,建立快捷方式的程序CreateShortCut.exe 已經(jīng)完成。通過它,就可以把VFP應(yīng)用程序的快捷方式自動建立在用戶所指定的位置。