Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Como saber si existe aplicación ?? (https://www.clubdelphi.com/foros/showthread.php?t=53510)

BlueSteel 22-02-2008 15:58:13

Como saber si existe aplicación ??
 
Hola

tengo una duda, quisiera ver si se puede preguntar al Pc o Sistema (mediante código claro esta...) si existe alguna aplicación determinada como Adobe Acrobat.. o PowerPoint o Word o Excel ?

Necesito realizar esta consulta, ya que estoy realizando una aplicación que me permita visualizar unos archivos desde un Cd.. Catalogo de Ventas... los archivos estan en formato.doc / .pdf y .ppt.... y lo que me gustaria es que si no tiene el Adobe Reader.. que lo instalará...

Espero me entiendan...

Salu2:p:D

dec 22-02-2008 17:08:07

Hola,

Hasta donde yo llego no hay nada "estándar" que puedas usar, así que el asunto pasa por mirar en el registro de Windows, tal vez revisar si existe algún archivo, se me ocurre también echar un vistazo en la lista de programas instalados... no debe haber una sola forma, y es posible que puedan combinarse varias soluciones para mayor seguridad.

Lepe 22-02-2008 17:20:04

Pero.... puede que el usuario no use el Word, sino el OpenOffice, o que no quiera la versión que tú suministras, eso de instalarlo automáticamente queda muy bonito pero fastidia mucho. ¿También vas a instalar el Office si no lo tiene? ;)

Lo más fácil es lo típico, hacer un shellExecute del archivo y poner un label diciendo que se necesita el programa tal o cual y que puede ser instalado previamente haciendo clic en el botón cual.

Edito: existen visualizadores de pdf, doc, ppt, etc que no necesitan tener instalados el office, sería buena idea incluir esos programas.

PD: Yo uso OpenOffice.

Saludos

rcarrillom 22-02-2008 17:41:07

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 :D. 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.

egostar 22-02-2008 17:56:31

Cita:

Empezado por rcarrillom (Mensaje 267895)
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 :D. 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

BlueSteel 22-02-2008 18:07:48

Cita:

Empezado por Lepe (Mensaje 267884)
Pero.... puede que el usuario no use el Word, sino el OpenOffice, o que no quiera la versión que tú suministras, eso de instalarlo automáticamente queda muy bonito pero fastidia mucho. ¿También vas a instalar el Office si no lo tiene?
Saludos

Hola... este.. no solo instalaría el Adobe Reader que es gratuito....

lo que pasa es que los archivos los estoy visualizando a través del componente TWebBrowser... y cuando no existe un programa para poder visualizar el archivo, la idea es que de un error personalizado y no que me salga esto

Se canceló la navegación a la página web.
Puede intentar lo siguiente:
Volver a escribir la dirección


la idea es que diga... no existe un programa asociado para visualizar los archivos de extención *.XXX...

BlueSteel 22-02-2008 23:02:36

demo... catalogo
 
Hola

Bueno, despues de buscar, pude realizar lo que necesito.. Aqui esta el Demo, aunque cuando lo ejecute en otros pcs tube un error, el cual fue que aunque estaba instalado el Acrobat Reader, no me visualizo los archivos.. y debe ser una configuración del equipo o algun Active X que se debe instalar...

Estoy pensando en utilizar otro componente, para que me solucione el problema de los archivos PDF.

Los documentos de power point los visualiza bien, aunque se demora un poco...

Hay que instalar en directorio Demo.... por razones de tamaño no adjunte Adobe para instalar...

bueno... eso seria por lo pronto

Salu2:p:D


La franja horaria es GMT +2. Ahora son las 20:19:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi