Ver Mensaje Individual
  #9  
Antiguo 24-06-2003
Avatar de ACK
ACK ACK is offline
Miembro
 
Registrado: jun 2003
Ubicación: Castellón
Posts: 27
Reputación: 0
ACK Va por buen camino
Hola Gemma,

Creo que esto es lo que necesitas ...

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ShlObj, StdCtrls, ExtCtrls, ActiveX ;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
CD: TOpenDialog;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
AccesoDirecto : IShellLink;
end;

var
Form1: TForm1;

const
IID_IPersistFile : TGUID = (
D1:$0000010B;D2:$0000;D3:$0000;
D4: ($C0,$00,$00,$00,$00,$00,$00,$46));

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
CoInitialize( Nil );
CoCreateInstance( CLSID_ShellLink, Nil, CLSCTX_INPROC_SERVER,
IID_IShellLinkA, AccesoDirecto );
end;

procedure TForm1.Button1Click(Sender: TObject);
var
PF : IPersistFile;
parametro : array[0..MAX_PATH] of char;
Visualization : integer;
Datos : TWin32FindData;
begin
Cd.Title := 'Seleccione el acceso directo a abrir';
Cd.Filter := 'Accesos directos (*.lnk)|*.lnk';
if cd.execute then
begin
AccesoDirecto.QueryInterface( IID_IPersistFile, PF );
PF.Load( StringToOleStr( Cd.FileName ), 0 );
AccesoDirecto.GetPath( Parametro, MAX_PATH, Datos, 0 );
edit1.text := Parametro;
end;
end;

end.


Espero que te funcione.

Saludos al foro.
Responder Con Cita