Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-05-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
versión de una dll

Hola, de casualidad, alguno de ustedes sabe como puedo obtener la versión de una dll?.

de antemano, gracias.
__________________
Alberto C.
Responder Con Cita
  #2  
Antiguo 27-05-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 27
__cadetill Va por buen camino
Para un exe te valdria esta funcion

Código:
   function GetAppVersion : string;
   var Size, Size2: DWord;
       Pt, Pt2: Pointer;
   begin
        Size := GetFileVersionInfoSize(PChar (ParamStr (0)), Size2);
        if Size > 0 then
         begin
              GetMem (Pt, Size);
              try
                 GetFileVersionInfo (PChar (ParamStr (0)), 0, Size, Pt);
                 VerQueryValue (Pt, '\', Pt2, Size2);
                 with TVSFixedFileInfo (Pt2^) do
                  begin
                       Result:= ' Versión '+
                                IntToStr (HiWord (dwFileVersionMS)) + '.' +
                                IntToStr (LoWord (dwFileVersionMS)) + ' Build ' +
                                IntToStr (HiWord (dwFileVersionLS)) + '.' +
                                IntToStr (LoWord (dwFileVersionLS));
                  end;
              finally
                     FreeMem (Pt);
              end;
         end;
   end;
Nunca lo he probado en una dll, pero... no estaria de menos probarlo. Si lo pruebas y te sirve, ya nos lo diras
Responder Con Cita
  #3  
Antiguo 28-05-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
Ok, mil Gracias Cadetelli, lo voy a probar y con gusto les aviso!
__________________
Alberto C.
Responder Con Cita
  #4  
Antiguo 04-06-2003
jafl1965 jafl1965 is offline
Miembro
 
Registrado: may 2003
Ubicación: Morelia, México
Posts: 170
Poder: 24
jafl1965 Va por buen camino
Bueno Ingacg, y por fin sirvió para una dll?
Responder Con Cita
  #5  
Antiguo 04-06-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
Ups!, siento decepcionarlos, pero nop..., de hecho creo que no fuí muy explícito...hagan de cuenta que yo voy a cargar una dll con un loadlibrary('c:\MIDll.dll'), pero necesito saber la versión de la dll que quiero cargar (en ésta caso le versión de c:\MIDll.dll), para que en base a la versión haga los ajustes en mi programa..

Saludos a todos
__________________
Alberto C.
Responder Con Cita
  #6  
Antiguo 04-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Yo he probado este código, que es el que ofrece cadetill con algún cambio sutil, y funciona.

Código:
function GetFileVersion( AFileName : String ) : string;
var
  Size,
  Size2 : DWord;
  Pt,
  Pt2   : Pointer;
begin
  Size := GetFileVersionInfoSize(PChar(AFileName), Size2);
  if Size > 0 then
  begin
    GetMem(Pt, Size);
    try
      GetFileVersionInfo (PChar(AFileName), 0, Size, Pt);
      VerQueryValue (Pt, '', Pt2, Size2);
      with TVSFixedFileInfo (Pt2^) do
        Result:= Format('Versión %d.%d Build %d.%d', [ HiWord(dwFileVersionMS),
                                                       LoWord(dwFileVersionMS),
                                                       HiWord(dwFileVersionLS),
                                                       LoWord(dwFileVersionLS)] );
    finally
      FreeMem (Pt);
    end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := GetFileVersion( 'C:\WINDOWS\Moricons.dll' );
end;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 04-06-2003
ingacg ingacg is offline
Miembro
 
Registrado: may 2003
Ubicación: México D.F.
Posts: 36
Poder: 0
ingacg Va por buen camino
Orale!, si funcionó, perfectamente!

Les agradezco a delphi.com.ar y a Cadetelli, por tomarse la molestia de contestar esta duda.

Saludos desde México
__________________
Alberto C.
Responder Con Cita
  #8  
Antiguo 24-06-2003
tango01 tango01 is offline
Miembro
 
Registrado: jun 2003
Ubicación: Mar del Plata - Argentina
Posts: 46
Poder: 0
tango01 Va por buen camino
siguiendo con este tema.....

como puedo saber si una dll esta registrada en windows.
y como puedo saber el path a la dll registrada.

llendo a lo concreto.

mi programa necesita, por ejemplo midas.dll pero yo antes de registrar mi dll quisiera saber si ya esta registrada... para luego obtener el path y la version y en base a esto decidir si registrar o no la version de la dll que trae mi programa....

muy amables por su ayuda..

gracias de anteman.
__________________
El secreto de la libertad está en no tener miedo.
Responder Con Cita
  #9  
Antiguo 24-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Poder: 29
delphi.com.ar Va camino a la fama
Ante todo te comento que desconozco si MIDAS necesita estar registrada pero te cuento que no todas las DLLs se registran, si quieres aquí te cuentan que DLL´s son "registrables" y no son mas que DLL´s Win32, con un juego específico de procedimientos y funciones que les da esa flexibilidad y funcionalidad. Bueno la idea de registrar los Objetos COM es que podamos acceder a estos por su GUID, y el nombre de del archivo que contiene estos objetos puede cambiar, te recomiendo leer la ayuda de funciones como QueryPathOfRegTypeLib y LoadRegTypeLib.



Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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 21:41:01.


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