永发信息网

怎么样用Delphi创建快捷方式

答案:2  悬赏:10  手机版
解决时间 2021-03-28 13:12
怎么样用Delphi创建快捷方式
最佳答案
procedure Tmainfrm.N30Click(Sender: TObject);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
FileName : String;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := paramstr(0);
with MySLink do begin
SetPath(pchar(FileName)); // 1999.4.9, as bug before!
SetHotkey(vk_F11);
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');
// 在桌面上生成快捷图标
Directory := MyReg.ReadString('Shell Folders','Desktop','');
// 在Start Menu中加入相应的ShortCut
{ 1:Directory := MyReg.ReadString('Shell Folders','Start Menu','');
// 在'发送到'中加入相应的ShortCut
2:Directory := MyReg.ReadString('Shell Folders','SendTo','');
end; }

WFileName := Directory+'\中鑫工资管理系统 2003.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.free;
application.messagebox('成功的创建!!!','消息框',mb_ok+mb_iconinformation);
end;
Top
//上边的是在开始菜单,下边倒桌面:
procedure Tmainfrm.M2Click(Sender: TObject);
var
MyObject : IUnknown;
MySLink : IShellLink;
MyPFile : IPersistFile;
FileName : String;
Directory : String;
WFileName : WideString;
MyReg : TRegIniFile;
begin
MyObject := CreateComObject(CLSID_ShellLink);
MySLink := MyObject as IShellLink;
MyPFile := MyObject as IPersistFile;
FileName := paramstr(0);
with MySLink do begin
SetPath(pchar(FileName)); // 1999.4.9, as bug before!
SetHotkey(vk_F11);
SetWorkingDirectory(PChar(ExtractFilePath(FileName)));
end;
MyReg := TRegIniFile.Create(
'Software\MicroSoft\Windows\CurrentVersion\Explorer');
// 在桌面上生成快捷图标
//Directory := MyReg.ReadString('Shell Folders','Desktop','');
// 在Start Menu中加入相应的ShortCut
Directory := MyReg.ReadString('Shell Folders','Start Menu','');
// 在'发送到'中加入相应的ShortCut
{ 2:Directory := MyReg.ReadString('Shell Folders','SendTo','');
end; }

WFileName := Directory+'\中鑫工资管理系统 2003.lnk';
MyPFile.Save(PWChar(WFileName),False);
MyReg.free;
application.messagebox('成功的创建!!!','消息框',mb_ok+mb_iconinformation);
end;
全部回答
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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
qq空间说说相册删了可以重新找回来不,好后悔
ps4目前可选的摇杆是不是只有rap4和te2
麦豆网里的爱奇艺会员能用多久
圆梦摄影工作室这个地址在什么地方,我要处理
求法语词性缩写大全,例如:n.m. v.t.等 同时
我摸老板娘他没有反抗平常我们关系很好是他对
单选题导致土地生产力下降的直接原因是A.水土
“岫”这个字什么意思?
攵加偏旁组词
淡黄色羽绒服搭配什么颜色高领毛衣
2016年4月23日t5687火车从北京哪个火车站发车
汉川那个《理发店》好
大叶绿萝有一节茎烂了
多肉植物黑腐怎么办,黑腐了土还能用吗
少儿不宜,别骂我 小弟从顶端到根部,使劲压
推荐资讯
什么叫word哥?
落去君休惜,飞来我自知。莺愁蝶倦晚芳时,纵
供楼好还是自建房好呢
沈阳注册公司去什么部门
我是荆门的一个姑娘,今年三月份经媒人介绍认
全椒到滁州的101公交车全线时长多久?
RVV2X0.75,2X1,2X1.5,2X2.5,2X4,2X6,3X
台州学D1驾驶证
二年级如果你要感谢老师你想对她说
苹果6sp现在入手落后吗
女生非得高才算身材好吗
曼谷市区内的交通都有什么?大概价位是?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?