Hilfe bei Bot

11/15/2011 14:23 *_Noxo_*#1
Hallo epvp,
ich hab gestern angefangen mir einen kleinen Bot zu schreiben, welcher mir ein wenig bei einem Projekt hilft. Leider bin ich Neuling was das Schreiben solcher Programme angeht und hab versucht mich mit Tut's Stück für Stück zum Ziel zu arbeiten. Nun hat sich jedoch ein kleines Problem eingeschlichen, nämlich führt der Bot immer nur den ersten Befehl aus (ins entsprechende Fenster zu wechseln) und ignoriert dann alles weitere.
Code:
While 1
	$msg = GUIGetMsg()
	Select
	Case $msg = -3
		Exit
	Case $msg = $Button1
		WinActivate ( "Projekt F16" )
		MouseClick ( "Right", 698, 508, 2)
	EndSelect
WEnd
Auch mit MauseMove passiert nichts weiter als, dass er das Projektfenster öffnet. Drehe ich die Befehle um, so wird wieder nur der erste Befehl ausgeführt und der 2. nicht. Ich hoffe mal einer von euch kann mirsagen was ich falsch mache.
Vielleicht kann mir auch jemand genauer erklären wie ich einen Hotkey zum Ein-/Ausschalten des Bots setze, so das ich ihn aus dem Profektfenster her nutzen kann.

MfG,
Noxo
11/15/2011 14:59 Tobolobo#2
Statt "Select" muss Switch $msg stehen.... und natürlich EndSwitch und bei Case muss des "$msg = " noch raus dann sollts gehn
11/15/2011 15:24 *_Noxo_*#3
Ich habs jetzt mal mit Switch/EndSwitch versucht und leider bleibt das Problem das selbe. Das Projektfenster öffnet sich und die Maus bleibt wo sie ist.

Was mich noch interessieren würde, wie kann ich schreiben, dass der Bot bei betätigen des Buttons nicht in einer Endlosschleife loslegt sondern die Schleife nur einige male Durchführt.
11/15/2011 18:03 sᴛᴇcʀz#4
Ersetz deine While-Schleife mal durch diese hier. (Hab mal nur jetzt Select durch Switch ersetzt, vielleicht hattest du da nen Fehler)
Wenns dann nicht geht poste mal den ganzen Code (:

Code:
While 1
	Switch GuiGetMsg()
		Case -3
			Exit
		Case $Button1
			WinActivate("Projekt F16")
			MouseClick("Right",698,508,2)
	EndSwitch
WEnd
11/15/2011 18:30 *_Noxo_*#5
mit der Schleife funktionierts jetzt zumindest halb. Das Fenster wechselt nur wird der MouseClick wieder ignoriert, dreh ich die beiden Befehle jedoch um, also zuerst MouseClick und danach WinActivate läuft beides ab. Könnts dran liegen, dass der Mauszeiger im Projektfenster ein anderer ist?
11/15/2011 18:46 Njahs#6
versuch mal mit nem sleep dazwischen
PHP Code:
While 1
    
Switch GuiGetMsg()
        Case -
3
            
Exit
        Case 
$Button1
            WinActivate
("Projekt F16")
                        
Sleep (750)
            
MouseClick("Right",698,508,2)
    EndSwitch
WEnd 
11/16/2011 08:59 butter123#7
oder statt dem sleep dashier: [Only registered and activated users can see links. Click Here To Register...]

dann wartet er auch wirklich nur solange (und nicht länger), bis das fenster aktiv ist