VISUAL BASIC RSYNC

FUJIOKA 18/05/2004 21:18:27
#25383
Sou iniciante no visual basic estou tentando pegar o retorno de valor do rsync assim:
Text1.Text = Shell("d:syncsync -avz 1 10.0.1.3::foto")
só que toda vez ele me retorna um valor diferente e nao o errorlevel do rsync que seria zero se executasse com sucesso ou diferente de zero se desse erro e assim eu executaria de novo o comando. Alguem sabe como faze-lo?
USUARIO.EXCLUIDOS 19/05/2004 00:03:03
#25394
Resposta escolhida
FUJIOKA,
O valor retornado pela função Shell é um Task ID (PID - número do processo) um número único que identifica um programa em execução e não o código de retorno (saida) geraodo pelo programa chamado (nesse caso o rsync).
USUARIO.EXCLUIDOS 19/05/2004 12:11:35
#25472

Não lembro de ter visto em lugar algum como recuperar códigos de retorno de aplicações chamadas a partir VB.

Com a API GetLastError é possivel obter código de erros mais não sei se possivel obter o RC de uma aplicação.
Mais uma coisa: O Shell dispara o seu programa (rsync) de forma assincrona, ou seja, ele cria um processo no SO para o programa e retorna ao VB, ele não aguarda o programa rsync encerrar.

Para aguardar o encerramento do rsync você deve usar as APIs CreateProcess e WaitForSingleObject... e GetLastError (se é que GetLastError ira retorna o código usado no exit do rsync !? )...

Tópico encerrado , respostas não são mais permitidas