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