AutoIt no reaction

06/27/2011 17:04 Stunns#1
Hi everyone,
I saw a Tutorial on elitepvpers about AutoIt and I tried the "PixelSearch". But when I press the Hotkey nothing happens?! I run AutoIt on Windows 7 64bit.
And this is the "PixelSearch":
Code:
HotKeySet("{NUMPADENTER}", "_getPosition")

$x = 0
$y = 0
$color = 0
$status = "off"

While 1
	sleep("1")
WEnd

Func _getDefault()
	$coord = MouseGetPos()
	$x = $coord[0]
	$y = $coord[1]
	$color = Hex(PixelGetColor( $coord[0], $coord[1]), 6)
	$status = "on"
EndFunc
I've got no experience with AutoIt, and I hope somebody can help me.
Best Regards
Stunns

Sorry for my bad English :)
06/27/2011 17:47 BlackHybrid#2
HotKeySet("{NUMPADENTER}", "_getPosition")
Func _getDefault()
Your function names are different. Change _getDefault() to _getPosition().
06/27/2011 19:39 Stunns#3
German:Ich hab gesehen das du auch Deutsch kannst vielleicht ist es so einfacher ;) Es funktioniert leider immernoch nicht, wenn ich Numpad-enter Drücke passiert rein garnichts. Aber um die Mausposition + Farbe zu bestimmten hab ich jetzt einfach "AutoIt Window Info" genommen. Ich habe jetzt ein anderes Problem. Ich habe ursprünglich ein Script gesucht womit ich einen Pixel "überprüfen" kann und sobald sich seine Farbe ändert automatisch "1" gedrückt wird. In dem Forum wurde mir auch ein AutoIt "Script" gepostet welches leider auch nicht Funktioniert. Sieht für mich nach dem ersten Code aus wie ein "halbes" Programm.
Code:
$x = 644
$y = 482
$color = 0xe9ebde 

While $color <> PixelGetColor($x, $y)
  Sleep(100)
WEnd

Send("{1}")
Kannst du dir das mal angucken, bzw. vllt. hast du ja bereits ein "Script" zur Hand was dasselbe kann. Danke schonmal ;)
Viele Grüße
Stunns

English:It still doesn't work, but I've fixed the Problem with my MousePosition. Now I've got another Problem, in another Forum I've searched for an Script that presses "1" if a pixel becomes a special colour, but it don't work. Nothing happens. The Code is in the German Post. I think it isn't complete. I Hope you can help me.

Best Regards Stunns
06/27/2011 19:51 BlackHybrid#4
PHP Code:
$x 644
$y 
482
$color 
0xe9ebde 

While $color PixelGetColor($x$y)
  
Sleep(100)
WEnd

Send
("{1}"
So müsste es aussehen. Er bleibt solange in der schleife, wie $color = PixelGetColor($x, $y) ist. Wen das nicht mehr der Fall ist geht er aus der Schleife und Sendet die 1.
06/27/2011 20:00 Stunns#5
Vielen Dank, leider hat er bei mir garnichts gesendet, weder während der Pixel änderung, noch danach. Genauso wie bei dem Programm davor, mir kommts so vor wenn ich mit Rechtsklick auf "Run Script" drücke, startet zwar das Script, wird mir auch in der Schnellstartleiste unten links angezeigt, aber es passiert einfach nichts, weder bei dem Hotkey script, noch bei diesem Script.
06/27/2011 21:01 BlackHybrid#6
Oder du hast irgendwas falsch gemacht :P
Was sollte eigentlich das mit dem Hotkey bewirken?
Wenn du den Hotkey drückst kann ja für dich sichtbar passieren.
06/27/2011 21:24 Stunns#7
Das mit dem Hotkey hab ich aus irgendeinem der Tutorial Foren hier, naja egal, das war dafür da das bei nem Hotkey die Koordinaten sich in die jetzigen Koordinaten des Mauszeigers und die Farbe, in die Farbe des Pixels wo der Mauszeiger draufzeigt, ändert. Naja egal,
mir geht es um das Script welches ich gepostet habe. Es soll, wenn sich die Farbe der Position in die angegebene ändert sofort 1 drücken. Aber wenn ich das Script starte und in dem Programm ändert sich die Farbe passiert einfach garnichts. Und ich habe das Gefühl das ist bei allen AutoIt Porgrammen bei meinem PC.
06/27/2011 21:32 lolkop#8
die wahrscheinlichkeit das autoit nicht funktioniert ist mindestens 99,9% geringer, als das dein code einfach nur nicht funktional geschreiben wurde...

die wahrscheinlichkeit das deine maus genau auf den pixel zeigt, welcher eine gewsse farbe haben soll geht je nach ziel gegen 0.

Code:
While Sleep(50)
	$pos = MouseGetPos()
	ToolTip(Hex(PixelGetColor($pos[0],$pos[1])))
WEnd
das sollte dir immer die aktuelle farbe an der stelle an der sich deine maus befindet anzeigen.
06/27/2011 21:52 Stunns#9
Danke lolkop, das mit AutoIt kann gut sein, wie gesagt hab keine Erfahrung damit kopiere die Scripts nur ausm Forum...allerdings die Pixel Koordinate + Farbe hab ich mit AutoIt Window Info gemacht, ich glaub das Funktioniert auch, aber ich suche immernoch nen Script, welches einen bestimmten Bereich eines Programms "überprüft" und bei einer Veränderung in diesem Bereich sofort 1 drückt. Mir wurde gesagt am besten geht das mit dem "PixelGetColor", ich hab keine Ahnung, ich verlass mich auf die Meinungen die ich kriege.

/edit: Das erste AutoIt Script was funktioniert :) Danke funktioniert perfekt. Jetzt brauch ich nurnoch Hilfe für mein "Reaktionsscript" (s. oben)

/edit2: Also mein Reaktionsscript drückt jetzt "1", allerdings sobald ich das Programm als "Aktiv" angewählt habe, und nicht wenn, wie Gedacht der Pixel sich in die richtige Farbe färbt. Kann mir jemand helfen?
Code:
#RequireAdmin
$x = 534
$y = 154
$color = 0xBF0101

WinWaitActive ("Schnick")

While $color = PixelGetColor($x, $y)
  Sleep(100)
WEnd 

Send ("1")