Fórum Application Messages #375084
19/09/2009
0
Estou com uma problema no tratamento mensagens quando existe um Form aberto com ShowModal. Preciso identificar o movimneto do mouse em qualquer situação em que o programa esteja ativo, porém como abro algumas telas em ShowModal, só consigo identificar o movimento quando o ponteiro está sobre a tela com ShowModal.
Alguém sabe como resolver isso?
vlw!
Rtava
Curtir tópico
+ 0Posts
20/09/2009
Afarias
1) Não usar forms modais -- Ex: substituir por Form.Style := fsStayOnTop e exibir com Form.SHOW;
2) Não usar o evento OnMessage do Application, mas registrar no Windows o desejo de capturar todo movimento do mouse (como fazem os programas espiões)
T+
Gostei + 0
20/09/2009
Rtava
Eu uso Showmodal, porque preciso de Showmodal. Além disso, mesmo que o Form não seja aberto em ShowModal, ainda assim o movimento do mouse só será detectado se o ponteiro do mouse estiver sobre um Form qualquer da aplicação. Ou seja, se a aplicação estiver minimizada, não funciona de forma alguma.
Algum exemplo prático?
Gostei + 0
20/09/2009
Afarias
Sim:
http://delphi.about.com/od/windowsshellapi/a/mousehook.htm
T+
Gostei + 0
21/09/2009
Rtava
Obrigado!
Gostei + 0
28/09/2009
Rtava
Criei este exemplo do link que o afarias indicou e funcionou parcialmente sem problemas. Digo parcialmente, pois a detecção de movimento do mouse está ocorrendo mesmo sem o mouse se movimentar fisicamente. É que tenho um programa que fica criando e destruindo janelas constantemente, de forma automática, e cada vez que isso ocorre a tela é atualizada. Junto com essa atualização provavelmente também é atualizada a posição do mouse (eu imagino que seja isso). Por essa razão ocorre a detecção indesejada de movimentação do mouse e não estou conseguindo corrigir.
Alguém de idéia de como ´filtrar´ esses movimentos indesejados?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)