auf ausgabe am monitor reagieren

Status
Nicht offen für weitere Antworten.

java666

Aktives Mitglied
Hallo,

ich hab eine frage ist es möglich mit java auf eine ausgabe auf dem monitor zu reagieren wenn ja wie könnte ich sowas ca. machen.
Das ganze müsste nur einen cancel button betätigen und danach auf ok gehen.
Google-Ergebnis für http://fbphelper.info/FBPHelper.jpg

oder kann ich sowas auch mit einer web sprache machen? Das programm ist friendblaster pro. Ich möchte einfach die captcha umgehen das ich sie eingeben müsste er soll sie dann einfach überspringen.
 

Civilazi

Bekanntes Mitglied
In den meisten AGB von irgendetwas, das diese Zeichendinger verwendet, wird das Benutzen von Bots, die das automatisiert ausfüllen / reagieren / whatever, verboten.
 

ARadauer

Top Contributor
ja das geht... hab selber mal einen captach solver geschrieben... ist aber nicht einfach...

schu dir grundsätzlich mal die Robot klasse an.... bzw schick mir eine pm, dann schick ich der meinen captach solver... mit wenig garantie, dass er bei deinen auch funktioniert...
 

java666

Aktives Mitglied
@Civilazi: so wirklich verboten ist das ganze ja nicht.

Jetzt weiß ich zuminderst das sowas möglich ist. Das hilft doch schon mal weiter.
 

ARadauer

Top Contributor
wie gesagt.. Robot.. aufwändige Pixel analyse...

wer webseiten steuert sollte sich auch unbedigt selenium anschaun..
 

java666

Aktives Mitglied
Jetzt hab ich eine noch ein frage. Das mit dem robot ist mir recht klar. Jetzt bräuchte ich aber etwas was auf das öffnende fenster reagiert. Es geht da immer ein Fenster auf wo man mit "OK" bestätigen muss wie kann ich auf dieses Fenster reagieren so das dann mein java programm die zwei klicks ausführt?
Mehr muss das ganze ja sogesehen nicht machen in will nicht die captcha lesen sondern einfach nur umgehen mit cancel.
Die Position der Button ist ja immer die selbe so das ich nur mit dem robot sagen muss wo die buttons sind die er zu klicken hat. Nur er kann ja nicht ständig klicken würde ja keinen sinn machen.
Das ganze ist ein javascript fenster auf das reagiert werden müsste.

Jetzt schonmal danke wieder.
 

ARadauer

Top Contributor
getPixelColor.. du ermittelst die Farbe eines bestimmten Pixels, der eine gewisse Farbe hat, wenn das Fenster offen ist..
du überprüfst alle 5 sekunden, wenn der pixel die farbe hat, klickst du an die richtige stelle... ich weiß die sache ist nicht besonders stabil... aber wenn man sauber arbeitet, kommt man sehr weit damit...
 

java666

Aktives Mitglied
ich glaub des könnte richtig gehen. Dann muss ich nur ein farbe finden die auch sonst nicht vorkommt oder kann ich sagen nur in dem bereich darf dieser farbpixel vorkommen sonst ist die bedienung nicht erfüllt?
 

java666

Aktives Mitglied
So das problem ist das es zwar so irgendwie geht aber leider muss ich irgendwie dir abfrage einbauen.
Was leider nicht leicht ist.
Code:
package myspace;

import java.awt.AWTException;
import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.MouseEvent;

public class add_machine 
{ 	 
  public static void main(String[] args) 
  {
 
    Robot robot = null;
    try 
    {
      robot = new Robot();
    }
    catch (AWTException e) 
    {
      e.printStackTrace();
    } 
    
    Color c = robot.getPixelColor(486, 530);
    if(c.getRed() == 10)
    {    
		    robot.mouseMove(642, 545);
		    robot.mousePress(MouseEvent.BUTTON1_MASK);
		    robot.mouseRelease(MouseEvent.BUTTON1_MASK);	    
		    robot.mouseWheel(3);
		    robot.mouseMove(660, 660);
		    robot.mousePress(MouseEvent.BUTTON1_MASK);
		    robot.mouseRelease(MouseEvent.BUTTON1_MASK);    
		    robot.setAutoDelay(700);
	    
    }
  }
}

Leider geht er mir nicht in die if abfrage nur warum?
 

hdi

Top Contributor
1) Weisst du auch, dass der Rot-Wert dieses Pixels wirklich 10 ist?
2) Relativ zu was behandelt der Robot die Pixel-Angaben bei der getPixelColor()-Methode?
Relativ zum Desktop, relativ zu einem JFrame, oder was?
 

java666

Aktives Mitglied
1) Weisst du auch, dass der Rot-Wert dieses Pixels wirklich 10 ist?
Ja des weiß ich sicher.
2) Relativ zu was behandelt der Robot die Pixel-Angaben bei der getPixelColor()-Methode?
Relativ zum Desktop, relativ zu einem JFrame, oder was?
Relativ zum Desktop.

Das ganze würde ja auch schon recht gut laufen nur das problem ist das er dann immer klickt auch wenn er das nicht soll also muss ich das mit dem getPixelColor() machen damit ich abfrage ob das "Alert" Fenster auch wirklich da ist und wenn das der fall ist soll er die zwei buttons anklicken. Es geht nur darum das er erkennt ob diese "Alert" Fenster da ist oder nicht. Vielleicht gibt es auch noch eine andere möglichkeit.
 

hdi

Top Contributor
Also generell erscheint ja das Abfragen von Pixeln schon ziemlich der falsche Weg zu sein,
wenn man wissen will ob ein Fenster geöffnet ist...
Aber Ardauer hatte sicherlich einen Grund das zu erwähnen.

