HanDs
NO.2

[Delphi文章] 根据快捷方式路径取源文件地址 





学习中请遵循国家相关法律法规,黑客不作恶。没有网络安全就没有国家安全

本站需要登陆后才能查看

uses shlobj,ActiveX,ComObj;

 

function TForm1.ExeFromLink(const linkname: string): string;
var
  link: IShellLink;
  storage: IPersistFile;
  filedata: TWin32FindData;
  buf: Array[0..MAX_PATH] of Char;
  widepath: WideString;
begin
  OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER, IShellLink, link));
  OleCheck(link.QueryInterface(IPersistFile, storage));
  widepath := linkname;
  Result := 'unable to resolve link';
  If Succeeded(storage.Load(@widepath[1], STGM_READ)) Then
    If Succeeded(link.Resolve(GetActiveWindow, SLR_NOUPDATE)) Then
      If Succeeded(link.GetPath(buf, sizeof(buf), filedata, SLGP_UNCPRIORITY)) Then
        Result := buf;
  storage := nil;
  link:= nil;
end;

 

//调用方法

procedure TForm1.Button2Click(Sender: TObject);
begin

  //edit3.text:='C:\Documents and Settings\hjh\桌面\OA客户端.lnk';
  Edit4.Text:=ExeFromLink(edit3.Text);

  //Edit4.text:='D:\Program Files\OA客户端\OAUpdate.exe';
end;


学习中请遵守法律法规,本网站内容均来自于互联网,本网站不负担法律责任
根据 快捷 方式 路径 源文件 地址
#1楼
发帖时间:2016-7-9   |   查看数:0   |   回复数:0
游客组