Robot - mouseMove, mousePress

Tou fazendo 1 bot para 1 jogo e estou com problema do focus…
O bot aciona quando a pessoa aperta F1, e para quando ela aperta F2…
Soh que quando a pessoa aperta o F1, ele comeca a fazer as coisas na aplicacao:

private void iniciaRobo() { new Thread(new Runnable() { public void run() { while (flag == true) { robot.mouseMove(1135, 540); // leva o mouse ateh o item robot.mousePress(InputEvent.BUTTON1_MASK); // clica nele robot.mouseMove(540, 395); //arrasta ele robot.mouseRelease(InputEvent.BUTTON1_MASK); //solta ele robot.delay(2000); } } }).start(); }
E, logicamente, quando ele clica no item, para “arrastar” o jFrame eh minimizado, e o “focus” fica no jogo… Ou seja, se eu apertar o F2 para parar o bot, ele nao vai parar… Tenho que selecionar o jFrame…

Entao, olhando alguns outros bots, percebi que nao funcionam como esse…
Nesse, se o usuario sair do jogo, e for por exemplo para o desktop, ele vai ficar realizando a mesma tarefa lah… Arrastando o que tiver nakela posicao…
Nos outros, o bot faz as coisas somente na aplicacao… O mouse fica livre para o usuario

[color=red][size=17]Eu quero:[/size][/color]
Que o mouse fique parado durante a aplicacao… Ele vai ficar movimentando os itens, mas a seta do mouse fica parado para o usuario… Ele pode ficar mechendo em suas aplicacoes, enquanto o Bot realiza o trabalho no jogo…

Como posso fazer isso?
Obrigado !

Você pode fazer isso através da API do Windows, ou manipulando o protocolo do jogo, se for em rede. No Java, apenas a última opção é válida.

E se for usar a última opção, precisa saber como o protocolo do jogo funciona. Um sniffer deve te ajudar.

Qual seria mais facil, rapida, e necessita menos estudo? kkk
O jogo eh um RPG global, em rede… Por enquanto ta fechado, mas quando abre, tem +/- uns 4 mil players…
Mas como que eu vou saber o protocolo do jogo?
E qual API do Windows? - Axo que nao seria 1 boa, pq nenhum bot do jogo roda em linux também… A minha intenção era fazer em java, justamente para isso

Vlws !