Digamos que você possua a seguinte estrutura de arquivos:
pasta
-->serviço.exe
-->arquivo.exe
Se você quiser executar o arquivo.exe a partir de uma função de serviço.exe como por exemplo:WinExec(PChar('arquivo.exe'), SW_MINIMIZE);
Este código não irá funcionar mesmo ambos estando na mesma pasta, pois o serviço não executa do diretório onde está o arquivo serviço.exe.
Para funcionar é necessário o seguinte procedimento:
ChDir(ExtractFilePath(Application.ExeName));
WinExec(PChar('arquivo.exe'), SW_MINIMIZE);
A procedure ChDir() serve para mudar o diretório atual onde o processo está ativo.Outra opção é:
WinExec(PChar(ExtractFilePath(Application.ExeName) + 'arquivo.exe'), SW_MINIMIZE);
Desta maneira é executado o programa arquivo.exe utilizado o caminho completo do executável.
Mas neste caso arquivo.exe ainda é executado em outra pasta e não onde este se encontra, então a opção Chdir() ainda é mais recomendada.
Até a próxima dica :D
0 comentários: