myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Desktopüberwachung möglich?

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 06.07.14, 14:48   #1
White Beard
Anfänger
 
Registriert seit: Aug 2010
Beiträge: 7
Bedankt: 0
White Beard ist noch neu hier! | 0 Respekt Punkte
Standard Desktopüberwachung möglich?

Hallo,

ich suche ein Programm mit dem ein eine bestimmte und mehrere Positionen auf dem Desktop auf Veränderungen überwachen kann, unabhängig vom Programm. Also sozusagen ein Overlay. Bei Veränderung soll ein Ton ausgegeben werden.

Wenn es sowas nicht gibt, mit was Programmiert man das und wie schwer? Wäre auch lernwillig, da ich andauernd spezielle Wünsche habe die es sonst nicht zu finden gibt...

mfg
WB
White Beard ist offline   Mit Zitat antworten
Ungelesen 06.07.14, 15:52   #2
Delta538
Newbie
 
Registriert seit: Oct 2010
Beiträge: 95
Bedankt: 80
Delta538 zeigt Immunität gegen Parfüm! | 253 Respekt PunkteDelta538 zeigt Immunität gegen Parfüm! | 253 Respekt PunkteDelta538 zeigt Immunität gegen Parfüm! | 253 Respekt Punkte
Standard

Ich hoffe mal, dass du damit kein Unfug anstellen willst!

Ein einfacher aber auch unschöner Weg ist es über das auslesen der Pixelwerte zu machen.
1. Bild vom Monitior/Monitor Bereich nehmen des Soll-Zustandes
2. In Zeitintervallen neue BIlder erstellen --> prüfen ob diese Ausschnitte sich um xy% Unterscheiden
3. Wenn ja Ton ausgeben

Ein solches Programm ist innerhalb weniger Minuten geschrieben.
Delta538 ist offline   Mit Zitat antworten
Ungelesen 06.07.14, 16:20   #3
White Beard
Anfänger
 
Registriert seit: Aug 2010
Beiträge: 7
Bedankt: 0
White Beard ist noch neu hier! | 0 Respekt Punkte
Standard

Unfug nein. Will nur ein lauten langen Ton haben wenn ich bei Civilization und andere rundenbasierte Spiele an der Reihe bin oder was anderes passiert.

Ich kenn mich ja nicht aus, ich nehme an das funktioniert über Java? Bei dir wenige Minuten, bei mehr mehrere Wochen
Würde gerne wissen wie ich in das Thema reinkomme oder ob es bereits Beispiele dafür gibt. Für Dummies sozusagen
White Beard ist offline   Mit Zitat antworten
Ungelesen 06.07.14, 20:02   #4
White Beard
Anfänger
 
Registriert seit: Aug 2010
Beiträge: 7
Bedankt: 0
White Beard ist noch neu hier! | 0 Respekt Punkte
Standard

Auch nicht im Fenstermodus? Habe Spiele, die funktionieren von Haus aus nur im Fenstermodus und sind darauf ausgelegt. Müssten auch jenseits der Zeit der 3D-Beschleunigung programmiert.

Ansonsten würd ich das unabhängig davon gerne einfach mal probieren, weiß aber nicht wo ich ansetzen muss... Da brauch ich nur ein wenig Starthilfe
White Beard ist offline   Mit Zitat antworten
Ungelesen 07.07.14, 08:08   #5
Delta538
Newbie
 
Registriert seit: Oct 2010
Beiträge: 95
Bedankt: 80
Delta538 zeigt Immunität gegen Parfüm! | 253 Respekt PunkteDelta538 zeigt Immunität gegen Parfüm! | 253 Respekt PunkteDelta538 zeigt Immunität gegen Parfüm! | 253 Respekt Punkte
Standard

Wenn du das mit dem Image-Vergleich machen willst und schnell eine Lösung brauchst, kannst du die Robot-Klasse von Java verwenden. Die verfügt über eine Methode, mit der du ein Bildausschnitt als BufferedImage speichern kannst.

Das ganze ist jetzt vermutlich kein besonders gutes Beispiel wie Java-Code auszusehen hat, sollte aber ungefähr das sein was du suchst. (Eventuell geht es auch noch besser aber damit funktioniert es auch)

Code:
import java.awt.AWTException;
import java.awt.HeadlessException;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;


public class ScreenCapture {

	public static void main(String[] args) throws HeadlessException, AWTException, InterruptedException {

                Robot rob = new Robot();

		BufferedImage refImage = rob.createScreenCapture(new Rectangle(new Rectangle(200,500)));
		
		while(true)
		{
					 	
			BufferedImage image = rob.createScreenCapture(new Rectangle(200,500));
			
			for(int i = 0; i < image.getWidth()-1; i = i+2)
			{
				for(int j = 0; j < image.getHeight()-1; j = j+2)
				{
					System.out.println(i+"    "+j);
					if(image.getRGB(i, j) != refImage.getRGB(i, j))
					{
						System.out.println("FOUND!!");
					}
				}
			}
			
			
			Thread.sleep(3000);
		}
		
	}
}
Delta538 ist offline   Mit Zitat antworten
Ungelesen 08.07.14, 15:41   #6
White Beard
Anfänger
 
Registriert seit: Aug 2010
Beiträge: 7
Bedankt: 0
White Beard ist noch neu hier! | 0 Respekt Punkte
Standard

Danke. Jetzt, weil ich ja neu auf dem Gebiet bin, muss ich das erstmal für mich entschlüsseln was für was steht und wie ich dann die Werte dementsprechend verändere.
White Beard ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 Uhr.


Sitemap

().