Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #9  
Antiguo 13-10-2006
david duarte david duarte is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 19
david duarte Va por buen camino
Hola a todos!!!

tengo el siguiente problema, quiero checar las versiones del programa que estoy haciendo, ya tengo la funcion para verificar las versiones de los archivos (estos archivos estan en diferentes computadores) que es la siguiente:

Código Delphi [-]
function Tform1.VersionExe(const ruta: string) : string;
var
  Pt, Pt2: Pointer;
  Size, Size2: DWord;
begin
  Result := '';
  if not FileExists(ruta) then Exit;
  Size := GetFileVersionInfoSize(PChar(ruta), Size2);
  if (Size > 0) then begin
    GetMem(Pt, Size);
    try
      GetFileVersionInfo(PChar(ruta), 0, Size, Pt);
      VerQueryValue (Pt, '\', Pt2, Size2);
      with TVSFixedFileInfo (Pt2^) do begin
        Result :=
        IntToStr(HiWord(dwFileVersionMS))+'.'+
        IntToStr(LoWord(dwFileVersionMS))+'.'+
        IntToStr(HiWord(dwFileVersionLS))+'.'+
        IntToStr(LoWord(dwFileVersionLS));
      end;
    finally
      FreeMem(Pt);
    end;
  end;
end;

pero el problema es que siempre el Size 2 me da cero y por consiguiente nunca entra en los siguientes renglones y no me da nada en la version.

Alguien sabe porque???

Tengo otra funcion que sirve para lo mismo, pero solamente me compara los archivos locales, la funcion es la siguiente

Código Delphi [-]
GetVersion: string;
var
  VerInfoSize: DWORD;
  VerInfo: Pointer;
  VerValueSize: DWORD;
  VerValue: PVSFixedFileInfo;
  Dummy: DWORD;
begin
  Result := '';
  VerInfoSize := GetFileVersionInfoSize(PChar(ruta), Dummy);
  if VerInfoSize = 0 then Exit;
  GetMem(VerInfo, VerInfoSize);
  GetFileVersionInfo(PChar(ParamStr(0)), 0, VerInfoSize, VerInfo);
  VerQueryValue(VerInfo, '\', Pointer(VerValue), VerValueSize);
  with VerValue^ do
  begin
    Result := IntToStr(dwFileVersionMS shr 16);
    Result := Result + '.' + IntToStr(dwFileVersionMS and $FFFF);
    Result := Result + '.' + IntToStr(dwFileVersionLS shr 16);
    Result := Result + '.' + IntToStr(dwFileVersionLS and $FFFF);
  end;
  FreeMem(VerInfo, VerInfoSize);
end;

la verdad es que le busque y busque y no le encuentro.

Ya le hice cambios a la segunda, pero no se puede, me marcan errores.

Si alguien sabe en donde puedo encontrar la solución, se los agradeceria.

Gracias!!!!
Saludos!!!
Responder Con Cita
 



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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Actualizar programa turminator Internet 1 15-05-2006 01:49:34
Actualizar los puestos de un programa instalado en el servidor VRO Conexión con bases de datos 3 19-07-2005 20:53:16
Ejecutar un programa externo desde un programa de Delphi Roger_Fernandez Varios 3 02-09-2004 18:05:36
Ejecutar un programa DENTRO de otro programa seduerey Varios 8 12-11-2003 13:56:20
actualizar mi programa nicocer SQL 1 27-10-2003 12:16:47


La franja horaria es GMT +2. Ahora son las 09:33:36.


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