ControlClick

12/25/2008 12:05 anonym110#31
Auch wenn ich die Opt fürs Mausklicken erhöhe, wird das identkit immer sofort ins erste Fach verschoben :(
12/25/2008 12:17 aLasca#32
bei nicht sofort, meistens so 3. Reihe 3. Slot
12/26/2008 12:35 ylfi1337#33
Mein Nestlinge Bot läuft im Hintergrund .. zumindest eine Version dieses viechs ;) Ich nutz da die ganz normale ControlClick Funktion von Autoit geht super

AutoItSetOption("WinTitleMatchMode", 2)
Opt("SendKeyDownDelay", 20)
Opt("SendKeyDelay", 15)
Opt("MouseClickDelay", 20)
Opt("MouseClickDownDelay", 15)

anfangs definieren sonst macht der nur mist ... okay da ich im Fenster spiele hab ich da so meine Schwierigkeiten gehabt weil ich das ding ja wieder völlig über die Gui Konfigurierbar gemacht hab und die Koordinaten so gar nicht passen .. aber hey ich weiß jezt das ich ein Fensteroffset von -8 x und -28 y einberechnen muß und taddaa es geht. Leider hat das mit der Verkaufenfunktion im Hintergrund nicht geklappt weil PixelSearch so gar nicht im Inaktiven Fenster Funktioniert :(
12/26/2008 14:24 kknb#34
zum fenstermodus...es sollte passen wenn du im autoitwindow info tool auf "window" in den optionen stellst. dann wird der balken vom fesnter meines wissens nach gleich abgezogen.
12/26/2008 15:08 | Moep |#35
Quote:
Originally Posted by kknb View Post
zum fenstermodus...es sollte passen wenn du im autoitwindow info tool auf "window" in den optionen stellst. dann wird der balken vom fesnter meines wissens nach gleich abgezogen.
Falsch!
Der Balken wird nicht abgezogen. Der Balken kann außerdem unterschiedlich groß sein, je nach Darstellung.
Außerdem musst du dann noch eine Option setzen.

Opt("MouseCoordMode",0)

Damit die coords relativ zum aktiven Fenster stehen. Als Vorgabe sind hier nämlich die absoluten coords vom Desktop gegeben, was ja demnach woanders wäre ;)

so long, hf
12/26/2008 15:26 Gabba2#36
Wenn ihr das Window Info Tool auf Client stellt und in AutoIT Opt("MouseCoordMode",2) wird doch bei beidem der Rand des Fensters abgezogen o0
12/26/2008 15:29 | Moep |#37
Quote:
Originally Posted by Gabba2 View Post
Wenn ihr das Window Info Tool auf Client stellt und in AutoIT Opt("MouseCoordMode",2) wird doch bei beidem der Rand des Fensters abgezogen o0
ownd!!! :D
12/26/2008 15:32 Gabba2#38
Quote:
Originally Posted by | Moep | View Post
ownd!!! :D
Check ich jetzt nicht :confused: Hab ich euch so falsch verstanden oder wie ist das jetzt gemeint?
12/26/2008 15:36 | Moep |#39
Quote:
Originally Posted by Gabba2 View Post
Check ich jetzt nicht :confused: Hab ich euch so falsch verstanden oder wie ist das jetzt gemeint?
1:0 für dich! :handsdown:
War dass verständlicher? :D
12/26/2008 15:36 ylfi1337#40
HIlft Dir aber nichts wenn Du im Script mit MouseGetPos() arbeitest ;)
Ich bin doch son Parameterfreak :P
12/26/2008 15:44 Gabba2#41
Inwiefern hilft dir das nichts? Bei MoouseGetPos wird dann doch die Position genauso relativ zur Anwendungsfläche angezeigt/genommen. Oder was willst du machen was da Probleme bereitet?
Bin ich eig. heut so schwer von Begriff oder drücken sich die Leuts was undeutlich aus?^^
12/26/2008 20:42 ylfi1337#42
MousGetPos nimmt die Koordinaten relativ zum Desktop und demnach stimmen die für den ControlClick nicht um die Fensterleiste.
Mag sein das es da was elegenteres gibt aber ich kenn das Offset für den krams und lass das Automatisch runterrechnen ;)
12/26/2008 21:25 Gabba2#43
:confused: mousegetpos nimmt doch die Koordinaten eben so wie du ihm sagst wie er sie geben soll also wenn du Opt("MouseCoordMode",2) hast wirds auch relativ zur Anwendugsfläche genommen genau wie beim Controlclick dann, oder?
Probiers aus es kommen die selben Werte wie beim WindowInfoTool raus.
Code:
Opt("WinTitleMatchMode", 3)
Opt("MouseCoordMode", 2)

