Ver Mensaje Individual
  #5  
Antiguo 22-02-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Cita:
Empezado por rcarrillom Ver Mensaje
Saludos al foro.

Una de las maneras sería mirar en el registro de güindous si está registrada la extensión de fichero que tú desees mostrar en la clave HKEY_CLASSES_ROOT\; si no la encuentras ya presentas en pantalla el mensaje que se necesita instalar un programa asociado y si tienes el instalador a la mano iniciar su instalación, previo permiso del usuario . Con el ShellExecute() es el SO quien se encarga de poner el mensaje y opcionalmente crear una asociación si ya tienes otro programa instalado y compatible con el fichero.
Efectiamente, ahí se encuentran las asociaciones de los archivos, para complementar lo dicho por nuestro amigo rcarrillom aquí una pequeña aplicacion que te muestra cual es el programa predeterminado.

Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Registry, StdCtrls, Buttons, ExtCtrls;

type
  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    RadioGroup1: TRadioGroup;
    procedure BitBtn1Click(Sender: TObject);
    procedure RadioGroup1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  Registro: TRegIniFile;
  Extension,Programa: String;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Registro := TRegIniFile.Create('');
  Registro.RootKey := HKEY_CLASSES_ROOT;
  Programa := Registro.ReadString(Extension, '', '');
  ShowMessage(Programa);
  Registro.Free;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
  case RadioGroup1.ItemIndex of
     0: Extension := '.doc';
     1: Extension := '.ppt';
     2: Extension := '.xls';
     3: Extension := '.pdf';
  end;
end;

end.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita