• 0
Sign in to follow this  
Boasfesta

Usando a API SendMessage para verificar uma janela de erro

Question

Olá,

Eu tenho um programa que dá erros constantemente, porém eu não consigo interagir com ele via outro programa, e este programa deve ficar ligado direto por isso preciso de algo que reinicie ele caso ocorra um erro enquanto eu estou dormindo, dei uma olhada na internet e achei um tutorial pra verificar a janela de erro usando a API SendMessage, mas eu não sei mais aonde achar, se eu conseguir verificar a janela de erro consigo dar um jeito de fazer esse programa se reiniciar, alguém ai conhece algum modo de verificar a janela de erro do programa ou algo que possa me ajudar?

Share this post


Link to post
Share on other sites

5 answers to this question

Recommended Posts

  • 0

Este conteúdo pode ajudar-te: http://www.macoratti.net/vb_api.htm

Agora, para verificar a janela de erro, acho que você teria que usar a FindWindow().

E se essa mensagem for como uma MsgBox() comum, que você pode fechar com um simples ENTER, se você quiser sumir com ela, pode focar a janela (com a função SetForegroundWindow()) e usar um SendKeys {ENTER} para fechar, possivelmente, então, sem necessidade da SendMessage().

Share this post


Link to post
Share on other sites
  • 0

Obrigado pela resposta mas isto é oque estou fazendo atualmente kuroi

Mas eu não abro apenas 1, eu abro mais de 1, e preciso checar todos

Alguma dica?

Share this post


Link to post
Share on other sites
  • 0

Seria necessario que eu usasse SetForegroundWindow em cada uma delas de segundo em segundo e em seguida apertar o botao Enter, depois verificar se alguma foi fechada, correto?

Pouco profissional, mas útil, valeu de novo kuroi (:

Share this post


Link to post
Share on other sites
  • 0

Boasfesta, você está usando o FindWindow() para encontrar a janela??

Se sim, fique procurando o tempo todo. Quando encontrar, use o SetForegroundWindow() e feche-a com SendKeys {ENTER} e depois continue a procurar. Deste modo sempre que aparecer uma janela, ela será fechada, não importa quantos programas estejam rodando simultaneamente, seja um ou sejam vários, desde que o programa que feche as janela fique o tempo sendo executado.

Pra não pesar muito, é bom não colocar o FindWindow() dentro de um While, o melhor é usar um Timer. Uns 100 milissegundos de intervalo deve estar bom.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this