怎样搜寻丢失的快捷方式(100分)

  • 主题发起人 主题发起人 Lamb
  • 开始时间 开始时间
L

Lamb

Unregistered / Unconfirmed
GUEST, unregistred user!
我要写了一个递归的程序搜寻硬盘上的各种文件,可是在搜寻快捷方式(*.lnk)<br>文件时,我无法判断该文件联结的实际文件,谁能告诉我?另外,如果删除快捷<br>方式文件,是不是仅把文件删除就可以了呢?
 
function ReadLink(AFileName: String):String;<br>var<br>&nbsp; psl: IShellLink;<br>&nbsp; ppf: IPersistFile;<br>&nbsp; WCLinkName: array[0..Max_Path] of WideChar;<br>&nbsp; Buf: array[0..255] of Char;<br>&nbsp; Data: TWin32FindData;<br>begin<br>&nbsp; psl:=CreateComObject(CLSID_ShellLink) as IShellLink; &nbsp;<br>&nbsp; ppf:=psl as IPersistFile;<br><br>&nbsp; StringToWideChar(AFileName, WCLinkName, MAX_PATH);<br>&nbsp; ppf.Load(WCLinkName, STGM_READ);<br><br>&nbsp; psl.GetPath(@Buf, Max_Path, Data, SLGP_UNCPRIORITY);<br>&nbsp; Result := StrPas(Buf);<br>end;<br><br>用法:filename:=ReadLink('aaaa.lnk'); 可以得到.lnk指向的文件名。<br><br>删除文件与该文件lnk的无关。
 
如果删除快捷方式文件,仅把文件删除并没有删除快捷方式.快捷方式仍留在硬盘上
 
o*o:可是Delphi 4.0为什么总是说ppf: IPersistFile;定义错误呢?
 
接受答案了.
 
后退
顶部