while 1
$pos = MouseGetPos()
tooltip("Mouse x,y: "& $pos[0] & "," & $pos[1], 0, 0)
Sleep(50)
wend
01/03/2009 20:00 aLasca#44
Also.. ich hab immernoch das selbe Problem wie vorher - das Identkit wird mit den Items ausgetauscht, obwohl Opt gesetzt ist und 3s Sleep drin sind..

PHP Code:
Func _MakeLong($LoWord$HiWord)
    Return 
BitOR($HiWord 0x10000BitAND($LoWord0xFFFF))
EndFunc   ;==>_MakeLong

Func _MouseClick
($hWnd$button$x$y$times 1$delay 15) ; Use the relative coords to the client area of the active window
    
If $hWnd 0 Then
        SetError
(-1)
        Return
    EndIf
    
    
Local $ix
    Local $lParam 
_MakeLong($x$y)
    
Local $user32 DllOpen("user32.dll")
    
    
$button StringLower($button)
    
    If 
$button "left" Then
        
For $ix 1 To $times
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam) ; Move
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x201"int"1"long"$lParam) ; Down
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x202"int"0"long"$lParam) ; Up
            
            
If $ix $times Then Sleep($delay)
        
Next
    
ElseIf $button "right" Then
        
For $ix 1 To $times
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x200"int"0"long"$lParam) ; Move
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x204"int"2"long"$lParam) ; Down
            DllCall
($user32"int""PostMessage""hwnd"$hWnd"int"0x205"int"0"long"$lParam) ; Up
            
            
If $ix $times Then Sleep($delay)
        
Next
    
Else
        
SetError(-2)
        If 
$user32 <> -1 Then DllClose($user32)
        Return
    EndIf
    If 
$user32 <> -1 Then DllClose($user32)
EndFunc   ;==>_MouseClick

Opt
("MouseClickDelay"1000)

func _ident()

$hwnd0 WinGetHandle("Guild Wars")
ControlSend($hwnd0"""""{.}")
Sleep(500)
$ident_x 40
$ident_y 
318
$x 
41
$y 
78

For $iy $y To $y 140 Step 45
For $ix $x To $x 165 Step 40
ControlClick
($hwnd0"""""left"2$ident_x$ident_y)
Sleep(3000)
_MouseClick($hwnd0"left"$ix$iy180)
Next
Next
EndFunc 
;==>ident 

_ident
() 
01/06/2009 20:07 ylfi1337#45
Die Controlsend geschichten sind eh mehr Zufall als definitiv hab ich das Gefühl

Func resign()

sleep (2000)
ControlSend ($handle , "", "","s")
ControlSend ($handle , "", "","{Enter}")
Sleep (100)
Opt("SendKeyDownDelay", 100)
ControlSend ($handle , "", "","{LSHIFT}+7resign{Enter}")
Opt("SendKeyDownDelay", 20)
sleep (4000)
fudas($resignx,$resigny,20,4)
ControlClick ( $handle, "", "" , "left" , 1 ,Random($lowx,$highx), Random($lowy,$highy))
sleep (7000)
EndFunc

in 8 von 10 fällen gehts den rest baut der mist ... /resgn oder /rgn sehr cool auch 7resign .. jaa ich mag autoit ..
Identen hab ich nich noch nicht rangemacht bisher verkauf ich nur alles außer Gold oder Lila .. geht aber auch nicht im Hintergrund weil Pixelsearch irgendwie alles ansatzweise hwndmäßige ignoriert ..