Ich sag mal so: Sofern diese Methode nicht deprecated oder defekt ist, und davon gehe
ich mal stark aus, wird sie auch richtig arbeiten.

D.h. ganz einfach: Dein Pixel das du prüfst liegt an der falschen Stelle, oder du fragst
den falschen Wert ab.

...nur mal so: Dir ist schon klar, dass knall-rot einen Red-Wert von 255 hat, und nicht 10? Und dir ist auch klar,
dass es nicht "sicher" ist einen Pixel auf einen red-Wert abzufragen?
Das könnte auch ein anderes Fenster in einem kaki-Grün sein.
Nur der red-Wert sagt dir kaum etwas über die Farbe aus, warum prüfst du nicht
mit equals auf eine "ganze" Farbe?

Wie hast du denn den Wert von red = 10 ausgelesen?
Am sichersten ist es wohl per MouseListener : Mach dirn kleines Tool das beim Klick
Koordinaten ausgibt und die Color. Wie liest du die Desktop-Auflösung aus?
Du musst beachten dass da vllt die Taskleiste eine Rolle spielt. Wobei y ja eig. oben bei 0 anfängt.

Naja.. es gibt hier denk ich einige Fehlerquellen, und ich schätze du hast das nur falsch
gemacht.
 

java666

Aktives Mitglied
Also das mit dem rot hab ich einfach so gemacht
Code:
Color c = robot.getPixelColor(486, 530);
    if(c.getRed() == 10)

Ich werd es heute abend anders versuchen das es sich hier um einen punkt handelt der vielleicht an der stelle nicht mehr da ist. Da ich auf den blauen rand oben am Alert fenster gegangen bin. Ich kann aber auch einfach nach dem grau abfragen weil diese fläche größer ist als der blaue rand oben "titel leiste". Ich denke so sollte es gehen. Wenn ich das ganze im Eclipse test geht es wenn ich red auf 255 stelle geht alles gut.
Jetzt hab ich nur eine frage noch wie ich das ganze mit einer schleife machen soll. Das programm soll ja so lang laufen bis ich es schließe und immer wieder testen ob das fenster da ist. Test ca. alle 5 - 10 Sekunden.
Wie würdest du sowas anstellen?
 

ARadauer

Top Contributor
@hdi: wissen ob ein fenster geöffnet ist... hab ich schon mal gemacht radauer.com Blogarchiv Fenster Positionen ermitteln

@java666:
if(c.getRed() == 10)... warum geht er nicht rein? JA weils ein anderer WERT ist!
Lass dir das mit System.out.prinln ausgeben und prüfe was ausgegeben wird...
Wie würdest du sowas anstellen?

alle 5 Sekunden prüfen?
Code:
      while(true){
         System.out.println("Jetzt Prüfe....");
         Thread.sleep(5000);
      }
so...
wenn dir das zu schwer ist, bist du leider für die hohe Kunst des Bot Programmierens noch nicht bereit ;-)

noch zur info.. auf einen Wert abprüfen ist bei Farben nicht immer optimal, durch alaising usw... kommen verschiedenen schattierungen raus, ich würd eher auf bereiche gehen

zb ... if(c.getRed() < 220 && c.getRed() > 200))
 

java666

Aktives Mitglied
Vielen dank für eure hilfe.
Ich werde mich heute abend wieder damit beschäftigen und wenn ich ihn zum laufen bringen sollte werd ich es bekannt geben.
Das problem wie ich ja schon gesagt habe ist ja das das ding schon laufen würde aber leider klickt er dann einfach wahrlos irgendwo hin was ja nicht sinn und zweck des ganzen sein sollte. Deswegen das ganze mit der If abfrage aber ich denk des bekomm ich auch noch in griff.
 

ARadauer

Top Contributor
Was sehr hilfreich ist.. paint öffnen und die spräydose wählen, vielleicht noch einen screenshoot des späteren schirms in paint einfügen und dann genau an die richtige position schieben.
wenn Robot dann den jeweiligen pixel erkennt, markiert er genau die stelle auf die er klicken würde...
 

java666

Aktives Mitglied
So, es ist getan.

Das ganze läuft super.

Code:
package myspace;

import java.awt.AWTException;
import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
import java.awt.event.MouseEvent;

public class add_machine 
{ 	 
  public static void main(String[] args) 
  {
 
    Robot robot = null;
    try 
    {
      robot = new Robot();
    }
    catch (AWTException e) 
    {
      e.printStackTrace();
    }     
    
    while(true)
    {
    	robot.mouseMove(550, 530);
    	Color c = robot.getPixelColor(550, 530);
	    if(c.getRed() < 220 && c.getRed() > 210)
	    {    
		    robot.mouseMove(642, 545);
		    robot.mousePress(MouseEvent.BUTTON1_MASK);
		    robot.mouseRelease(MouseEvent.BUTTON1_MASK);	    
		    robot.mouseWheel(3);
		    robot.mouseMove(660, 660);
		    robot.mousePress(MouseEvent.BUTTON1_MASK);
		    robot.mouseRelease(MouseEvent.BUTTON1_MASK);
		    robot.delay(3000);  		    	    
	    }
	    else
	    {
	    	robot.delay(5000);
	    }
     }
  }
}

ich hab natürlich anfangs vergessen das ich die maus schon auch auf die stelle bringen muss wo er den pixel vergleichen soll. Jetzt wo ich das gemacht hab läuft es prima durch.

Danke für eure hilfe.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
H Ausgabe Java Basics - Anfänger-Themen 6
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11
F Erste Schritte Subnet Calculator - Ausgabe der NetID und der Broadcast Java Basics - Anfänger-Themen 4
D Wiederholende Ausgabe Java Basics - Anfänger-Themen 3
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben