Automatizando Click do Mouse
Pessoal, estou com uma dúvida.
Estou desenvolvendo um programinha, uma parte dele faz com que o click com o botão direito do mouse seje automatico, ou seja, apertando um botão definido no programa para ligar o mesmo, o botão direito do mouse iria clicar infinitamente até apertar o botão para desligar. É isso ae pessoal, eu não sei qual evento usar, alguem poderia me dar uma luz de como posso desenvolver essa lógica ?
Obrigado !
Estou desenvolvendo um programinha, uma parte dele faz com que o click com o botão direito do mouse seje automatico, ou seja, apertando um botão definido no programa para ligar o mesmo, o botão direito do mouse iria clicar infinitamente até apertar o botão para desligar. É isso ae pessoal, eu não sei qual evento usar, alguem poderia me dar uma luz de como posso desenvolver essa lógica ?
Obrigado !
Nicchio
Curtidas 0
Respostas
Andremuller
09/12/2004
Não sei se é isso que tu quer, mas fica valendo a tentativa. Claro que o código abaixo estoura, mas talvez o que tu queira é a idéia em si.
property Parar: boolean read FParar write FParar;
procedure TForm1.btnPararClick(Sender: TObject);
begin
Parar := True;
end;
procedure TForm1.btnIniciarClick(Sender: TObject);
begin
Parar := False;
while not Parar do
begin
Application.ProcessMessages;
btnIniciar.OnClick(Sender);
end;
end;
property Parar: boolean read FParar write FParar;
procedure TForm1.btnPararClick(Sender: TObject);
begin
Parar := True;
end;
procedure TForm1.btnIniciarClick(Sender: TObject);
begin
Parar := False;
while not Parar do
begin
Application.ProcessMessages;
btnIniciar.OnClick(Sender);
end;
end;
GOSTEI 0
Nicchio
09/12/2004
é amigo, não deu certo !
Oq eu precisava mesmo não era nem apertando o botão inicar e parar e sim uma tecla expecifica, nisso o programinha vai estar checando se a tecla foi apertada, se foi ele começa a clicar com o botão direito na tela. (obs: o programa vai estar minimizado, ou seja, não vai ser somente dentro da janela do programinha e sim no windows todo.)
Oq eu precisava mesmo não era nem apertando o botão inicar e parar e sim uma tecla expecifica, nisso o programinha vai estar checando se a tecla foi apertada, se foi ele começa a clicar com o botão direito na tela. (obs: o programa vai estar minimizado, ou seja, não vai ser somente dentro da janela do programinha e sim no windows todo.)
GOSTEI 0
Nicchio
09/12/2004
Alguem tem mais alguma idéia ?! Andei vendo com um amigo ae, parece q cada tecla e botão do mouse tem um número, alguem sabe disso ae ?
Valeuz !
Valeuz !
GOSTEI 0
Fórum Vini
09/12/2004
Olá,
para simular um clique do mouse, existe a função mouse_event, mas para facilitar as coisas eu criei essa função para você:
Se for um clique com o botão esquerdo, troque RIGHT por LEFT :wink:
Agora o loop infinito para chamar essa função fica por sua conta :P
Qualquer dúvida é só postar
T+,
Vinicius;
para simular um clique do mouse, existe a função mouse_event, mas para facilitar as coisas eu criei essa função para você:
procedure CliqueMouse; begin mouse_event( MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0 ); sleep(1); mouse_event( MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 ); end;
Se for um clique com o botão esquerdo, troque RIGHT por LEFT :wink:
Agora o loop infinito para chamar essa função fica por sua conta :P
Qualquer dúvida é só postar
T+,
Vinicius;
GOSTEI 0
Nicchio
09/12/2004
Velho, não sei se é pq estou no Kylix, mais esta falando que não existe esse mouse_event. Ele está falando q não foi declarado o mouse_event.
GOSTEI 0
Fórum Vini
09/12/2004
Ah... então é por isso... a mouse_event é uma API do Windows :roll:
No Linux eu não sei se existe uma função parecida, mas provavelmente deve ter :wink:
T+,
Vinicius;
No Linux eu não sei se existe uma função parecida, mas provavelmente deve ter :wink:
T+,
Vinicius;
GOSTEI 0
Vagner.oliveira
09/12/2004
Tche tens com como me dizer o q são os 4 zeros pois estou tentanfo fazer um programa q grave uma determinada posição e depois independente de onde estiver o mouse ele irá clicar lá
GOSTEI 0
Fórum Vini
09/12/2004
Tche tens com como me dizer o q são os 4 zeros pois estou tentanfo fazer um programa q grave uma determinada posição e depois independente de onde estiver o mouse ele irá clicar lá
Pra isso vc tem que setar a flag MOUSEEVENTF_ABSOLUTE e passar as coordenadas como parâmetros:
procedure CliqueMouse; begin mouse_event( MOUSEEVENTF_RIGHTDOWN or MOUSEEVENTF_ABSOLUTE, X, Y, 0, 0 ); sleep(1); mouse_event( MOUSEEVENTF_RIGHTUP or MOUSEEVENTF_ABSOLUTE, X, Y, 0, 0 ); end;
Onde X e Y são as coordenadas do mouse em relação à tela.
Qualquer dúvida, estou aqui :wink:
Espero ter ajudado,
Vinicius;
GOSTEI 0