|
You last visited: Today at 03:00
Advertisement
Auto GetMousePos & Pixelsearch
Discussion on Auto GetMousePos & Pixelsearch within the AutoIt forum part of the Coders Den category.
06/07/2010, 15:06
|
#1
|
elite*gold: 0
Join Date: Jun 2010
Posts: 40
Received Thanks: 30
|
Auto GetMousePos & Pixelsearch
Hi,
arbeite seid ein paar tagen jetzt an einen kleinen "klick-bot" für ein browsergame
würde es natürlich auch iergendwann mal public machen wenn er mal richtig funktzt.. Bin jetzt zurzeit an dem Problem angelangt das natürlich nicht jeder die Auflösung 1440 x 900 hat.
Hier mal das ganze script:
(Gui ist zurzeit nur profesorisch dargestellt)
PHP Code:
#region ---Au3Recorder generated code Start ---
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Mojoklicker.v.1.0", 207, 80, 467, 328)
$start = GUICtrlCreateButton("Start", 24, 16, 153, 41, $WS_GROUP)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUICtrlSetCursor (-1, 2)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Opt("WinWaitDelay",100)
Opt("WinDetectHiddenText",1)
Opt("MouseCoordMode",0)
Global $Paused
HotKeySet("p", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("j", "Mouse")
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $start
Start()
EndSwitch
WEnd
Func Start()
_WinWaitActivate("Program Manager","")
MouseClick("left",284,887,1)
While 2
_WinWaitActivate("Online games – Seafight, the highlight of online pirate games - Mozilla Firefox","")
MouseClick("left",435,766,1)
WEnd
EndFunc
Func TogglePause()
$Paused = NOT $Paused
While $Paused
sleep(100)
ToolTip('Script is "Paused"',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func Mouse()
Mouseclick("left",291,720,1)
EndFunc
#region --- Internal functions Au3Recorder Start ---
Func _WinWaitActivate($title,$text,$timeout=0)
WinWait($title,$text,$timeout)
If Not WinActive($title,$text) Then WinActivate($title,$text)
WinWaitActive($title,$text,$timeout)
EndFunc
#endregion --- Internal functions Au3Recorder End ---
#endregion --- Au3Recorder generated code End ---
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Mojoklicker.v.1.0", 207, 80, 467, 328)
$Button1 = GUICtrlCreateButton("Start", 24, 16, 153, 41, $WS_GROUP)
GUICtrlSetFont(-1, 15, 400, 0, "MS Sans Serif")
GUICtrlSetCursor (-1, 2)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
der eigentliche teil bezieht sich ja ledeglich nur auf:
PHP Code:
Func Start()
_WinWaitActivate("Program Manager","")
MouseClick("left",284,887,1)
While 2
_WinWaitActivate("Online games – Seafight, the highlight of online pirate games - Mozilla Firefox","")
MouseClick("left",435,766,1)
WEnd
EndFunc
würde gerne an 2 Punkten was einfügen das der Benutzer selber seine Punkte/Markierungen setzen kann, weiß das sowas geht, aber wie? pixel search?,denke ist aber bestimmt schwer, hier das bild:
wäre toll wenn man mir weiterhelfen könnte!
|
|
|
06/07/2010, 15:30
|
#2
|
elite*gold: 0
Join Date: Nov 2007
Posts: 32
Received Thanks: 30
|
du kannst einfach ne funktion machen die den benutzter sagt er soll einen punkt makieren, indem er seine maus auf diesen punkt bewegt und dann z.B. STRG drückt... dadurch wird dann der Punkt gespeichert^^
Bsp.:
PHP Code:
#include <Misc.au3> ;Included die Misc.au3 für _IsPressed
Local $aBenutzerdefniertePosition = ErzeugeBenutzterdefiniertePosition() ;Erzeugt Position If Not @error Then ;Wenn es keinen Fehler gab Sleep(1000) ;Wartet kurz MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) ;Klickt auf Position EndIf
Func ErzeugeBenutzterdefiniertePosition() Local $aMousePosition MsgBox(0, 'Benutzerdefinierte Position', 'Klicken sie auf < OK > und bewegen sie ihre Maus bitte auf den "Use Joker"-Button und drücken sie dann STRG!') ;Zeigt einen Dialog Do Sleep(10) Until _IsPressed("11") ;Wartet bis STRG gedrückt wird $aMousePosition = MouseGetPos() ;Speichert die Position If not @error Then ;Wenn es keinen Fehler gab MsgBox(0, 'Benutzerdefinierte Position', 'Die Position ' & $aMousePosition[0] & 'x' & $aMousePosition[1] & ' wurde gespeichert!') ;Zeigt einen Dialog Return $aMousePosition ;Gibt die Position zurück Else MsgBox(16, 'Benutzerdefinierte Position', 'Beim Speichern der Position ist ein Fehler aufgetreten!') ;Zeigt einen Dialog Return SetError(1, 0, False) ;Gibt einen Fehler zurück EndIf EndFunc
|
|
|
06/07/2010, 15:45
|
#3
|
elite*gold: 0
Join Date: Jun 2010
Posts: 40
Received Thanks: 30
|
Quote:
Originally Posted by AMrK
du kannst einfach ne funktion machen die den benutzter sagt er soll einen punkt makieren, indem er seine maus auf diesen punkt bewegt und dann z.B. STRG drückt... dadurch wird dann der Punkt gespeichert^^
Bsp.:
PHP Code:
#include <Misc.au3> ;Included die Misc.au3 für _IsPressed
Local $aBenutzerdefniertePosition = ErzeugeBenutzterdefiniertePosition() ;Erzeugt Position If Not @error Then ;Wenn es keinen Fehler gab Sleep(1000) ;Wartet kurz MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) ;Klickt auf Position EndIf
Func ErzeugeBenutzterdefiniertePosition() Local $aMousePosition MsgBox(0, 'Benutzerdefinierte Position', 'Klicken sie auf < OK > und bewegen sie ihre Maus bitte auf den "Use Joker"-Button und drücken sie dann STRG!') ;Zeigt einen Dialog Do Sleep(10) Until _IsPressed("11") ;Wartet bis STRG gedrückt wird $aMousePosition = MouseGetPos() ;Speichert die Position If not @error Then ;Wenn es keinen Fehler gab MsgBox(0, 'Benutzerdefinierte Position', 'Die Position ' & $aMousePosition[0] & 'x' & $aMousePosition[1] & ' wurde gespeichert!') ;Zeigt einen Dialog Return $aMousePosition ;Gibt die Position zurück Else MsgBox(16, 'Benutzerdefinierte Position', 'Beim Speichern der Position ist ein Fehler aufgetreten!') ;Zeigt einen Dialog Return SetError(1, 0, False) ;Gibt einen Fehler zurück EndIf EndFunc
|
Erstmal danke für die schnelle antwort = )
Hab aber noch ein/zwei Problem(e),
1. Brauche 2 Optionen die zum festlegen gebraucht werden.
-------------------- Ok also ich hab jetzt schon herausgefunden wie
ich 2 Optionen festlegen kann, einfach nochmal das ganze kopieren und hinter ErzeugeBenutzterdefiniertePosition eine 2 geschrieben
2. Ich muss ja dann bei dem Use-Joker die gespeicherte position iergendwie
noch hier wo einfügen, wie genau ist mir aber unklar
PHP Code:
Func Mouse() Mouseclick("left",291,720,1) EndFunc
einfügen..
so dann anscheinend auch bei der 2ten Option (hab da noch was verändert)
PHP Code:
Func Start() While 2 _WinWaitActivate("Online games – Seafight, the highlight of online pirate games - Mozilla Firefox","") MouseClick("left",435,766,1) WEnd EndFunc
|
|
|
06/07/2010, 15:54
|
#4
|
elite*gold: 0
Join Date: Nov 2007
Posts: 32
Received Thanks: 30
|
Wenn du nicht verstehst wie MouseClick funktioniert, solltest du erstmal bevor du nen Bot programmierst dir dazu die Hilfedatei anguckn 
die Positionen sind in dem Rückgabewert der Funktion die ich dir geschrieben habe gespeichert^^ unzwar so:
$Blabla[0] = X-Koordinate
$Blabla[1] = Y-Koordinate
|
|
|
06/07/2010, 16:15
|
#5
|
elite*gold: 0
Join Date: Jun 2010
Posts: 40
Received Thanks: 30
|
Ok also hab jetzt bisschen probiert und meine optionen sehen so aus
PHP Code:
;<<<<<<<<< User Pos JOKER>>>>>>>>>>>>>>> Local $aBenutzerdefniertePosition = ErzeugeBenutzterdefiniertePosition() ;Erzeugt Position If Not @error Then ;Wenn es keinen Fehler gab Sleep(1000) ;Wartet kurz MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) ;Klickt auf Position EndIf
Func ErzeugeBenutzterdefiniertePosition() Local $aMousePosition MsgBox(0, 'Benutzerdefinierte Position', 'Klicken sie auf < OK > und bewegen sie ihre Maus bitte auf den "Use Joker"-Button und drücken sie dann STRG!') ;Zeigt einen Dialog Do Sleep(10) Until _IsPressed("11") ;Wartet bis STRG gedrückt wird $aMousePosition = MouseGetPos() ;Speichert die Position If not @error Then ;Wenn es keinen Fehler gab MsgBox(0, 'Benutzerdefinierte Position', 'Die Position ' & $aMousePosition[0] & 'x' & $aMousePosition[1] & ' wurde gespeichert!') ;Zeigt einen Dialog Return $aMousePosition ;Gibt die Position zurück Else MsgBox(16, 'Benutzerdefinierte Position', 'Beim Speichern der Position ist ein Fehler aufgetreten!') ;Zeigt einen Dialog Return SetError(1, 0, False) ;Gibt einen Fehler zurück EndIf EndFunc ;<<<<<<<<<<<<< User Pos Ende JOKER>>>>>>>>>>>>>
;<<<<<<<<<<<< USER POS MOJO >>>>>>>>>>>>>>>> Local $aBenutzerdefniertePosition = ErzeugeBenutzterdefiniertePosition2() ;Erzeugt Position If Not @error Then ;Wenn es keinen Fehler gab Sleep(1000) ;Wartet kurz MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) ;Klickt auf Position EndIf
Func ErzeugeBenutzterdefiniertePosition2() Local $aMousePosition MsgBox(0, 'Benutzerdefinierte Position', 'Klicken sie auf < OK > und bewegen sie ihre Maus bitte auf den "Mojo-Einwurf"-Button und drücken sie dann STRG!') ;Zeigt einen Dialog Do Sleep(10) Until _IsPressed("11") ;Wartet bis STRG gedrückt wird $aMousePosition = MouseGetPos() ;Speichert die Position If not @error Then ;Wenn es keinen Fehler gab MsgBox(0, 'Benutzerdefinierte Position', 'Die Position ' & $aMousePosition[0] & 'x' & $aMousePosition[1] & ' wurde gespeichert!') ;Zeigt einen Dialog Return $aMousePosition ;Gibt die Position zurück Else MsgBox(16, 'Benutzerdefinierte Position', 'Beim Speichern der Position ist ein Fehler aufgetreten!') ;Zeigt einen Dialog Return SetError(1, 0, False) ;Gibt einen Fehler zurück EndIf EndFunc ;<<<<<<<<<<<<<<<<< USER POS MOJO ENDE >>>>>>>>>>>>>>>>>>>
Meine Func sieht so aus:
Mojo:
PHP Code:
Func Start() While 2 _WinWaitActivate("Online games – Seafight, the highlight of online pirate games - Mozilla Firefox","") MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) WEnd EndFunc
Joker:
PHP Code:
Func Mouse() MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) EndFunc
Funktioniert soweit, bisauf das Joker die selbe pos hat wie Mojo, was auch klar ist weil beide ("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) haben.
aber weiß nich wie ichs ändern soll
----------------------------------------
Problem gelöst =)
PHP Code:
;<<<<<<<<< User Pos JOKER>>>>>>>>>>>>>>> Local $aBenutzerdefniertePosition = ErzeugeBenutzterdefiniertePosition() ;Erzeugt Position If Not @error Then ;Wenn es keinen Fehler gab Sleep(1000) ;Wartet kurz MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) ;Klickt auf Position EndIf
Func ErzeugeBenutzterdefiniertePosition() Local $aMousePosition MsgBox(0, 'Benutzerdefinierte Position', 'Klicken sie auf < OK > und bewegen sie ihre Maus bitte auf den "Use Joker"-Button und drücken sie dann STRG!') ;Zeigt einen Dialog Do Sleep(10) Until _IsPressed("11") ;Wartet bis STRG gedrückt wird $aMousePosition = MouseGetPos() ;Speichert die Position If not @error Then ;Wenn es keinen Fehler gab MsgBox(0, 'Benutzerdefinierte Position', 'Die Position ' & $aMousePosition[0] & 'x' & $aMousePosition[1] & ' wurde gespeichert!') ;Zeigt einen Dialog Return $aMousePosition ;Gibt die Position zurück Else MsgBox(16, 'Benutzerdefinierte Position', 'Beim Speichern der Position ist ein Fehler aufgetreten!') ;Zeigt einen Dialog Return SetError(1, 0, False) ;Gibt einen Fehler zurück EndIf EndFunc ;<<<<<<<<<<<<< User Pos Ende JOKER>>>>>>>>>>>>>
;<<<<<<<<<<<< USER POS MOJO >>>>>>>>>>>>>>>> Local $bBenutzerdefniertePosition = ErzeugeBenutzterdefiniertePosition2() ;Erzeugt Position If Not @error Then ;Wenn es keinen Fehler gab Sleep(1000) ;Wartet kurz MouseClick("LEFT", $bBenutzerdefniertePosition[0], $bBenutzerdefniertePosition[1]) ;Klickt auf Position EndIf
Func ErzeugeBenutzterdefiniertePosition2() Local $aMousePosition MsgBox(0, 'Benutzerdefinierte Position', 'Klicken sie auf < OK > und bewegen sie ihre Maus bitte auf den "Mojo-Einwurf"-Button und drücken sie dann STRG!') ;Zeigt einen Dialog Do Sleep(10) Until _IsPressed("11") ;Wartet bis STRG gedrückt wird $aMousePosition = MouseGetPos() ;Speichert die Position If not @error Then ;Wenn es keinen Fehler gab MsgBox(0, 'Benutzerdefinierte Position', 'Die Position ' & $aMousePosition[0] & 'x' & $aMousePosition[1] & ' wurde gespeichert!') ;Zeigt einen Dialog Return $aMousePosition ;Gibt die Position zurück Else MsgBox(16, 'Benutzerdefinierte Position', 'Beim Speichern der Position ist ein Fehler aufgetreten!') ;Zeigt einen Dialog Return SetError(1, 0, False) ;Gibt einen Fehler zurück EndIf EndFunc ;<<<<<<<<<<<<<<<<< USER POS MOJO ENDE >>>>>>>>>>>>>>>>>>>
PHP Code:
Func Start() While 2 _WinWaitActivate("Online games – Seafight, the highlight of online pirate games - Mozilla Firefox","") MouseClick("LEFT", $bBenutzerdefniertePosition[0], $bBenutzerdefniertePosition[1]) WEnd EndFunc
Func Mouse() MouseClick("LEFT", $aBenutzerdefniertePosition[0], $aBenutzerdefniertePosition[1]) EndFunc
|
|
|
Similar Threads
|
pixelsearch
12/27/2009 - AutoIt - 11 Replies
hi hab mal ne frage
ich hab jetzt mit pixelsearch die coordinaten
ich will aber jetzt das der 50 pixel darunter von den coordinaten hinklickt
wie geht das?
|
pixelSearch
07/05/2009 - AutoIt - 11 Replies
hi leute,
brauch mal eure hilfe bei autoit
ich möchte einen bot machen der einen pixel sucht
und wenn er ihn findet soll er mit der maus zu ihm gehen und
rechtsklick machen
( bin anfänger bei autoit)
thx im vorraus
|
pixelsearch
02/07/2009 - General Coding - 1 Replies
gibt es in ner anderen programmiersprache sowas ähnliches wie pixelsearch, nur dass es auch in minimierten fenstern geht? und auch dass man autoit funktionen wie mausbewegungen und keyboad controls im minimierten fenster ausführen kann.
|
PixelSearch
07/27/2008 - Nostale - 5 Replies
hi leute kann mir pls jemand erklären wie man pixelsearch benuzt??
|
All times are GMT +1. The time now is 03:00.
|
|