Postado Agosto 13, 2017 7 anos Primeiramente boa dia/tarde/noite. Fiz um programa para enviar mensagens de comando para uma outra aplicação (programa). Pesquisei muito sobre o assunto e encontrei nada a respeito do meu problema. O que eu acontece é o seguinte: O programa só manda o comando para a aplicação quando o parâmetro é 'WM_CHAR', quando tentei o parâmetro 'WM_KEYDOWN' ele não reproduz dentro da aplicação. Porém isso ocorre apenas na aplicação na qual e eu desejo que funcione. Testei em outros lugares e funciona perfeitamente, ou seja, o problema não está no código, mas sim em alguma resistência (barreira) da aplicação em questão. Ou seja, pra ficar mais claro: Essa linha de comando é representada na aplicação: SendMessage(h, WM_CHAR, B, 0); Essa linha de comando não é representada na aplicação: SendMessage(h, WM_KEYDOWN, VK_RETURN, 1); SendMessage(h, WM_KEYUP, VK_RETURN, 1); OBS: 'h' é a Handle da aplicação em questão. Na hora de dar o ENTER (RETURN) ele simplesmente não envia, assim como qualquer outra tecla que não seja uma letra. Então se eu colocar no campo 'Edit' a palavra 'olá!' ele fica escrevendo a palavra infinitamente e não envia. Gostaria que alguém me ajudasse a achar alguma alternativa (de repente mudar a função usada, ou captar o comando na aplicação, usar mensagens de notificação, enviar mensagem para a handle filha). Grato !
Postado Setembro 18, 2017 7 anos que eu me lembro no delphi, existia eventos, oncreate, onclickdown, key e etc, ao inves de tentar usar sendmessage, tente usar postmessage, a uns anos atras quebrei minha cabeça para fazer isso do software da empresa enviar para a maquina do client via T.V(team viewer), meu gerente me ajudo falando pra usar no "evento" do "botao" ou da ação, ve se funciona, acho que é isso PostMessage(FindWindow(nil, ´nome da aplicaçao´), h, WM_KEYDOWN, VK_RETURN, 1 ); se nao, me desculpe OBS.: Faz anos que nao mecho mais com delphi, mas foi uma situação que marcou e me lembrei Editado Setembro 18, 2017 7 anos por kukas9 adição (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.