AutoIt login Bot Frage

08/13/2010 19:56 Rorc#1
Hallo an alle,

Ich wollte gerne mal nen LoginBot mit AutoIT machen und nun habe ich ein kleines Problem:
Ich habe versucht, dass er überprüft ob 3 Farben des Login Bildschirmes stimmen und habe gemerkt, dass AutoIT das irendwie nicht schafft...
Nun wollte ich fragen, ob es da eine Möglichkeit gibt, das zu umgehen, oder eine andere Idee geben könnt wie ich es machen soll, dass er wartet bis der Login Bildschirm auftaucht.

Würde mich über Hilfe sehr freuen, und kommt mir nicht mit: "Nimm doch Mipez Loginbot der ist gut blabla", Ich weiss dass er gut ist aber ich will selber einen machen. :D
Mfg Oodama
08/13/2010 21:03 mipez#2
Quote:
Originally Posted by Oodama View Post
Hallo an alle,

Ich wollte gerne mal nen LoginBot mit AutoIT machen und nun habe ich ein kleines Problem:
Ich habe versucht, dass er überprüft ob 3 Farben des Login Bildschirmes stimmen und habe gemerkt, dass AutoIT das irendwie nicht schafft...
Nun wollte ich fragen, ob es da eine Möglichkeit gibt, das zu umgehen, oder eine andere Idee geben könnt wie ich es machen soll, dass er wartet bis der Login Bildschirm auftaucht.

Würde mich über Hilfe sehr freuen, und kommt mir nicht mit: "Nimm doch Mipez Loginbot der ist gut blabla", Ich weiss dass er gut ist aber ich will selber einen machen. :D
Mfg Oodama
Hm, da helf ich gerne^^
Also, welche Farben suchst du denn genau?
Ich würde die beiden Eingabefelder empfehlen. Farbe is 3C4757 (Hex).

Soll es auflösungsunabhängig sein?
Ich würde dir für den Anfang eine feste Auflösung vorschlagen, halt die, mit der du normalerweise spielst.
08/13/2010 21:24 Rorc#3
Erstens mal , wieso ist dein benutzerbild so gross?? xDD
Zweitens, habe ich das Gefühl, das bei mir wenn ich mit AutoIT irgendwas mit Farben machen will, und S4 offen ist dass es nicht funktioniert.
Was kann ich dagegen machen?
08/13/2010 21:27 mipez#4
Quote:
Originally Posted by Oodama View Post
Erstens mal , wieso ist dein benutzerbild so gross?? xDD
Zweitens, habe ich das Gefühl, das bei mir wenn ich mit AutoIT irgendwas mit Farben machen will, und S4 offen ist dass es nicht funktioniert.
Was kann ich dagegen machen?
Ich habmal n verbuggtes Bild erstellt xD

WinWait("S4 Client")
Do
...
Until

