Analiza pulpitu(ekranu użytkownika)

0

Witam
Czy jest jakaś klasa, która służy do analizowania zawartości ekranu(tego co widzi użytkownik na ekranie). Najlepiej jakbym mógł uzyskać tablice pikseli z wartościami RGB. Jeżeli nie ma takiej to może jest klasa dzięki której mogę zrobić zrzut ekranu a potem go przeanalizować. Z góry dzięki za pomoc

0

Jeśli chodzi o Javę, to ze swojej strony mogę polecić Ci QtJambi. Tu masz prosty example pisany w C++. http://doc.qt.nokia.com/4.6/desktop-screenshot.html

1
dev_dingo napisał(a)

Jeśli chodzi o Javę, to ze swojej strony mogę polecić Ci QtJambi. Tu masz prosty example pisany w C++. http://doc.qt.nokia.com/4.6/desktop-screenshot.html

Nie, to głupi pomysł. Bardzo. Kodziłem w QtJambi przez 2 dni, wcześniej ok. rok w C++ i zrezygnowałem na rzecz Swinga.
W Javie też można łatwo robić screenshoty:
http://www.javalobby.org/forums/thread.jspa?threadID=16400&tstart=0
http://download.oracle.com/javase/1.4.2/docs/api/java/awt/image/BufferedImage.html
Z BufferedImage wyciągasz kolor pixela przez getRGB(x,y), model ARGB: możesz ręcznie dzielić i modować to jako inta(szybko), albo zrobić z tego Color poprzez Color col=new Color(screen.getRGB(x,y));

0

Ok, udało się
A jak teraz na obiekcie BufferedImage coś namalować a potem zapisać. Namalować umiem

 
BufferedImage bf = ...;
Graphics g = bf.getGraphics();

I mogę rysować. Nie wiem jak później ponownie wgrać to BufferedImage i zapisać za pomocą ImagrIO.write();

0

Jak pobierzesz Graphics, czy też Graphics2D (getGraphics() zwraca w rzeczywistości Graphics2D, tylko trzeba rzutować) z BufferedImage, to rysujesz bezpośrednio na tym obrazie, czyli tylko pobierasz Graphics2D, rysujesz np. g2d.fillRect(10,10,100,100); i od razu możesz zapisać na dysku ten obraz używając obraz, z którego pobierasz Graphics2D.

0

Zamiast używać QT do robienia screenshootów, możesz wykorzystać klasę Robot http://download.oracle.com/javase/1.4.2/docs/api/java/awt/Robot.html

0

Oglądałem metody klasy Robot i znalazłem metody typu(KeyPress itp). Czy one symulują wciśnięcie danego przycisku?

0

Tak.

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