Версия для печати

Как получить параметры командной строки файла из его ярлыка?

Оцените материал
(0 голосов)

Как получить параметры командной строки файла из его ярлыка?

uses
  ..., ShlObj, ComObj, ActiveX;
 
function GetFileArgumentsFromLink( LinkFileName: string ): string;
var
  MyObject: IUnknown;
  MySLink: IShellLink;
  MyPFile: IPersistFile;
  WidePath: array[0..MAX_PATH] of WideChar;
  Buff: array[0..MAX_PATH] of Char;
begin
   Result := '';
   if ( FileExists( LinkFileName ) = false ) then
      Exit;
   MyObject := CreateComObject( CLSID_ShellLink );
   MyPFile := MyObject as IPersistFile;
   MySLink := MyObject as IShellLink;
   StringToWideChar( LinkFileName, WidePath, SizeOf( WidePath ) );
   MyPFile.Load( WidePath, STGM_READ );
   MySLink.GetArguments( Buff, MAX_PATH );
   Result := buff;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   ShowMessage( GetFileArgumentsFromLink( 'C:\NOTEPAD.lnk' ) );
end;
Прочитано 5444 раз