Re: [delphi-br] Gravar informações dentro do executável / DLL

2009-11-26 Por tôpico EmbarcaDelphi
Só uma observação aí... Já testou num computador com antivírus??? Pode 
ser que ele não autorize pensando ser um trojan...
Alguém já testou?


Alemão escreveu:
 Claro, vamos lá:

 para gravar as informações no arquivo que eu quero, estou usando um outro
 programa. Não da pro executavel gravar as informações nele mesmo, ja que
 está em uso. Portanto o meu programa de instalação é que está gravando.
 Segue o processo pra gravação:

 function GravarResourceInfo(const FileName, NomeRecurso, Texto: string):
 boolean;
 var hRes : THandle;
 cHD : String;
 Begin
   cHD := AnsiUpperCase(Texto);
   hRes := BeginUpdateResource(pchar(FileName),False);
   if hRes  0 then
   begin
 result := true;
 UpdateResource(hRes,RT_RCDATA,pchar(AnsiUpperCase(NomeRecurso)), 0 ,
 Pointer(cHD), StrLen(PCHAR(cHD)) + 1);
 If EndUpdateResource(hRes,False) then
   Result := true
 else
   Result := false;
   end
   else
 result := false;
 end;

 onde: FileName é o nome do arquivo que será atualizado.
  NomeRecurso é o nome que você irá dar para o recurso armazenado,
 para poder ler a partir do aplicativo.
  Texto é o conteúdo que você quer gravar. Pode ser qualquer
 informação.



 Agora dentro do meu executavel de programa, vou ler o conteúdo gravado no
 resource. Esta é a função:

 function LerResourceInfo(NomeRecurso: string): string;
 var ResData: HGLOBAL;
 ResInfo: HRSRC;
 Begin
   Result := '';
   ResInfo := FindResource(hInstance, pchar(AnsiUpperCase(NomeRecurso)),
 RT_RCDATA);
   if ResInfo  0 then
   begin
 ResData := LoadResource(hInstance, ResInfo);
 if ResData  0 then
 begin
   try
 Result := PChar(LockResource(ResData));
 UnlockResource(ResData);
   finally
 FreeResource(ResData);
   end;
 end;
   end;
 end;


 Funcionou muito bem.

 O legal é que a partir daí vc pode inclusive criptografar o texto, para que
 ninguem consiga ver o seu conteúdo com um editor de recursos (Ex: Resource
 Explorer).

 ps.: para testar se deu certo mesmo, é so abrir o seu programa alterado
 neste editor de recursos e ir em RCData, que la vai estar o que vc acabou de
 criar.


 2009/11/26 José Henrique (Zote) z...@bludata.com.br

   




Re: [delphi-br] Gravar informações dentro do executável / DLL

2009-11-25 Por tôpico berdam
configure iso numa tabela com parâmetros na base de dados

Alemão escreveu:

 Como faço para gravar informações dentro de um executável ou dll ja
 compilado? Pode a partir de outro executável.

 Como estou preocupado com copias de arquivos de meus sistemas para serem
 utilizados em outros sistemas / clientes, gostaria de gravar algumas
 informações dentro destes executpaveis no momento da instalação, ou em 
 algum
 outro momento. Ou seja, cada cliente ficaria com os arquivos com uma
 informação diferente para que eu possa idenficar posteriormente caso seja
 preciso.

 O problema é que o arquivo já está compilado. A minha ideia é gravar
 diretamente no executavel mesmo, sem nenhum arquivo adicional, tipo quando
 você grava as informações de versão e empresa no programa, lá em 
 project -
 options - Version info.

 Compilar uma versão diferente para cada cliente no momento do 
 lançamento da
 versão não é uma opção, pois são muitos clientes.

 Alguem sabe alguma maneira de se fazer isso, ou ainda alguma outra ideia
 para esse controle que estou querendo implementar?

 Obrigado.

 [As partes desta mensagem que não continham texto foram removidas]

 





-- 
 FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM 

* Para ver as mensagens antigas, acesse:
http://br.groups.yahoo.com/group/delphi-br/messages

* Para falar com o moderador, envie um e-mail para:
delphi-br-ow...@yahoogrupos.com.br
Links do Yahoo! Grupos

* Para visitar o site do seu grupo na web, acesse:
http://br.groups.yahoo.com/group/delphi-br/

* Para sair deste grupo, envie um e-mail para:
delphi-br-unsubscr...@yahoogrupos.com.br

* O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html