Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Png Grafik am Bildschirm suchen und Position ermitteln (https://www.delphipraxis.net/98667-png-grafik-am-bildschirm-suchen-und-position-ermitteln.html)

Go2EITS 30. Aug 2007 16:46


Png Grafik am Bildschirm suchen und Position ermitteln
 
Hallo, DP, habe mal wieder ein wenig Zeit für ein kleines Projekt.

Folgende Frage stellt sich mir:
Ich habe 5 Grafiken (Png) vom Bildschirm ausgeschnitten (Eingabefelder und Buttons) und auf der Festplatte gespeichert.
Nun möchte ich die Grafiken am Bildschirm suchen (nicht auf einer Form!) und meine Maus jeweils auf die Grafik am Bildschirm darauf oder auf das Eingabefeld positionieren.


Wie stelle ich das an??? :gruebel:

Go2EITS

Nikolas 30. Aug 2007 16:57

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Was willst du denn damit anfangen? Bist du sicher, dass es dafür keinen besseren Weg gibt?

Wenn du sowas wirklich machen willst, müsstest du ein Bildschirmfoto machen und dann dort suchen.
Du könntest z.b. auf dem Foto alle Pixel suchen, die die gleiche Farbe wie das Pixel links oben in einem deiner Ausschnitte. Dann überprüfst du, ob das Pixel rechts davon die gleiche Farbe hat wie das entsprechende Pixel auf deinem Ausschnitt usw.
Sowas könntest du dann in einer doppelten Schleife abarbeiten lassen. Wenn du die Schleife bei nicht passenden Farben verlässt hast du dann nach einem kompletten Durchlauf dein Bild gefunden.

Und allzu lange dürfte die Suche auch nicht dauern.

Go2EITS 30. Aug 2007 17:14

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Gerne sage ich Dir was ich machen möchte:
Ich suche das Feld "Wertpapierkennnummer" füge z. B. automatisch die Wertpapierkennnumer ein.
Suche zweitens Button "Kurs holen" und lese dann den Kurs aus um diesen dann weiterzuverarbeiten.
So ähnlich verfahre ich mit den anderen Feldern, die ich am Bildschrim suchen muss, die ich auslese oder beschreibe.

Das wäre vielleicht eine bessere Lösung:
Vielleicht sollte ich 2 oder 3 Referenzpunkte am Bildschirm suchen, um zu erkennen, ob die Seite auf dem Bildschirm liegt und von denen Vorhandensein ich meine Eingaben in tätige, denn von den Referenzpunkten sind die Positionen der Eingabefelder immer gleich. (Wenn ich dieselbe Auflösung und denselben Browser verwende, es wäre natürlich eine vorerst statische Lösung).

:gruebel:

shmia 30. Aug 2007 17:22

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Zitat:

Zitat von Go2EITS
Ich suche das Feld "Wertpapierkennnummer" füge z. B. automatisch die Wertpapierkennnumer ein.
Suche zweitens Button "Kurs holen" und lese dann den Kurs aus um diesen dann weiterzuverarbeiten.
So ähnlich verfahre ich mit den anderen Feldern, die ich am Bildschrim suchen muss, die ich auslese oder beschreibe.

Dann ist deine Vorgehensweise falsch.
Möchtest du vielleicht den Internet Explorer fernsteuern ?
Oder um welche Anwendung handelt es sich ?
Bei yahoo kann man sich übrigens Kursdaten als CSV-Daten herunterladen...

Go2EITS 30. Aug 2007 17:30

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Nein, es handelt sich "banal" um Daten auslesen, Buttons betätigen und Daten eingeben und absenden.
Yahoo.Kursdaten sind nicht realtime, sondern 15-20 Minuten verzögert, was die deutschen Werte betrifft.
Die Lösung mit den Referenzpunkten halte ich für die Beste, aber was meint Ihr?

shmia 30. Aug 2007 17:37

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Zitat:

Zitat von Go2EITS
Nein, es handelt sich "banal" um Daten auslesen, Buttons betätigen und Daten eingeben und absenden.

Buttons betätigen; das macht man doch nicht über ein Bitmap.
Wenn schon, dann sucht man mit FindWindow() das Fenster der Anwendung.
Danach sucht man die Childfenster (jeder Button und jedes Editfeld ist ein Childfenster).
Wenn man diese Handles hat, dann kann man Text auslesen und reinschreiben und Button betätigen.
Mit Bildverarbeitung hat das überhaupt nichts zu tun.
Unter Windows Vista funktioniert das aus Sicherheitgründen aber nicht mehr...

Go2EITS 30. Aug 2007 17:56

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Vielen Dank für Deine Hilfe. Das mir dem Findwindow und die betreffende Seite auf dem Bildschirm in den Vordergrund zu bringen ist mir bekannt. Ich habe mich auf das Kernproblem beschränkt. Childfenster jedoch ist mir ein neuer Begriff. Ich versuche mal mit mit den Childs weiter zu kommen, ob ich nicht "direkt" die Eingaben, das Auslesen von Feldern und das Betätigen von Buttons vornehmen kann.

Mit den Bilder wollte ich nur die Position der Buttons, Eingabe- und "Auslesefelder" am Bildschirm suchen, um die Eingaben oder das Auslesen automatisch tätigen. Ein Bildbearbeitung ist/war daher nicht vorgesehen.
Vielen Dank für die Hilfe!

Go2EITS 30. Aug 2007 18:29

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nachtrag: Aber so einfach scheint es nicht zu sein:
http://www.delphipraxis.net/internal...ght=findwindow
http://www.delphipraxis.net/internal...ght=findwindow
und andere Threads ohne richtige Lösung.
Vielleicht ist es einfach mit einem Tool die Classen zu bekommen, jedoch dieses Problem entsprechend zu programmieren, da bedarf es wohl eher fortgeschrittene Kenntnisse. Winspy++ und Winspector haben mir leider nicht weitergeholfen.

So sehen übrigens die Felder aus:
Edit: Neues Bild hochgeladen.

Nikolas 30. Aug 2007 19:42

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Darf ich Fragen, was du planst? Ganz spontan tippe ich darauf, das du dir einen Bot bauen willst, der für dich bei einem Börsentippspiel antritt.
Wenn das so ist, könnte man das in der DP als Gemeinschaftsprojekt laufen lassen. (Falls ein größeres Team gegen Regeln verstoßen sollte, könnte man ja ausser Konkurrenz mitmachen)

Go2EITS 31. Aug 2007 07:10

Re: Png Grafik am Bildschirm suchen und Position ermitteln
 
Nein, kein Börsenspiel. Die Eingaben sind real. Ich wäre froh, wenn ich an die Felder käme.
TWebbrowser könnte die Lösung sein. Mal sehen. :gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz