Olá Pessoal,
Sempre tenho acompanhado o GUJ, e nunca houve a necessidade de fazer um tópico, pois o Fórum é limpo e organizado, e sempre encontrei o que procurava…
Eu sou iniciante em Java, e estou fazendo um programa para fins de estudos, dei uma pesquisada no Fórum e não encontrei solução p/ o meu problema…
Bem, o programa tem como objetivo inicial, renovar os meus livros da biblioteca, para isso, estou usando a Classe robot.
Para renovar os livros, tenho que clicar em uma imagem, e para fazer isso, tenho que levar o cursor do mouse até a imagem e clicar…
Eu consegui um trecho de código que faz isso, mas tenho que por nos parâmetros a posição em pixel…
Eu consegui fazer isso por tentativa de erro, até acertar o bendito pixel onde fica a imagem…
Aqui o meu problema:
Quero fazer essa aplicação com interface gráfica, e preciso encontra a posição do cursor do mouse.
Quero saber se tem algum jeito de fazer isso?
Gostaria que nessa hora, o cursor do mouse alterasse para um ícone de um “+”
Não sei se fui bem claro, ou se coloquei o Tópico no Lugar errado, mas preciso desse auxilio, conto com a ajuda de vocês !
Aqui o código:
[code]package robo;
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
import org.xvolks.jnative.JNative;
import org.xvolks.jnative.Type;
import org.xvolks.jnative.exceptions.NativeException;
public class Robo {
public static void main(String[] args) throws IOException, AWTException, URISyntaxException, NativeException, IllegalAccessException {
Robot robot = new Robot();
//Esse é o Array onde vai estar os eventos de teclado, mude os números p/ o seu login da Biblioteca
int login[] = {
KeyEvent.VK_2,
KeyEvent.VK_3,
KeyEvent.VK_7,
KeyEvent.VK_5,
KeyEvent.VK_5,
KeyEvent.VK_1};
//Aqui vai sua senha
int senha[] = {
KeyEvent.VK_1,
KeyEvent.VK_2,
KeyEvent.VK_3,
KeyEvent.VK_4,
KeyEvent.VK_5,
KeyEvent.VK_6,
KeyEvent.VK_7,
KeyEvent.VK_8,
KeyEvent.VK_9,
KeyEvent.VK_0};
//Bloquear teclado e mouse
JNative bloquear = new JNative("User32", "BlockInput");
bloquear.setRetVal(Type.INT);
bloquear.setParameter(0, "Blk");
bloquear.invoke();
int ret = bloquear.getRetValAsInt();
System.out.println("Trava" + ret);
//Aqui termina o Bloqueio do TECLADO E MOUSE !
//Aqui abre-se a Janela de Login da Biblioteca
java.awt.Desktop.getDesktop().browse(new URI("endereço URL da biblioteca"));
//Delay para esperar o navegador abrir junto com a janela...
robot.delay(15000);
//Um For para percorrer as posiçoes do Array
for (int i = 0; i < login.length; i++) {
//Aperte o botão cnt
robot.keyPress(login[i]);
//Espere meio segundo
robot.delay(500);
}
//Percorreu tudo? de um tab p/ ir p/ próxima linha.
robot.keyPress(KeyEvent.VK_TAB);
//Espere um segundo.
robot.delay(1000);
//Digite a senha
for (int j = 0; j < senha.length; j++) {
robot.keyPress(senha[j]);
robot.delay(500);
}
//De um enter para logar !
robot.keyPress(KeyEvent.VK_ENTER);
//Vá para renovaçao.
java.awt.Desktop.getDesktop().browse(new URI("endereço da renovação da biblioteca"));
//Delay p/ esperar o navegador abrir a pagina...vai que... 10segundos
robot.delay(10000);
//Coloque o valor de i = Número de livros que você emprestou.
int i=5,x=0;
while(x<=i){
robot.keyPress(KeyEvent.VK_TAB);
robot.delay(1500);
x++;
}
robot.delay(2000);
//Dê um espaço para selecionar (acho que enter funciona tambem)
robot.keyPress(KeyEvent.VK_SPACE);
try {
//Aqui temos problemas !
//Mova o mouse para a posição....[ Pode variar de acordo com a resolução da tela. =/ ]
robot.mouseMove(150, 480);
//Espere 2 segundos
robot.delay(2000);
//Aperta o botão do mouse
robot.mousePress(InputEvent.BUTTON1_MASK);
//Solta o botão do mouse (necessário)
robot.mouseRelease(InputEvent.BUTTON1_MASK);
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
//Espere 2 segundos
robot.delay(2000);
//Desbloqueie o TECLADO e o MOUSE
bloquear.setParameter(0, 0);
//FIM -
}
}
[/code]
Fiquem a vontade para criticar, e dar sugestões de melhorias para ele…Estou aqui para aprender ^^