Script macht nichts

08/02/2015 07:09 Moneypulation#1
Hey,

ich würde gerne einen Bot veröffentlichen, jedoch hindert mich eine Sache dran. Es ist ein background bot, also sollte er funktionieren, während der Benutzer was anderes am PC macht. Jedoch wird das Script nur ausgeführt, wenn ich mit der Maus über meine Form fahre. Wenn ich es z.B. minimiere oder einfach mit der Maus woanders hingehe, macht es überhaupt nichts mehr. Hier mal ein Video dazu:

[Only registered and activated users can see links. Click Here To Register...]

Weiß jemand, woran es liegt und wie ich es fixen könnte?
08/02/2015 11:28 Daifoku#2
ohne die Implementierung vom Bot kann man da leider nicht viel zu sagen. Mag zwar überraschend klingen, aber wir - die hier anwesenden - sind keine Hellseher sondern programmierer :O

Zeig doch mal ein bisl Code, wie das ganze funktioniert und dann können wir eine Fehleranalyse machen. Ich kann jetzt nur Raten und würde sagen, dass es an WM_PAINT liegt.. das ergibt aber auch wenig sinn, daher poste doch mal was ;)
08/02/2015 11:38 Moneypulation#3
Also ich starte einen IE Browser in einer GUI und bewege die außerhalb des Bildschirmes. Dann mach ich Screenshots vom Fenster und durchsuche diese mit Pixel-/ImageSearch und sende mit ControlClick die Mausklicks an das Fenster.

Aber selbst meine Adlibfunktion zum Aktualisieren des "Runtime" Labels, pausiert, wenn ich mit meiner Maus nicht über die Form fahre. Das ist doch merkwürdig
08/02/2015 12:15 Daifoku#4
Möglichkeiten:
  1. AdLibRegister blockiert
  2. das GUI ist falsch implementiert

Wenn adlibregister eine Funktion ausführt, wird alles andere zwanghaft pausiert. Wenn deine adblib-funktion also zu lange läuft, kann die Message Schleife der GUI nicht mehr laufen.

Angenommen du hast bei adlib den defaultparameter verwendet, dann wird adlib die Funktion alle 250ms aufrufen. Wenn die Funktion länger als 250ms läuft wirst du
1.) einen Bufferoverflow nach einer Zeit hervorrufen und
2.) die Funktion stoppt nie und führt zu dem beschriebenen lock.

Wenn das GUI falsch implementiert wurde, z.b. ein Loop im MessageLoop , wirst du ebenfalls einen Deadlock herbeirufen.
08/02/2015 12:17 alpines#5
Du hast doch sicherlich eine Haupt-Schleife für deinen Bot und irgendwo bleibt der dadrinne stecken. Setz doch hinter jedem Befehl ein Nachricht / Tooltip damit du siehst wo genau der Bot stecken bleibt wenn er nicht mehr fokussiert ist. Vermutlich ist es einer der IE Funktionen (obwohl die hier eigentlich glaube ich nur fürs Navigieren verwendet werden).

@Daifoku, wenn die Adlib-Funktion nur die Zeit aktualisiert dann kann diese das nicht blockieren.
08/03/2015 13:45 Moneypulation#6
Hab nach jedem befehl nun ein consolewrite hinzugefügt und geschaut. Das script stoppt einfach an der stelle wo es grad war und läuft dann noch zwar, jedoch 1000 mal langsamer, sodass ich vielleicht 1 frame pro minute bekomme. Es liegt nicht an einer bestimmten funktion. Selbst eine TimerDiff funktion braucht dann mehrere sekunden. Das ist echt seltsam und hindert mich grad komplett den bot zu releasen. Weiß keiner woran das liegen könnte?
08/03/2015 13:50 Daifoku#7
Entferne zu Testzwecken mal alle Adlib-Aufrufe
08/03/2015 13:51 Moneypulation#8
Quote:
Originally Posted by Daifoku View Post
Entferne zu Testzwecken mal alle Adlib-Aufrufe
Hatte ich bereits. Daran liegts nicht
08/03/2015 21:01 alpines#9
Vielleicht bremst Windows ja das Programm aus, setz mal die Priorität auf Hoch/Echtzeit, das sollte dein Programm vielleicht nicht mehr ausbremsen. Fürs erste kannst du das im TaskMgr machen, danach solltest du eine UDF verwenden (gibt bestimmt schon welche).
08/04/2015 07:03 Moneypulation#10
Quote:
Originally Posted by alpines View Post
Vielleicht bremst Windows ja das Programm aus, setz mal die Priorität auf Hoch/Echtzeit, das sollte dein Programm vielleicht nicht mehr ausbremsen. Fürs erste kannst du das im TaskMgr machen, danach solltest du eine UDF verwenden (gibt bestimmt schon welche).
Gute Idee aber das hat leider auch nichts gebracht :(