Ir para conteúdo
Fórum Script Brasil
  • 0

Como Faço Um Tratamento De Error Nesse Comando?


mariquito

Pergunta

como faço um tratamento de error nesse "WinExec('comando', SW_SHOW); " comando...tipo...c houver error ele executa outro comando

eu tentei esse e não deu certo...alguém sabe como?

Try

Try

WinExec('comando', SW_SHOW);

Except

showmessage('ERROR');

End;

Finally

showmessage('fim');

End;

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
como faço um tratamento de error nesse "WinExec('comando', SW_SHOW); " comando...tipo...c houver error ele executa outro comando

eu tentei esse e não deu certo...alguém sabe como?

Try
  Try
    WinExec('comando', SW_SHOW);
  Except
    showmessage('ERROR');
  End;
Finally
  showmessage('fim');
End;
a tentativa de execução de um programa utilizando WinExec não gera uma Exception. você deve avaliar o resultado da função. Veja o que diz o help: "Return Value If the function succeeds, the return value is greater than 31. If the function fails, the return value is one of the following error values: Value Meaning 0 The system is out of memory or resources. ERROR_BAD_FORMAT The .EXE file is invalid (non-Win32 .EXE or error in .EXE image). ERROR_FILE_NOT_FOUND The specified file was not found. ERROR_PATH_NOT_FOUND The specified path was not found." Ou seja, você testa o retorno da função (você pode até utilizar uma variável para armazená-la) e se ele for ele for maior que 31 não houve qualquer erro. Do contrário, pode ser alguns dos citados no help. Ficaria algo assim:
...
  Erro := WinExec('comando', SW_SHOW);
  if Erro <= 31 then
    case Erro of
      0 : 
        ErroMsg := 'The system is out of memory or resources.';
      ERROR_BAD_FORMAT : 
        ErroMsg := 'The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).';
      ERROR_FILE_NOT_FOUND :
        ErroMsg := 'The specified file was not found.';
      ERROR_PATH_NOT_FOUND :
        ErroMsg := 'The specified path was not found.';
    else
      ErroMsg := 'Erro não tratado';
    end
  else
    ErroMsg := 'Fim';
  ShowMessage(ErroMsg);
...

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...