*.lnk 文件的格式及其文件信息(100分)

  • 主题发起人 主题发起人 cachen1
  • 开始时间 开始时间
C

cachen1

Unregistered / Unconfirmed
GUEST, unregistred user!
很想知道*.lnk文件的格式。
比如说从一个已经有的lnk文件中提取它所对应的应用程序的路径。
哪位大虾可以帮我解决这个问题
 
来自:o*o 时间:2000-1-21 17:08:50 ID:178552
function ReadLink(AFileName: String):String;
var
psl: IShellLink;
ppf: IPersistFile;
WCLinkName: array[0..Max_Path] of WideChar;
Buf: array[0..255] of Char;
Data: TWin32FindData;
begin
psl:=CreateComObject(CLSID_ShellLink) as IShellLink;
ppf:=psl as IPersistFile;

StringToWideChar(AFileName, WCLinkName, MAX_PATH);
ppf.Load(WCLinkName, STGM_READ);

psl.GetPath(@Buf, Max_Path, Data, SLGP_UNCPRIORITY);
Result := StrPas(Buf);
end;

用法:filename:=ReadLink('aaaa.lnk'); 可以得到.lnk指向的文件名。

// Add by wjiachun;
//千万记得 uses shlobj;
//否则你会发现ppf: IPersistFile;定义错误
 
对不起,我按照上面的程序写,结果编译的时候找不到IPersistFile的定义。
 
我分特!你看清我给你帖子的最后三行了么???????
 
呵呵,来晚了。
 
嘻嘻,IPersistFile是找到了不过不是在shlobj中。谢谢大家
 
后退
顶部