PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Buttons in anderen Programmen Betätigen



DragonTHB
25.01.2014, 11:32
Guten Tag

Ich würde gerne in C# ein Programm schreiben, welches in einem anderen Programm Buttons drückt. Das Problem ist nur, dass die Buttons nicht immer am selben Ort sind und das die Buttons in Zeitlich unterschiedlichen abständen betätigt werden weshalb die fertigen Autoclicker rausfallen. Kennt jemand für diesen Zweck gute Tutorials oder weis jemand mit welchen Comandos ich mich für diesen Zweck beschäftigen sollte?.

Es wäre auch super wenn die Befehle ausgeführt werden während das Zielprogramm minimiert ist.

Meine Kenntnisse in C# sind einigermaßen gut.

Picojetflyer
25.01.2014, 14:03
Früher hab ich so etwas mit Dll-Hocks gemacht. Hab vorher die Speicheradresse gesucht die verändert wird wenn der Knopf gedrückt wird. Mit der angehängten DLL hab ich dann nur die Speicheradresse manipuliert. Problematisch waren immer Virenscanner weil die so etwas als Trojaner erkannt haben. Ein anderer Weg wäre das Button-Element in der Anwenung zu suchen. Oft sind die Anwendungen (exe) komprimiert, dann kommt man schlecht an die Routine ran. Suche mal MS Spy++, damit etwas Glück kommst du damit an die Klassennamen deines Programms. Mit den Klassennamen und der Prozess-ID kannst du dann relativ einfach dein Programm steuern. Aber wie gesagt, wenn die Exe komprimiert ist geht das nicht mehr.

Auf die schnelle hab ich das hier gefunden. Ist VB.Net aber vielleicht hilft dir das ja.

http://www.vb-paradise.de/allgemeines/sourcecode-austausch/52884-button-in-minimierte-anwendung-klicken/

DragonTHB
25.01.2014, 14:21
Danke für die Antwort.
Habe es schon mit MS Spy probiert, da sehe ich leider nichts auder das das Programm läuft.
Ja ich hatte gestern auch ein TUT mit VB gesehen, aber ich würde es gerne mit C# machen weil ich das halt kenne.

Picojetflyer
25.01.2014, 15:28
Dann wird die Exe gepackt sein. Entweder um die Exe vor reverse engineering zu schützen oder es sind noch Dll's oder der gleichen an der Exe an gehangen um das Programm schlanker zu machen. Suche mal nach UPX, oder Wrapper, da kannst du dich über das Verfahren etwas schlauer machen. Aber um so an die Klassen zu kommen wird das kein leichter weg. Versuche doch mal über die Programm-ID die Speicherblöcke auszulesen. Dafür sollte es TUTs wie Sand am Meer geben, auch für C#