首页 | 互联网 | IT动态 | 网络设备 | 服务器 | IDC | 安全 | Cisco | Windows | Linux | Java | .Net | Oracle | CIW | 华为 | 专题
IT技术 | 网页设计 | 平面设计 | 电子书下载 | 教学视频 | 方案 | 数字网校 | 直播室 | 虚拟考场 | 面授培训 | 搜索 | 博客 | 沙龙 | 论坛
首页 | JAVA | C# | VB | VB.NET | C/C++ | delphi | 工程管理 | 其他语言 | 论坛
免费注册一站通帐号,参与直播、论坛、下载、博客、网摘、评论,展现我的风采!
您现在的位置: 中国IT实验室 >> 桌面开发 >> Delphi >> 文章正文
如何用Delphi创建快捷方式
来源:天极网  时间:2007-8-2

  由于我们是通过OLE Interface实现此功能的,因此在程序单元的uses语句中要加入ComObj、ActiveX和ShlObj这三个单元。

  在单元的声明部分加入以下代码:

procedure CreateLink(ProgramPath, ProgramArg, LinkPath, Descr: String);

  其中,ProgramPath是快捷方式的目标文件的全路径(包括文件名和路径);

  ProgramArg是目标文件的参数;LinkPath是快捷方式的全路径;Descr是对此快捷方式的描述。

  在单元的实现部分加入以下代码:

procedure CreateLink(ProgramPath, ProgramArg, LinkPath, Descr: String); 

var

AnObj: IUnknown;

ShellLink: IShellLink;

AFile: IPersistFile;

FileName: WideString;

begin

if UpperCase(ExtractFileExt(LinkPath)) 〈〉 ′.LNK′ then //检查扩展名是否正确

begin

raise Exception.Create(′快捷方式的扩展名必须是 ′′LNK′′!′);/

/若不是则产生异常

end;

try

OleInitialize(nil);//初始化OLE库,在使用OLE函数前必须调用初始化

AnObj := CreateComObject(CLSID—ShellLink);//根据给定的ClassID生成

一个COM对象,此处是快捷方式

ShellLink := AnObj as IShellLink;//强制转换为快捷方式接口

AFile := AnObj as IPersistFile;//强制转换为文件接口

//设置快捷方式属性,此处只设置了几个常用的属性

ShellLink.SetPath(PChar(ProgramPath)); // 快捷方式的目标文件,一般

为可执行文件

ShellLink.SetArguments(PChar(ProgramArg));// 目标文件参数

ShellLink.SetWorkingDirectory(PChar(ExtractFilePath(ProgramPath)))

;//目标文件的工作目录

ShellLink.SetDescription(PChar(Descr));// 对目标文件的描述

FileName := LinkPath;//把文件名转换为WideString类型

AFile.Save(PWChar(FileName), False);//保存快捷方式

finally

OleUninitialize;//关闭OLE库,此函数必须与OleInitialize成对调用

end;

end;

以上编写了一个通用函数,下面我们用它来创建快捷方式。在窗体中放置一

个按钮,双击按钮写入如下代码即可:

procedure TForm1.Button1Click(Sender: TObject);

var

tmp: array [0..MAX—PATH] of Char;

WinDir: string;

begin

GetWindowsDirectory(tmp,MAX—PATH);

WinDir:=String(tmp);

if Length(WinDir) 〉 3 then

WinDir:=WinDir+′\′;//得到Windows的目录

//在桌面上放置本程序的快捷方式

CreateLink(ParamStr(0),′′,WinDir+′desktop\′+Application.Tit

le+′.lnk′,′Application.Title′);

end;

【责编:Youping】

中国IT教育热线咨询

相关文章
Delphi初学者应小心的六大陷阱
用C#创建COM对象
基于Delphi的异常处理技术探究
Delphi中用API实现在MSN的信息提示
JAVA中对象创建和初始化过程
Delphi中"包"的妙用
如何用Delphi实现子目录级的文件查询
在Delphi数据库应用程序中常见错误
推荐文章
· 用C#创建COM对象
· IT管理十大失误及其对策
· VC中利用MFC设计绘图程序初步
· JAVA中对象创建和初始化过程
· C语言中的位域的使用
· 浅谈Java桌面应用程序开发
· C#的前途如何?
· 几种VC++数据库开发技术的相对比较
 精彩友情推荐
·锐捷交换机报价
·锐捷交换机
·锐捷网络网络交换机
·smc交换机
·smc交换机报价
·IDC资讯大全
·机房品质万里行
·IDC托管必备知识
·全国IDC报价
·网站推广优化
最新更新 推荐文章
·Visual Basic 9.0隐式类型的局部…09-30
·JMX+J2SE5.0实现Web应用的安全管…09-30
·多线程、Socket技术及委托技术的…09-21
·Visual C#多线程参数传递浅析09-21
·浅谈Java中利用JCOM实现仿Excel编…09-21
·基于Java的界面布局DSL的设计与实…09-21
·Java开发中的事件驱动模型实例详…09-21
·并发工程原则应用到软件项目中09-06
·Delphi初学者应小心的六大陷阱09-06
·VC开发多语言界面支持的简单方法09-06
·用C#创建COM对象09-06
·用C#创建COM对象09-06
·IT管理十大失误及其对策08-30
·VC中利用MFC设计绘图程序初步08-23
·JAVA中对象创建和初始化过程08-23
·C语言中的位域的使用08-09
·浅谈Java桌面应用程序开发08-09
·C#的前途如何?08-02
·几种VC++数据库开发技术的相对比较07-12
·用Visual C#实现网络封包监视07-12
·VB.NET中的TextBox控件详解07-12
·VB.NET实现PC与掌上电脑PPC的双向通信07-05
  培训中心