Cita:
Empezado por rcarrillom
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
public
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