Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-10-2005
CRIS CRIS is offline
Miembro
 
Registrado: jul 2003
Posts: 63
Poder: 21
CRIS Va por buen camino
Lo tengo casi solucionado el problema es que me da la descripcion y demas datos del archivo pero solo del archivo que lleva este codigo, no se como decirle una ruta para que lea los datos del archivo que yo quiera.

Código Delphi [-]
function  GetAppInfo(De:string):string;

  {Se pueden pedir los siguientes datos:
     CompanyName
     FileDescription
     FileVersion
     InternalName
     LegalCopyright
     OriginalFilename
     ProductName
     ProductVersion
  }

  type
    PaLeerBuffer = array [0..MAX_PATH] of char;

  var
   Size, Size2 : DWord;
   Pt, Pt2     : Pointer;
   Idioma      : string;

   begin
     Result:='';
     Size := GetFileVersionInfoSize(PChar (Application.Exename), Size2);
     if Size > 0 then
     begin
       GetMem (Pt, Size);
       GetFileVersionInfo (PChar (ParamStr (0)), 0, Size, Pt);
       {Obtenemos la cadena de translacion, requerida para obtener el resto
       de datos del Versioninfo}
       VerQueryValue( Pt, '\VarFileInfo\Translation',Pt2, Size2);
       Idioma:=IntToHex( DWord(Pt2^) ,8 );
       {Le damos la vuelta (Es windows, que quieres...}
       Idioma:=Copy(Idioma,5,4)+Copy(Idioma,1,4);

       {Pedimos la info requerida...}
       VerQueryValue( Pt,
                      Pchar('\StringFileInfo\'+
                      Idioma+'\'+
                      De),
                      Pt2, Size2);
       if Size2 > 0 then
       begin
         {Y la devolvemos}
         Result:=Copy(PaLeerBuffer(Pt2^),1,Size2);
       end else
         raise Exception.Create( 'No existe esa informacion en este ejecutable'+
                                 #13+
                                 'There are not this info in this executable');
       FreeMem (Pt);
     end else
       raise exception.Create ( 'Lo siento, no hay VersionInfo disponible '+
                                'en este ejecutable.'+#13+
                                'Sorry there are not VersionInfo available'+
                                'in this executable.');
   end;
{$R *.dfm}

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
label1.Caption := GetAppInfo ('FileDescription');
end;


Sabeis como y donde poner la ruta del archivo??

Salu2.CRIS.
Responder Con Cita
  #2  
Antiguo 09-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Sustituye en el código tanto "Application.ExeName" como "ParamStr(0)" por la ruta del archivo de que quieras obtener la información. Podrías, en todo caso, tratar de adaptar el código de forma que pudieras llamar a la función indicando la ruta del ejecutable en cuestión, así como la información que precises obtener. De otra manera te será, en mi opinión, complicado utilizar dicho código.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 09-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.114
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

CRIS, preparé en base al código de más arriba un sencillo componente que tal vez pueda resultar de tu interés, o, a lo menos, ofrecerte alguna idea. Lo encontrarás dentro del paquete "DecComp" que puedes encontrar aquí mismo. Le llamé "TInfoExe" y en su código fuente te mencioné a modo de agradecimiento por darme la idea para llevarlo a cabo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 09-10-2005
CRIS CRIS is offline
Miembro
 
Registrado: jul 2003
Posts: 63
Poder: 21
CRIS Va por buen camino
Muchas gracias lo pruebo en un rato y te cuento.

Salu2.CRIS.
Responder Con Cita
  #5  
Antiguo 10-10-2005
CRIS CRIS is offline
Miembro
 
Registrado: jul 2003
Posts: 63
Poder: 21
CRIS Va por buen camino
Un millon de gracias dec, es justo lo que necesitaba pero no pense que te ibas a molestar hasta el punto de llegar a montar un componente para mi, aunque seguro que ahora hay gente que lo agracede ya que es verdaderamente una pasada, le pides todo lo que quieras al fichero y te lo da.

Un millon de gracias de nuevo, muy agradecido.

pd. gracias tambien por nombrarme en el componente.

Salu2.CRIS.
Responder Con Cita
  #6  
Antiguo 22-09-2012
viveba viveba is offline
Miembro
 
Registrado: nov 2006
Posts: 24
Poder: 0
viveba Va por buen camino
sobre el componente TInfoExe

Hola Dec, tal vez sea tarde ya para seguir este tema, pero estoy interesado en el componente que comentás, y no puedo encontrarlo, si aún existe te agradecería mucho me digas cómo puedo acceder a él.

Gracias de antemano.
Responder Con Cita
  #7  
Antiguo 27-09-2012
Avatar de juanlaplata
juanlaplata juanlaplata is offline
Miembro
 
Registrado: ene 2007
Ubicación: La Plata, Bs. As. (Argentina)
Posts: 212
Poder: 18
juanlaplata Va por buen camino
Lo puedes encontrar en el FTP dentro de un conjunto de componentes deccomp.zip
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 01:46:09.


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
Copyright 1996-2007 Club Delphi