您现在的位置: 中国男护士网 >> 考试频道 >> 计算机等级 >> 二级辅导 >> VFP >> 辅导 >> 正文    
  分发VFP应用时自动建立快捷方式 【注册男护士专用博客】          

分发VFP应用时自动建立快捷方式

www.nanhushi.com     佚名   不详 

  使用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应用程序的快捷方式自动建立在用户所指定的位置。 

 

文章录入:杜斌    责任编辑:杜斌 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     

    联 系 信 息
    QQ:88236621
    电话:15853773350
    E-Mail:malenurse@163.com
    免费发布招聘信息
    做中国最专业男护士门户网站
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    没有相关文章
    专 题 栏 目

      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)                            【进男护士社区逛逛】
    姓 名:
    * 游客填写  ·注册用户 ·忘记密码
    主 页:

    评 分:
    1分 2分 3分 4分 5分
    评论内容:
  • 请遵守《互联网电子公告服务管理规定》及中华人民共和国其他各项有关法律法规。
  • 严禁发表危害国家安全、损害国家利益、破坏民族团结、破坏国家宗教政策、破坏社会稳定、侮辱、诽谤、教唆、淫秽等内容的评论 。
  • 用户需对自己在使用本站服务过程中的行为承担法律责任(直接或间接导致的)。
  • 本站管理员有权保留或删除评论内容。
  • 评论内容只代表网友个人观点,与本网站立场无关。