If Process Exists..Problem :-)

10/08/2013 22:08 Anubiz32#1
Guten Tag liebe Com.

Ich schreibe grade einen kleinen KlickBot für ein Spiel (Client).
Ich möchte nun Vor Start des Scripts prüfen ob der Spielprozess Existiert, also aktiv ist oder nicht.

Falls nicht -> msgbox und programm beenden
Falls doch -> msgbox und das eigentliche programm fortführen, ebenfalls mit gui.

Wie kann ich das verwirklichen?
hatte bisher das:

Code:
While 1	
If Not ProcessExists("game.exe") Then	 
     MsgBox(0, "Connection Error", "Please Start game, first!")
	 _Exit()	
EndIf
WEnd

While 1
Else If ProcessExists("game.exe") Then
	MsgBox(0, "Sucess", "Welcome to game KlickBot!")
	Sleep(10)	
EndIf
WEnd
Natürlich vollkommen Fehlerhaft...^^
10/08/2013 22:11 SpieleHacksInfo#2
Code:
While 1	
If Not ProcessExists("game.exe") Then	 
     MsgBox(0, "Connection Error", "Please Start game, first!")
	 _Exit()	
ElseIf ProcessExists("game.exe") Then
	MsgBox(0, "Success", "Welcome to game KlickBot!")
	Sleep(10)	
EndIf
WEnd
So?

Wobei wenn ich das so mache wie du sagst eher:
Code:
#requireAdmin

If Not ProcessExists("game.exe") Then	 
     MsgBox(0, "Connection Error", "Please Start game, first!")
	 _Exit()	
ElseIf ProcessExists("game.exe") Then
	MsgBox(0, "Success", "Welcome to game KlickBot!")
	Sleep(10)	
EndIf

While 1
;Gui etc. was auch immer
WEnd
10/08/2013 22:13 alpines#3
Das ElseIf ProcessExists("game.exe") Then ist total unnötig, weil ProcessExists entweder 0 oder die PID returned, stattdessen kann man auch einfach Else nehmen.

Außerdem ist es dumm ständig danach abzufragen (While 1), weil entweder _Exit() eintritt oder der Bot weiterläuft.
10/08/2013 22:15 Anubiz32#4
Danke aber nun Spuckt er nur ständig das Success Fenster aus ...^^
10/08/2013 22:16 SpieleHacksInfo#5
Wieso ist es dumm? Wenn du bei einem Trainer/Hack/Bot was auch immer garantieren möchtest, dass das Spiel/Programm noch läuft?
10/08/2013 22:26 Anubiz32#6
Ja! Dein Edit hat schon geholfen, vielen Dank :-)
10/08/2013 22:28 alpines#7
Das ist doch ganz einfach.
Code:
While 1	
If Not ProcessExists("game.exe") Then	 
     MsgBox(0, "Connection Error", "Please Start game, first!")
	 _Exit()	
ElseIf ProcessExists("game.exe") Then
	MsgBox(0, "Success", "Welcome to game KlickBot!")
	Sleep(10)	
EndIf
WEnd
Wenn man davon ausgeht das _Exit das Programm schließt, dann bringt das While 1 - WEnd einfach nichts, weil entweder _Exit() ausgeführt wird oder der Bot "läuft", was in diesem Fall Sleep(10) wäre.
10/08/2013 22:37 SpieleHacksInfo#8
Anscheinend hast du noch nie etwas der gleichen geschrieben.

Was ich meinte mit dem Checken ist:
Code:
#requireAdmin

While 1 ;<----main schleife

If Not ProcessExists("game.exe") Then	 
  MsgBox(0, "Connection Error", "Please Start game, first!")
	 _Exit()	
ElseIf ProcessExists("game.exe") Then

	Sleep(10)	
EndIf
;<---gui
WEnd
Also wird das Programm durch den Bot selbst oder das Beenden des Spiels beendet.
10/08/2013 23:23 Anubiz32#9
Kann ich es auch so einstellen das die Klicks nur innerhalb des prozesses ausgeführt werden? Also nur in dem Fenster?

Oder was anderes, kann autoit ein fenster selbständig in die richtige position schieben?
10/08/2013 23:28 Kuzan'#10
Quote:
Originally Posted by Anubiz32 View Post
Kann ich es auch so einstellen das die Klicks nur innerhalb des prozesses ausgeführt werden? Also nur in dem Fenster?

Oder was anderes, kann autoit ein fenster selbständig in die richtige position schieben?
[Only registered and activated users can see links. Click Here To Register...]
10/09/2013 17:21 KDeluxe#11
Quote:
Originally Posted by Anubiz32 View Post
Danke aber nun Spuckt er nur ständig das Success Fenster aus ...^^
Logisch, du hast die MsgBox() schließlich in einer While-Schleife.

Quote:
Originally Posted by Anubiz32 View Post
Kann ich es auch so einstellen das die Klicks nur innerhalb des prozesses ausgeführt werden? Also nur in dem Fenster?

Oder was anderes, kann autoit ein fenster selbständig in die richtige position schieben?
Zum klicken in einem bestimmten Fenster kannst du entweder meine PostMessage UDF (findest du hier im Forum) verwenden oder ControlSend().
Zum verschieben eines Fensters gibt es die Funktion WinMove().