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> > > > Alemão, compartilha ai :D > -- > José Henrique (Zote) > Analista de TI > Bludata Software > > 2009/11/26 Alemão <forumdel...@gmail.com <forumdelphi%40gmail.com>> > > > > > > > > Consegui resolver o problema. > > > > Estou gravando varias informações criptografadas dentro do próprio > > executável, no momento da instalação. Encontrei uma rotina na internet > que > > acrescenta informações na parte de resources dos programas. > > > > Ficou muito legal. No momento da instalação eu gravo essas informações > > dentro de cada executavel e quando eles vão executar fazem a checagem das > > informações. . > > > > Obrigado pelas sugestões de todos. > > > > 2009/11/25 berdam <berdamzi...@yahoo.com.br > > <berdamzinho%40yahoo.com.br><berdamzinho% > 40yahoo.com.br>> > > > > > > > > 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 >>>>> > > > > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > [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