Robot, przerwanie dzialania

Odpowiedz Nowy wątek
Aster66
2014-01-20 14:54
Aster66
0

eksperymentuje z klasa Robot i majac przykladowo taki kod jak ponizej, chcialbym aby program przestal dzialac nie tak jak tutaj po 10 iteracjach petli tylko zamiast tego aby program wykonywal sie do momentu az nie nacisniemy np "p" na klawiaturze. czy to ma dzialac jako watek do momentu keidy jakis listener nie dostanie info o p?

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

public class App {

    public static void main(String[] args) {
        try {
            Robot robot = new Robot();
            robot.delay(5000);

for (int i = 0; i < 10; i++) {
    int keycode =KeyEvent.VK_W;

    robot.delay(1000);
    robot.keyPress(keycode);

    robot.keyRelease(keycode);

}            

        } catch (AWTException e) {
            e.printStackTrace();
        }

    }

}

Pozostało 580 znaków

Aster66
2014-01-20 15:10
Aster66
1

chyba wiem jak to zrobie
zrobie drugi watek ktory bedzie czytal klawiature i jak bedzie p to zmieni warunek petli while z watku pierwszego ktory bedzie robotem i flaga false- przerwanie

Pozostało 580 znaków

2014-01-20 15:39

Rejestracja: 7 lat temu

Ostatnio: 1 tydzień temu

0

dodaj KeyListnera.
po co Ci drugi wątek? przerwij działanie sprawdzając co wywołało KeyEvent.

edytowany 1x, ostatnio: wojciechmaciejewski, 2014-01-20 15:51

Pozostało 580 znaków

Aster66
2014-01-21 15:21
Aster66
0

@up masz racje zrobie to tak jak mowisz,

inny problem:
chce aby moj program nagral sekwencje myszki/ klawiatury i zpoenij mozna bylo poscic nagranie w petli. wszystko fajnie tlyko program dziala dopoki na focusie mam okno mojego programu, jezeli sie alttabne gdzies to juz nie dziala czytanie moich ruchow, jak to rozwiazac?

Pozostało 580 znaków

2014-01-21 15:31

Rejestracja: 7 lat temu

Ostatnio: 1 tydzień temu

0

nie da się

Pozostało 580 znaków

niezalogowany
2014-01-21 18:00
niezalogowany
0

nie da się

Nie wprowadzaj go w błąd. https://code.google.com/p/jnativehook/
Nie jest to zadanie proste, ale jak najbardziej możliwe (kiedyś musiałem coś podobnego wykonać w C#).

Pozostało 580 znaków

2014-01-22 08:08

Rejestracja: 7 lat temu

Ostatnio: 1 tydzień temu

0

Ok, nie wiedziałem że istnieje gdzieś taka biblioteka. Przy czym jest na GPL-u więc w żadnych projektach z licencjami nie GPL raczej z tym nie pośmigasz :P

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0