Robot

0 respostas
M

Oi, uma duvida sobre o robot é possível fazer com que ele aperte uma tecla em uma determinada janela do windows?
exemplo eu abri o jogo paciência e estou jogando ai quando eu presionar a tecla F1 por exemplo era vai disparar a tecla Alt ou outra tecla quais quer?
eu tentei fazer isso e nada aconteceu

package br.com.robot;

import java.awt.AWTException;
import java.awt.GraphicsEnvironment;
import java.awt.Robot;
import java.awt.event.KeyEvent;

import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;

public class RobotListener implements NativeKeyListener {
	Robot robot;

	public RobotListener(Robot robot) {
		this.robot = robot;
	}

	public void nativeKeyPressed(NativeKeyEvent e) {
		System.out.println("Botão apertado: "
				+ NativeKeyEvent.getKeyText(e.getKeyCode()));

		if (e.getKeyCode() == NativeKeyEvent.VK_F1) {		
			robot.keyPress(KeyEvent.VK_ALT);
			robot.keyRelease(KeyEvent.VK_ALT);

		}

		if (e.getKeyCode() == NativeKeyEvent.VK_ESCAPE)
			GlobalScreen.unregisterNativeHook();

	}

	public void nativeKeyReleased(NativeKeyEvent e) {
		System.out.println("Botão solto: "
				+ NativeKeyEvent.getKeyText(e.getKeyCode()));
	}

	public void nativeKeyTyped(NativeKeyEvent e) {
		System.out.println("Botão segurado: " + e.getKeyText(e.getKeyCode()));
	}

	public static void main(String[] args) {
		Robot robot = null;
		try {
			robot = new Robot();
			GlobalScreen.registerNativeHook();
		} catch (NativeHookException ex) {
			System.err.println(ex.getMessage());

			System.exit(1);
		} catch (AWTException e) {
			e.printStackTrace();
			System.exit(1);
		}

		GlobalScreen.getInstance().addNativeKeyListener(
				new RobotListener(robot));
	}
}
Criado 19 de fevereiro de 2013
Respostas 0
Participantes 1