![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#9
|
||||
|
||||
|
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. |
|
|
|