Listener dla pulpitu windows

0

Witam,
czy jest jakas mozliwosc na stworzenie MouseListenera dla pulpitu? Chcialbym odczytywac konkretne wspolrzedne z pulpitu, np. uzytkownik kliknal w miejsce o wspolrzednych 20,20. Czy jest taka mozliwosc?

0

A w jakim celu? Bez JNI raczej się nie obejdzie.

0

Bawie sie robotem awt i przesuwam ikony na pulpicie, uruchamiam programy z paska startowego itp. Sek w tym, ze obecnie podaje wspolrzedne do robota metoda prob i bledow. Chcialbym napisac program ktory zczyta mi wspolrzedne moich klikniec, a nastepnie je powtorzy ;).

0

Gdy kilka dni temu założylem prawie identyczny temat, to powędrował do kosza z komentarzem "czyżby kolejny chakier?", więc uważaj ;)

Też właśnie interesuję się tem tematem i jak na razie odkryłem, że nasłuchiwanie wszystkich zdarzeń odbywa się za pomocą takiego kodu:

Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() {
  public void eventDispatched(AWTEvent event) {
    System.out.println(event);
  }
}, -1);

Niestety, informuje on tylko o zdarzeniach dotyczących okien Twojego programu; tych mających miejsce poza oknami nie rejestruje. I w tym momencie nie wiem - JVM nie otrzymuje tych zdarzeń, czy tylko EventQueue ich nie przesyła? Jak na razie grzebię w kodzie, ale jak się dowiem, to dam znać.

Pozdrawiam, Towe.

@Edit
Zawsze możesz robić screeny i sprawdzać współrzędne w Paint'cie ;P

0

Nie, nie otrzymuje komunikatów o zdarzeniach poza własnymi oknami.

0

Tez sie zastanawialem o screenach ;). W koncu robot awt potrafi robic zrzuty ekranu:

        Dimension size = Toolkit.getDefaultToolkit().getScreenSize();
        Robot robot;
        try {
            robot = new Robot();
            BufferedImage img = robot.createScreenCapture(new Rectangle(size));
            ImageIO.write(img, "JPG", new File("screenShot.jpg"));
        } catch (Exception ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }

Moge sobie nawet wyswietlic obrazek w full screenie i wyklikac wspolrzedne. Troche toporne, malo eleganckie, ale pewnie skuteczne.
Z drugiej strony zaproponowal ktos JNI, ale nie widze sensu w moim przypadku bawic sie z uchwytami ;). Jesli ktos ma jakis inny pomysl to chetnie poczytam.

0

JNI, albo JNA to nie taki najgorszy sposób. Przecież jedyne, co trzeba zrobić, to bramka z Windows do Javy. Nie trzeba pisać prawie żadnego kodu poza prymitywnym przerzucaniem danych w jedną i drugą stronę.
Tak naprawdę, to rzeczy, których potrzebujesz są już w sunowskiej Javie, tyle że w mniej lub bardziej prywatnych klasach/bibliotekach oraz w raczej niezbyt przyjaznej postaci. Można tego tam poszukać, ale prawdopodobnie szybciej będzie skorzystać bezpośrednio z winapi.

0

przepraszam za odświeżenie tematu
Potrzebuje napisać aplikację która będzie sczytywać zdarzenia jazdy myszą po pulpicie lub kliknięcie czyli ogólnie MouseListenera i własnie muszę złapać uchwyt pulpitu może ktoś pomóc

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