Moin,
bin recht neu mit C# unterwegs und habe mir direkt als erstes größeres Projekt mal vorgenommen einen Minibot zu programmieren. Zu Anfang soll er erst einmal einen Login bei einem Spiel (League of Legends Client) automatisch ausführen können und dann ein paar Knöpfe drücken.
Ich mache mir derzeit Gedanken wie die beste Herangehensweise aussieht. Ich habe mich etwas eingelesen und festgestellt, dass tatsächlich meist ein ganzer Bildschirm gescreent wird und dieser dann Pixel für Pixel mit einem Quellbild verglichen wird um letztendlich die Position des Buttons/Feldes (oder was man auch sucht) zu bestimmen. Diese Vorgehensweise hat mich doch sehr verwundert, da das sicher recht viel Computerressourcen in Anspruch nimmt. Daher hatte ich mir überlegt, dass man doch einen "Initialpunkt" der Anwendung (also in meinem Falle der Client vom Spiel League of Legends) herausfindet und diesen Punkt intern als (0,0) festlegt. Von da aus könnte man nun vorher definieren das Usernamefeld soll hier angeklickt werden (100,100) etc.
Wäre das eine sinnige Vorgehensweise oder ist das ganze eh veraltet und sollte man bei so etwas anders vorgehen ? Falls sinnig: Wie kann man das handlen den Initialpunkt sofort erneut zu finden, wenn der Loginclient verschoben wird (also das Fenster in dem Eingaben passieren sollen). Gibt es da sowas wie EventHandler wenn ein bestimmter Prozess verschoben wird. Kann man generell irgendwie auf Eigenschaften von anderen Prozessen zugreifen (z.B. Finde zu meinem Prozess 100 (League of Legends Client) die Größe/Start Koordinate) ?
Freue mich über jeden Tip zur Herangehensweise. Bin recht perfektionistisch, nehme mir hoffentlich nicht zu viel vor.
Viele Grüße
bin recht neu mit C# unterwegs und habe mir direkt als erstes größeres Projekt mal vorgenommen einen Minibot zu programmieren. Zu Anfang soll er erst einmal einen Login bei einem Spiel (League of Legends Client) automatisch ausführen können und dann ein paar Knöpfe drücken.
Ich mache mir derzeit Gedanken wie die beste Herangehensweise aussieht. Ich habe mich etwas eingelesen und festgestellt, dass tatsächlich meist ein ganzer Bildschirm gescreent wird und dieser dann Pixel für Pixel mit einem Quellbild verglichen wird um letztendlich die Position des Buttons/Feldes (oder was man auch sucht) zu bestimmen. Diese Vorgehensweise hat mich doch sehr verwundert, da das sicher recht viel Computerressourcen in Anspruch nimmt. Daher hatte ich mir überlegt, dass man doch einen "Initialpunkt" der Anwendung (also in meinem Falle der Client vom Spiel League of Legends) herausfindet und diesen Punkt intern als (0,0) festlegt. Von da aus könnte man nun vorher definieren das Usernamefeld soll hier angeklickt werden (100,100) etc.
Wäre das eine sinnige Vorgehensweise oder ist das ganze eh veraltet und sollte man bei so etwas anders vorgehen ? Falls sinnig: Wie kann man das handlen den Initialpunkt sofort erneut zu finden, wenn der Loginclient verschoben wird (also das Fenster in dem Eingaben passieren sollen). Gibt es da sowas wie EventHandler wenn ein bestimmter Prozess verschoben wird. Kann man generell irgendwie auf Eigenschaften von anderen Prozessen zugreifen (z.B. Finde zu meinem Prozess 100 (League of Legends Client) die Größe/Start Koordinate) ?
Freue mich über jeden Tip zur Herangehensweise. Bin recht perfektionistisch, nehme mir hoffentlich nicht zu viel vor.
Viele Grüße