获取快捷键目录文件的问题
我找到一个函数GettLnkPath可以获取一个链接文件的目录文件,
但是在处理特殊目录的时候就出现问题了,比如
获取C:\Program Files\我的测试\mytestProgramDir\Project1.exe
返回结果是C:\PROGRA~1\我的~1\mytest~1\Project1.exe
本身两个是相同,有没有办法区分啊
function GettLnkPath(LinkFile: WideString): String;
var
SL: IShellLink;
PF: IPersistFile;
FindData: TWin32FindData;
AStr: array[0..MAX_PATH] of char;
begin
OleCheck(CoCreateInstance(CLSID_ShellLink, nil, CLSCTX_INPROC_SERVER,
IShellLink, SL));
PF := SL as IPersistFile;
OleCheck(PF.Load(PWideChar(LinkFile), STGM_READ));
OleCheck(SL.Resolve(0, SLR_ANY_MATCH or SLR_NO_UI));
OleCheck(SL.GetPath(AStr, MAX_PATH, FindData, SLGP_SHORTPATH));
Result := AStr;
end;