Also erst Script starten, dann S4.
08/13/2010 21:44 Rorc#5
Ich stelle mal mein Script rein vielleicht ist es noch zu retten:
Code:
#RequireAdmin
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Opt("TrayMenuMode", 1)
Opt("TrayMenuMode", 1)
Opt("TrayMenuMode", 1)
Opt("TrayMenuMode", 1)
Opt("TrayMenuMode", 1)
#Region ### START Koda GUI section ### Form=
$Bot = GUICreate("Login-Bot by Oodama", 476, 257, 203, 206)
GUISetBkColor(0xC0C0C0)
$Name = GUICtrlCreateInput("", 24, 48, 257, 21)
$Pass = GUICtrlCreateInput("", 24, 112, 257, 21,$ES_PASSWORD)
$Label1 = GUICtrlCreateLabel("Benutzername:", 104, 24, 126, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Passwort:", 128, 80, 82, 24)
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")
$Go = GUICtrlCreateButton("Log In !", 328, 40, 137, 65, 0)
GUICtrlSetFont(-1, 14, 400, 0, "MS Sans Serif")
$Save1 = GUICtrlCreateButton("Save 1", 24, 160, 75, 25, 0)
$Load1 = GUICtrlCreateButton("Load 1", 24, 192, 75, 25, 0)
$Save2 = GUICtrlCreateButton("Save 2", 104, 160, 75, 25, 0)
$Load2 = GUICtrlCreateButton("Load 2", 104, 192, 75, 25, 0)
$Save3 = GUICtrlCreateButton("Save 3", 184, 160, 75, 25, 0)
$Load3 = GUICtrlCreateButton("Load 3", 184, 192, 75, 25, 0)
$Save4 = GUICtrlCreateButton("Save 4", 264, 160, 75, 25, 0)
$Load4 = GUICtrlCreateButton("Load 4", 264, 192, 75, 25, 0)
$Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Kevin Wüst\Eigene Dateien\Eigene Bilder\Arcane_Rune_Circle_by_thy6sins6of6lust.jpg", 344, 120, 124, 108, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
TraySetClick("9")
$MenuItem1 = TrayCreateItem("Window Show")
$MenuItem2 = TrayCreateItem("Window Hide")
$MenuItem3 = TrayCreateItem("Close Program")
$MenuItem4 = GUICtrlCreateMenu("Options")
$MenuItem8 = GUICtrlCreateMenu("Save", $MenuItem4)
$MenuItem12 = GUICtrlCreateMenuItem("Place 1", $MenuItem8)
$MenuItem11 = GUICtrlCreateMenuItem("Place 2", $MenuItem8)
$MenuItem10 = GUICtrlCreateMenuItem("Place 3", $MenuItem8)
$MenuItem9 = GUICtrlCreateMenuItem("Place 4", $MenuItem8)
$MenuItem5 = GUICtrlCreateMenu("Load", $MenuItem4)
$MenuItem16 = GUICtrlCreateMenuItem("Place 1", $MenuItem5)
$MenuItem15 = GUICtrlCreateMenuItem("Place 2", $MenuItem5)
$MenuItem14 = GUICtrlCreateMenuItem("Place 3", $MenuItem5)
$MenuItem13 = GUICtrlCreateMenuItem("Place 4", $MenuItem5)
$MenuItem17 = GUICtrlCreateMenuItem("Close Program", $MenuItem4)
$MenuItem7 = GUICtrlCreateMenu("Credits")
$MenuItem20 = GUICtrlCreateMenuItem("Credits", $MenuItem7)
$MenuItem6 = GUICtrlCreateMenu("Need Help?")
$MenuItem18 = GUICtrlCreateMenuItem("Short Help", $MenuItem6)
$MenuItem19 = GUICtrlCreateMenuItem("Link to Thread", $MenuItem6)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$farbe1=0x000000
$bn=GuiCtrlRead($Name)
$pw=GUICtrlRead($Pass)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
	    Case $Go
			If PixelGetColor(1108,79) or PixelGetColor(300,707)=$farbe1 = False Then
				ToolTip("Waiting For Login Screen!",0,0)
			ElseIf PixelGetColor(1108,79) and PixelGetColor(300,707)=$farbe1 Then
				MouseClick("left",652, 420)
				Send($bn)
				Send("{Tab}")
				Send($pw)
				Send("{Enter}"
				Tooltip("Erfolgreich Eingeloggt!")
				Sleep(2500)
				ToolTip()
				Exit
				EndIf
	EndSwitch
WEnd
Ähm und das mit WinWait begreif ich nicht ganz sry <.<
08/13/2010 22:19 mipez#6
Uff... Da is so einiges nicht ganz knorke^^
Macht aber nix, jeder fängt mal an.

Probier als erstes ein paar MsgBoxen einzubauen: MsgBox(0,"","Erfolgreich")
Z.B. nach PixelGetColor, etc. .

Ich würde erstmal so anfangen:

Code:
Opt("PixelCoordMode",0) ;setzt die Koordinaten relativ zu Fenstern

;auflösung muss in dem Fall 1280x800 sein

$x1 = 603 ;links 
$y1 = 393 ;oben
$x2 = 605 ;rechts
$y2 = 395 ;unten

If NOT WinExists("S4 Client") Then ;prüft ob S4 Client vorhanden ist
	WinWait("S4 Client") ;wenn nicht, wartets auf S4 Client bis es existiert
Else
	WinActivate("S4 Client") ;falls S4 Client existiert, wird es aktiviert
EndIf

$shandle = WinGetHandle("S4 Client") ;lädt den Handle von S4 Client, Handle kann man als spezifische Identifikation bezeichnen

Do 
	$sPixel = PixelSearch($x,$y,$x2,$y2,0x3C4757,1,"",$shandle) ;sucht exakt im S4 Client Fenster
Until IsArray($sPixel) ;bis PixelSearch erolgreich war
MsgBox(0,"","Erfolgreich")
08/13/2010 23:24 Rorc#7
Mein AutoIT ist nicht fähig farben bei s4 auszulesen o.Ä.
ich frage mich warum...??
08/13/2010 23:30 mipez#8
Quote:
Originally Posted by Oodama View Post
Mein AutoIT ist nicht fähig farben bei s4 auszulesen o.Ä.
ich frage mich warum...??
Doch ist es^^
Sonst Kompilier es mal, hilft ab und zu.
08/14/2010 16:46 Rorc#9
Hmm hilft alles nichts...
Ich hänge nachher mal meine Exe und mein Script an..
Irgendwie geht es bei mir nicht :(
Hier das Script:
Exe Kommt Gleich....
08/14/2010 17:01 mipez#10
Probier mal, nur dieses Script auszuführen:
Code:
If NOT WinExists("S4 Client") Then WinWait("S4 Client")
WinActivate("S4 Client")
Opt("PixelCoordMode",0)
$sHandle = WinGetHandle("S4 Client")
$sSize = WinGetClientSize("S4 Client")
MsgBox(0,"","")
Do 
	$sPixel = PixelGetColor($sSize[0] /2, $sSize[1] /2, $sHandle)
Until $sPixel = Dec("3C4757")
MsgBox(0,"","")
Und sag mir ob die MsgBox erscheint.
08/14/2010 17:08 Asuramaru#11
vllt liegt es an X-Trap? ;)
mir ist aufgefallen das AutoIT keine farben findet wenn S4 offen ist ;)
das hilfe tool findet immer 0x000000 wenn S4 an ist.
und Pixelsearch funktioniert auch nicht :D
08/14/2010 17:12 mipez#12
Quote:
Originally Posted by DarkGER! View Post
vllt liegt es an X-Trap? ;)
mir ist aufgefallen das AutoIT keine farben findet wenn S4 offen ist ;)
das hilfe tool findet immer 0x000000 wenn S4 an ist.
und Pixelsearch funktioniert auch nicht :D
Doch es findet sehr wohl Farben ;D
PixelSearch, PixelGetColor, etc. funktionieren einwandfrei oô
Und das Window Info Tool is eh nur für Koordinaten gut :x
08/14/2010 17:17 Rorc#13
Ganz merkwürdig...
Die MsgBox erscheint sobald mein Pc die Auflösung ändert.. :confused:
08/14/2010 17:33 mipez#14
Quote:
Originally Posted by Oodama View Post
Ganz merkwürdig...
Die MsgBox erscheint sobald mein Pc die Auflösung ändert.. :confused:
Welche Auflösung?
08/14/2010 17:33 Konata-Chan#15
Quote:
Originally Posted by mipez View Post
Doch es findet sehr wohl Farben ;D
PixelSearch, PixelGetColor, etc. funktionieren einwandfrei oô
Und das Window Info Tool is eh nur für Koordinaten gut :x
hab n einfachen script mal benutzt
Code:
#RequireAdmin


$DH = @DesktopHeight
$DH2 = $DH / 2

$DW = @DesktopWidth
$DW2 = $DW / 2

While 1	
Sleep(500)
$Colour = PixelGetColor($DH2 , $DW2)
Tooltip(HEX($colour, 6),0,0)
Wend
ganz schlicht.....
aber der gibt auch nur 000000 an......
hab es auf 32bit und auf 64bit probiert
Komplemiert und nur als script version
der gibt wenn s4 an is 000000 an....