Ola pessoal,
Tenho um aplicativo que desenvolvi a muito tempo (2003) no Delphi que utilizo diariamente, porem a um ano atrás meu HD de backup (onde estava o código fonte) pifou e não consegui restaurar 100% dos arquivos desse código fonte, apenas arquivos parciais.
Já com a ideia de que vou ter que reescrever todo o programa de novo, já comecei o projeto em uma outra plataforma. Mais ainda vai demorar até estar 100%. Enquanto isso vou usando a ultima versão compilada.
Precisava de uma ajuda para alterar um PATH onde o programa salva e lê arquivos na rede, que foi compilada dentro da linha de código. a função em questão seria essa abaixo:
(Esse foi um dos arquivos do código fonte que consegui recuperar)
procedure TFrm_EntDocumentos.BtAdicionarClick(Sender: TObject);
var
nomefinal,pathfinal:string;
ano,mes,dia,hora,minuto,segundo,extensao:string;
begin
hora:=Copy(TimeToStr(Time),0,2);
minuto:=Copy(TimeToStr(Time),4,2);
segundo:=Copy(TimeToStr(Time),7,2);
hora:=Copy(TimeToStr(Time),0,2);
ano:=Copy(DateToStr(Date),7,4);
mes:=Copy(DateToStr(Date),4,2);
dia:=Copy(DateToStr(Date),0,2);
extensao:=ExtractFileExt(EdNomeArquivo.Text);
nomefinal:=ano+mes+dia+'-'+hora+minuto+segundo+'-'+EdPedido.Text+'-'+InttoStr(Random(100))+extensao;
pathfinal:='\\SERVIDOR\producao$\'+EdTipoArquivo.Text+'\'+nomefinal;
try
if EdTipoArquivo.Text='CVC' then
begin
Dm.SQLComando.ConnectionString:=Dm.SQLCvc.ConnectionString;
DM.SQLComando.CommandText:=('INSERT INTO TbArquivos (NomeArquivo, CodModVeiculo) VALUES ('+
#39+nomefinal+#39+','+
#39+EdPedido.Text+#39+');');
DM.SQLComando.Execute;
end else
begin
Dm.SQLComando.ConnectionString:=Dm.SQLProducao.ConnectionString;
DM.SQLComando.CommandText:=('INSERT INTO TbArquivos (CodPedido, Data, ' +
'NomeArquivo, Observacao, Tipo) VALUES ('+
#39+EdPedido.Text+#39+','+
#39+ano+'/'+mes+'/'+dia+#39+','+
#39+nomefinal+#39+','+
#39+MObservacao.Lines.Text+#39+','+
#39+EdTipoArquivo.Text+#39+');');
DM.SQLComando.Execute;
end;
if EdTipoArquivo.Text='PRE-CADASTRO IMPLEMENTO' then
begin
Dm.SQLComando.ConnectionString:=Dm.SQLProducao.ConnectionString;
DM.SQLComando.CommandText:=('UPDATE TbProducao SET Pre_Cadastro = 1 WHERE CodPedido = '+#39+EdPedido.Text+#39);
DM.SQLComando.Execute;
end;
try
FileSetReadOnly(EdNomeArquivo.Text,true);
if CBMover.Checked then
begin
if not MoveFile(PChar(EdNomeArquivo.Text),PChar(pathfinal)) then
raise Exception.Create('Erro ao tentar salvar o arquivo!');
end else
if not CopyFile(PChar(EdNomeArquivo.Text),PChar(pathfinal),False) then
raise Exception.Create('Erro ao tentar salvar o arquivo!');
except
DM.SQLComando.CommandText:=('DELETE FROM TbArquivos WHERE NomeArquivo = '+#39+nomefinal+#39);
Dm.SQLComando.Execute;
raise Exception.Create('Erro ao tentar salvar o arquivo!');
end;
except
on E : Exception do
begin
ShowMessage('Tipo do Erro = '+E.ClassName+#13+'Messagem do Erro = '+E.Message);
end else ShowMessage('Erro desconhecido!');
end;
end;
No começo da função tem a variável "pathfinal" e esta direcionando os arquivos para o diretório \\SERVIDOR\producao$, queria poder alterar esse path, pois a topologia da rede aqui foi alterada e não existe mais esse caminho.
Já tentei utilizar os programas abaixo para tentar achar a "string" para modifica-la no executável, mais sem sucesso.
Win32dasm
dede32
Resource Hacker
Hex-Rays IDA Pro
Ollydbg
Hiew32
Não sou um conhecedor de assembly de PC x86 ou x64, inclusive estou assistindo os cursos aqui do site para ver se ajuda. Mais tenho conhecimento de asm de microcontroladores com PIC e Atmel.
Alguém poderia me dar uma luz de como alterar esse executável ?? precisava resolver isso enquanto o novo programa não fica pronto....
Obrigado!!!!