Executando arquivo tipo .bat no delphi XE2
Tenho uma procedure que executar um arquivo . bat e o mesmo me grava um arquivo de log que leio o conteúdo logo em seguida, só que ocorre que me gera uma mensagem de erro informando que o arquivo esta em uso, já tentei algumas formas de contorno o problema sem sucesso,
Agradeço se alguém puder ajudar.
procedure TfrmPrincipal.ExecutaBat;
var
arquivo :string;
begin
If (FileExists('C:\geramd5_' + nomearquivo + '.bat')=True) Then
Begin
arquivo := 'C:\geramd5_' + nomearquivo + '.bat' ;
ShellExecute(handle,'open',PChar(arquivo), '','',SW_SHOWNORMAL);
end;
end;
Agradeço se alguém puder ajudar.
procedure TfrmPrincipal.ExecutaBat;
var
arquivo :string;
begin
If (FileExists('C:\geramd5_' + nomearquivo + '.bat')=True) Then
Begin
arquivo := 'C:\geramd5_' + nomearquivo + '.bat' ;
ShellExecute(handle,'open',PChar(arquivo), '','',SW_SHOWNORMAL);
end;
end;
Itamar Souza
Curtidas 0
Respostas
Walter Desidera
10/01/2013
No seu código você testa se o arquivo existe, e depois usa a function ShellExecute para abrir o mesmo certo?. Antes disso você abre ele para grava alguma informação? Se for o caso você pode ter esquecido de fechar o arquivo depois da edição e ele acusa como aberto pelo delphi.
GOSTEI 0
André Celestino
10/01/2013
Também concordo com o Walter.
Pra acessar o arquivo novamente, você precisa garantir que ele esteja fechado.
Ou então é alguma ferramenta dentro do BAT que você está chamando e ela não está sendo finalizada corretamente.
Pra acessar o arquivo novamente, você precisa garantir que ele esteja fechado.
Ou então é alguma ferramenta dentro do BAT que você está chamando e ela não está sendo finalizada corretamente.
GOSTEI 0