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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-12-2009
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Insertar y obtener la fecha de build.

Buenas gente.

Esto es algo que ya deben haber preguntado cuarenta mil veces, pero no he encontrado nada al respecto.

Lo que me gustaría hacer es, de alguna manera AUTOMÁTICA, meter en el .EXE la fecha de buildeo. Así en la ventana de Acerca De yo puedo mostrar la versión exacta (ya sé cómo hacer eso) y la fecha de la última compilación.

¿Alguna idea? ¿URL? ¿Consejo? Lo que sea...

Miles de gracias.

Saludongos.

Última edición por Lord Delfos fecha: 21-12-2009 a las 22:54:15.
Responder Con Cita
  #2  
Antiguo 21-12-2009
Avatar de afunez2007
afunez2007 afunez2007 is offline
Miembro
 
Registrado: oct 2007
Ubicación: La Ceiba, Honduras
Posts: 170
Poder: 17
afunez2007 Va por buen camino
Lightbulb

Yo lo hago con esta funcion:

Código Delphi [-]
function GetFileDate(TheFileName: string): Double;
var
 FHandle: integer;
begin
 FHandle := FileOpen(TheFileName, 0);
 try
   Result := FileDateToDateTime(FileGetDate(FHandle));
 finally
   FileClose(FHandle);
 end;
end;

y para usarlo utilizas esto:
Código Delphi [-]
procedure TForm1.BitBtn1Click(Sender: TObject);
var fecha1:TDateTime;
begin
fecha1:= GetFileDate(ExtractFilePath(Application.ExeName)+'TuApp.exe');
end;
__________________
Si robas, roba un beso, si mientes que sea por amor y si engañas que sea a la muerte!!
Responder Con Cita
  #3  
Antiguo 21-12-2009
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Gracias, afunez2007.

Lo que pasa con este método tuyo es que si la fecha de archivo llega a cambiar (cosa que puede pasar con mucha facilidad) entonces mi ejecutable va a mostrar una fecha incorrecta.

Pos eso me interesa algún método que "grabe a fuego" en mi ejecutable la fecha y la hora de compilación.

Pero gracias de todos modos.
Responder Con Cita
  #4  
Antiguo 22-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Hay tres fechas que se guardan en el archivo, la de creación, la de última modificación y la del último acceso.
Podrías utilizar la primera, de forma que si el archivo se modifica, cambiará la segunda, pero no la primera.

Aquí en mi página tienes un truco de cómo obtener esas tres fechas;
Fechas de un fichero (creación, modificación y últ. acceso)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 22-12-2009
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo uso esto, por si acaso te sirve:

Código:
lbVersion.Caption := 'v'+GetmVersion+
'-'+DateToStr(FileDateToDateTime(FileAge(paramStr(0))));



// -------------------------------------
function GetmVersion: string;
var
  InfoSize, H, RsltLen: Cardinal;
  VersionBlock: Pointer;
  Rslt: PVSFixedFileInfo;
begin
  InfoSize := GetFileVersionInfoSize(PChar(Application.ExeName), H);
  VersionBlock := AllocMem(InfoSize);
  try
    GetFileVersionInfo(PChar(Application.ExeName), H, InfoSize, VersionBlock);
    VerQueryValue(VersionBlock, '\', Pointer(Rslt), RsltLen);
    Result := Format('%d.%d.%d.%d', [
    Rslt.dwProductVersionMS div 65536,
    Rslt.dwProductVersionMS mod 65536,
    Rslt.dwProductVersionLS div 65536,
    Rslt.dwProductVersionLS mod 65536]);
  finally
    FreeMem(VersionBlock);
  end;
end;
Responder Con Cita
  #6  
Antiguo 22-12-2009
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Gracias a todos muchach@s. Pero el problema sigue siendo el mismo. Cualquier fecha que tenga el archivo .exe, sea de creación, acceso o modificación, depende exclusivamente del sistema operativo. Hay ocasiones en las que estas fechas se cambian al pasar de un medio a otro (copia en CD, FTP, etc.) y entonces se me jode todo el sistema...

Teóricamente los ejecutables tienen un campo fecha (que se obtiene con la API GetFileVersionInfo) pero Delphi no lo setea...

Habrá que seguir pensando, parece...
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
insertar fecha con ado y Tquery microbiano Conexión con bases de datos 5 12-11-2009 19:26:01
obtener solo la fecha en formato fecha y sin hora BlueSteel SQL 14 09-05-2008 16:42:19
Problema insertar fecha Nomad SQL 17 17-01-2008 22:50:46
Insertar fecha desde NxDatePicker JcTaztoman Varios 0 26-09-2007 18:30:18
Como insertar fecha en un proyecto Adonis Varios 2 18-09-2007 03:52:02


La franja horaria es GMT +2. Ahora son las 07:38:07.


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