PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [VB.NET] Textboxen und anderes aus einem Externen Programm Ansprechen



NavanBethrax
01.02.2010, 23:05
Gibt es eine möglichkeit in VB.Net Textboxen und Buttons eines andern Programms anzusprechen so das man z.B. den Button in einem anderen Programm drückt oda etwas in die Textboxen einträgt ich meine da mal sowas gelesen zu haben aba das habbich nicht ganz verstanden ...

Vll kann mir hier das jemand besser erläutern O.O

Schonmal vielen dank im Vorraus ^^

Karlito
01.02.2010, 23:59
kommt ganz drauf an, aber in den meisten fällen musst du nur die DLL inportieren und dann ein bischen mit den befehlen der DLL arbeiten...

hast du einen Compiler der Microsoft Express Edition machst du das einfach über "Verweise Hinzufügen"
dann siehst du eine übersicht von DLL´s und fügst die dann hinzu...dann noch im quelltext aufrufen un los probieren ;)

Sawyer
02.02.2010, 05:38
Nur für bestimmte Programme gibt es eine dll um ein Programm xy anzusteuern. Mir fällt dazu nur SendKeys ein, möglich das es aber noch andere Möglichkeiten gibt.

MfG, Sawyer

Karlito
02.02.2010, 08:22
aber vorher noch das fenster via prozess namen in den vordergrund setzen! sonst kommt der key nich an ^^
den scource muss ich mal raus suchen...hatte mit sowas mal probiert nen bot für ein game zu machen..der sollte aber auch nur eine aktion immer wieder machen.. :D
bei mehreren aktionen ist die methode leider etwas unpraktisch...


ich hätte eine idee...aber is nur die blanke theorie
jeder button, jede textbox hat ja ne bestimmte adresse oder?
als RAM adresse vorliegend, da der befehl ja nur sekundär im rechen-prozess ist...
leider weiß ich nich ganz wie man diese adresse rausfinden soll, klar gibt es programme mit denen man die auslesen kann...aber ka wie ich auf das spezielle element komme...

ich hoffe ich konnte ein paar nützliche denk-anstöße geben ;)

PAN
02.02.2010, 08:41
Du kannst das Tool "MIT" (aKa. "Sikuli") im zusammenhang mit VB.Net nutzen!
Also du machst Screenshots mit "MIT" und machst nen MINICODE (Benötigt aber Java!)
War letztens hier noch in den News!

MfG

Darkraiser
02.02.2010, 10:36
Soweit ich weiß ist sowas mit handles bzw Childhandles möglich. Finde einfach das Child Handle herraus und somit kannst du lesen/schreiben oder halt auch in einer form drücken ;).

http://www.pinvoke.net/default.aspx/user32.findwindowex

vllt nützt er dir ja was :)

mfg

NavanBethrax
02.02.2010, 11:01
Danke für die Zahlreichen antworten ich guck mir das mal an und melde mich wennich was gefunden hab was ich verwenden kann ... mit Sendkey klappts net ganz weil ich auch ein klick brauche .

Könnte es auch in AutoIt machen aba das wär sau viel Arbeit und würde den ablauf nicht grade beschleunigen und das Problem ist auch immer das die Fenster nicht immer am selben Punkt sind ^^

Zu dem mit dem Arbeitsspeicher fällt mir nur CheatEngine oda ähnliches ein vll einfach mal suchen kannst ja vll den inhalt der Textboxen finden was ich aba i-wie nicht glaube aba nen Button denk ich mal nicht o.ô

MfG Navan

Code-C4
02.02.2010, 20:04
doch es gibts eine möglichkeit du Spricht den Prozess mit dem jeweiligen "Text" inhalt an und machst ein senkey befehl^^ dazu habe ich auch ein Tool mal rausgebraucht hießt To-Send


http://code-c4.com/tut/img/bsp.png

NavanBethrax
02.02.2010, 20:30
Auf was war das jetzt bezogen ?

Und was macht dein programm bitte genau ??

Code-C4
02.02.2010, 20:34
auf das 1 topic von dir ist das bezogen und es schick
den prozess befehle je nach dem ^^
oder wolltest du was anderes wissen...

VooDoo666
02.02.2010, 20:36
Parameter?

Toastbrot
02.02.2010, 20:44
Du kannst auch die Position des Fenster bestimmen. Und zwar mit der API GetWindowRect. Mausklicks lassen sich selbstverständlich auch simulieren, hab aber grad keine Funktion zur Hand, einfach mal googlen.

Die Sendkeys Methode ist natürlich nicht sehr elegant (und ganz nebenbei auch stark fehlerbehaftet) . Eine Lösung wie Karlito sie beschrieben hat wäre natürlich genial!