Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Saber si un programa esta hecho en Delphi

A veces podemos tener curiosidad por saber si un programa esta echo en Delphi, para eso podemos utilizar una marca que deja el compilador en el TimeStamp del ejecutable.

Código Delphi [-]
function HechoEnDelphi(Filename: string): Boolean;
const
  BorlandMagicTimeStamp = $2A425E19;
var
  hFile: THandle;
  BytesRead: DWORD;
  ImageDosHeader: TImageDosHeader;
  ImageNtHeaders: TImageNtHeaders;
begin
  Result := FALSE;
  hFile := CreateFile(PChar(Filename), GENERIC_READ, FILE_SHARE_READ, nil,
    OPEN_EXISTING, 0, 0);
  if (hFile <> INVALID_HANDLE_VALUE) then
  begin
    if ReadFile(hFile, ImageDosHeader, SizeOf(TImageDosHeader),BytesRead, nil) then
      if BytesRead = SizeOf(TImageDosHeader) then
        if ImageDosHeader.e_magic = IMAGE_DOS_SIGNATURE then
          if SetFilePointer(hFile, ImageDosHeader._lfanew, nil, FILE_BEGIN) <> $FFFFFFFF then
            if ReadFile(hFile, ImageNtHeaders, SizeOf(TImageNtHeaders), BytesRead, nil) then
              if BytesRead = SizeOf(TImageNtHeaders) then
                if ImageNtHeaders.Signature = IMAGE_NT_SIGNATURE then
                  Result:= ImageNtHeaders.FileHeader.TimeDateStamp = BorlandMagicTimeStamp;
    CloseHandle(hFile);
  end;
end;

Ejemplo de uso:
Código Delphi [-]
  // Vamos a comprobar nuestro propio programa
  if HechoEnDelphi(ParamStr(0)) then
    ShowMessage('Sorpresa, estoy hecho en delphi !!!');
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 13:20:03.


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