![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить путь к объекту из ярлыка (lnk) [D7, XP]
IC+ © (2008-01-24 16:29:00)СОбственно сабж. Помогите новичку. Сильно не пинайте плизз
Нафаня (2008-01-25 12:22:00) [1]
function GetLnkObjectPath(const LnkFile: string): string;
const
ValidChars: set of Char = [ #32, #33, #35..#41, #43..#46, #48..#59,
#61, #64..#123, #125, #126, #160, #192..#255];
var
hLnk: THandle;
I: Integer;
Buffer: array of Char;
BuffLen: Integer;
BytesCount: Cardinal;
begin
Result := '';
hLnk := CreateFile(PChar(LnkFile), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_EXISTING, 0, 0);
if hLnk = INVALID_HANDLE_VALUE then
Exit;
BuffLen := GetFileSize(hLnk, nil);
if BuffLen > 0 then
begin
SetLength(Buffer, BuffLen);
I := 0;
while (ReadFile(hLnk, Buffer[I], 1, BytesCount, nil)) and (BytesCount > 0) do
begin
if Buffer[I] in ValidChars then
Result := Result + Buffer[I]
else if FileExists(Result) then
Break
else
Result := '';
Inc(I);
end;
Finalize(Buffer);
end;
CloseHandle(hLnk);
end;
Bujhm (2008-01-25 11:15:00) [2]http://read.excode.ru/art5206p1.html
Cj (2008-01-24 16:34:00) [3]смотри в сторону IShellLink вродебы...непомню точно...