Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > AutoIt
You last visited: Today at 03:00

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Auto GetMousePos & Pixelsearch

Discussion on Auto GetMousePos & Pixelsearch within the AutoIt forum part of the Coders Den category.

Reply
 
Old   #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"20780467328)
$start GUICtrlCreateButton("Start"241615341$WS_GROUP)
GUICtrlSetFont(-1154000"MS Sans Serif")
GUICtrlSetCursor (-12)
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,$textThen 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"20780467328)
$Button1 GUICtrlCreateButton("Start"241615341$WS_GROUP)
GUICtrlSetFont(-1154000"MS Sans Serif")
GUICtrlSetCursor (-12)
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!
Traumverderber is offline  
Old 06/07/2010, 15:30   #2
 
AMrK's Avatar
 
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(10False) ;Gibt einen Fehler zurück
    
EndIf
EndFunc 
AMrK is offline  
Thanks
1 User
Old 06/07/2010, 15:45   #3
 
elite*gold: 0
Join Date: Jun 2010
Posts: 40
Received Thanks: 30
Quote:
Originally Posted by AMrK View Post
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(10False) ;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 
Traumverderber is offline  
Old 06/07/2010, 15:54   #4
 
AMrK's Avatar
 
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
AMrK is offline  
Old 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(10False) ;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(10False) ;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(10False) ;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(10False) ;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 
Traumverderber is offline  
Reply

Tags
seafight mojo autoklick


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.