注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

使用delphi创建快捷方式  

2012-10-24 10:20:09|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//轉

use ShlObj, ComObj, ActiveX

procedure CreateLink(sFile, sArg, sLink, sDesc: string);
var
  obj: IUnknown;
  ISL: IShellLink;
  IPF: IPersistFile;
begin
  try
    OleInitialize(nil);
    obj := CreateComObject(CLSID_ShellLink);
    ISL := obj as IShellLink;
    IPF := obj as IPersistFile;
    ISL.SetPath(PChar(sFile));
    ISL.SetArguments(PChar(sArg));
    ISL.SetWorkingDirectory(PChar(ExtractFilePath(sFile)));
    ISL.SetDescription(PChar(sDesc));
    IPF.Save(PWideChar(WideString(sLink)), False);
  finally
    OleUninitialize;
  end;
end;

procedure CreateShortCut(sFile: string; CIL: integer; sLink: WideString);
var
  obj: IUnknown;
  ISL: IShellLink;
  IPF: IPersistFile;
  PIDL: PItemIDList;
  pPath: array[0..MAX_PATH] of Char;
begin
  coInitialize(nil);
  obj := CreateComObject(CLSID_ShellLink);   //创建建立快捷方式的外壳扩展
  ISL := obj as IShellLink;                  //取得接口
  IPF := obj as IPersistFile;                //用来储存*.lnk文件的接口
  ISL.SetPath(PChar(sFile));                 //设定.exe所在路径
  ISL.SetWorkingDirectory(PChar(ExtractFilePath(sFile))); //设定工作目录
  SHGetSpecialFolderLocation(0, CIL, PIDL);  //获得CIL的Itemidlist
  SHGetPathFromIDList(PIDL, pPath);          //获得CIL路径
  IPF.Save(PWideChar(WideString(pPath) + sLink), FALSE); //保存*.lnk文件
  CoUninitialize;
end;

把快捷方式建立到“SendTo”目录:
CreateShortCut('c:\app.exe', CSIDL_SENDTO, 'LinkToApp.lnk');
  评论这张
 
阅读(670)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017