明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

分發(fā)VFP應(yīng)用時自動創(chuàng)建快捷方式

[摘要]■ 安徽財貿(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)用程序的快捷方式自動建立在用戶所指定的位置。