Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
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.
In den meisten AGB von irgendetwas, das diese Zeichendinger verwendet, wird das Benutzen von Bots, die das automatisiert ausfüllen / reagieren / whatever, verboten.
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...
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.
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...
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?
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?
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.
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.
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?
@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...
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
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.
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...
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.