Pergunta

Estou trabalhando em atualizações para um aplicativo de captura de tela.Estamos usando um controle ActiveX para extrair telas de um mainframe IBM.O programa de mainframe geralmente trava e trava o controle ActiveX, fazendo com que nosso aplicativo trave.Não temos acesso ao mainframe ou ao código-fonte do ActiveX.Não vamos escrever nosso próprio controle ativo x.

Qual é a melhor maneira de encapsular um controle ActiveX para detectar travamentos do aplicativo com o controle para que possamos encerrar o processo e reiniciar com o código?

Devo criar 2 aplicativos separados?Um como controlador que verifica o outro e mata/reinicia o processo quando ele trava?

Eles teriam que estar em domínios de aplicativos separados?É possível que dois programas se comuniquem mesmo que estejam em domínios de aplicativos separados?

Foi útil?

Solução

Você pode iniciar um executável com System.Diagnostics.Process.Start().Isso retorna um objeto Process com uma propriedade Responding que você pode usar para verificar periodicamente se o processo ainda está ativo.

Você precisará de dois aplicativos separados para fazer isso.E o aplicativo que você está monitorando precisa ter uma janela principal porque o monitoramento funciona verificando se o aplicativo ainda processa mensagens da fila de mensagens da janela principal.Esta é a mesma maneira que o Windows sabe para adicionar "Não está respondendo" ao título de uma janela

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top