"Send"`s in C# für einen Bot

05/20/2009 00:28 [Robert]#1
Hallo leute

Ich arbeite mit C# und bin jetzt auch im Bereich des "Gamehackings" (wenn man das schon so nennen darf)
AutoIt ist mir irgendwie unsympatisch, ich gebe meiner Entwicklungsumgebung lieber genaue und explizite Anweisungen, anstatt wie bei AutoIt alles logisch vereinfachen lassen.... aber darauf will ich jetzt garnicht näher eingehen :P

Was ich an AutoIt beneide, ist die einwandfreie Funktion und Möglichkeit, die Send-Funktion zu verwenden.
Es ist zwar möglich in C# Tastatureingaben machen zu lassen, allerdings schaffe ich es nicht dann eine bestimmte Taste (zB. A) gedrückt zu halten. Eine Alternative wie "die Taste einfach mehrmals drücken" steht nicht zur debatte; das würde nicht klappen... (getestet^^)

ein nächstes Problem wäre die Zeitspanne - wie soll gewartet werden? Bei einem System.Threading.Thread.Sleep ist ja gleich der ganze verdammte Thread am pennen und es lässt sich - während der Prozess eigentlich komplett freezt - NICHTS machen.... ein Timer wäre eine sehr sehr hässliche möglichkeit, allerdings mühsam und keine garantie auf Präzision und generelle Funktionalität......


Hat sich vielleicht jemand bereits mit dieser Problematik auseinandergesetzt und ist bereit dazu, mir da ein bisschen Rat zu geben? :-)


Vielen Dank und schöne Grüße
...aus meinem ersten Posting
...aus meinem ersten Thread.

P.S.: super Community, freue mich, hier nun auch ein Mitglied sein zu dürfen. :]

Robert
05/20/2009 10:15 __wadim#2
PostMessage kannst du benutzen um tasten an den gw clienten zu übergeben. du kannst aber genauso gut die au3 funktionen mit der autoitx.dll in deinem programm verwenden.

Quote:
ein nächstes Problem wäre die Zeitspanne - wie soll gewartet werden? Bei einem System.Threading.Thread.Sleep ist ja gleich der ganze verdammte Thread am pennen und es lässt sich - während der Prozess eigentlich komplett freezt - NICHTS machen.... ein Timer wäre eine sehr sehr hässliche möglichkeit, allerdings mühsam und keine garantie auf Präzision und generelle Funktionalität......
bei au3 wartet ja auch der gesamte process, falls sleep benutzt wurde.
das könntest du aber so lösen, dass du dein ereigniss, das nur für eine bestimmte zeit ausgeführt werden soll in eine schleife mit einer bedingung packst ;)
oder erstell doch ein thread mit einer Sleep(x) funktion.. ist aber unschön.
05/21/2009 23:08 [Robert]#3
habe jetzt schon die letzten zwei tage die ganze zeit versucht etwas hinzukriegen.... zu dem PostMessage in C# habe ich relativ wenig gefunden, dass auch funktioniert. Ich habe mich zB. an einem Beispiel mit Notepad orientiert, allerdings hat das AUSSCHLIESSLICH in noetpad geklappt, sonst nirgends - also irgendwie seltsam...

dann hab ich mir eben die dll angesehen und dann auch geschafft zu benutzen (^^) und mal etwas probiert.... jetzt kann ich alles machen mit der AU3_ControlSend() Funktion, allerdings geschieht beim Absenden von etwas immer etwas seltsames! Und zwar werden beim Absenden immer alle fenster inaktiv! Es scheint so, dass irgendwie ein unsichtbares fenster in den vordergrund kommt (auch GW wird inaktiv)

Und so kann das nicht bleiben.... also entweder ihr wisst was es mit damit aufsich hat oder ich muss weiter (ver)suchen, ob das was mit dem PostMessage in C# wird.....

vielen dank
robert