Control Click

10/13/2010 18:41 rexfox#16
also lolkop , wenn ichs richtig verstehe muss ich deinen script includen, dann die variablen deklarieren und dein click aufrufen.. bei mir sieht das so aus

Code:
#include <lolkopscript.au3>
$title=WinGetTitle("Metin2")
WinGetPos($title)
$xpos=$xpos[0]
$ypos=$ypos[1]
$btn="left"
Click($title, $btn, $xpos, $ypos, $clicks = 1)
10/13/2010 18:53 | Moep |#17
Er hat dir eine fertige Funktion gepostet, die du nur in dein Script kopieren musst und dann mit den entsprechenden Parametern aufrufen kannst. Wenn du dass nicht verstehst, dann #VOTE 4 CLOSE
10/13/2010 18:58 lolkop#18
da ich nicht weis, ob du auchnoch controls nutzen musst bei deinem spiel, kannste dir die funktion ja noch etwas erweitern...

Code:
Func Click($title, $control, $btn, $xpos, $ypos, $clicks = 1)
	Local $user32 = DllOpen("User32.dll")
	Local $i, $hwnd = ControlGetHandle($title, "", $control)
	Local $pos = BitOR($ypos * 0x10000, BitAND($xpos, 0xFFFF))
	Switch $btn
		Case "left"
			For $i=1 To $clicks
				DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", 0x200, "int", 0, "long", $pos)
				DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", 0x201, "int", 0x1, "long", $pos)
				DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", 0x202, "int", 0x1, "long", $pos)
			Next
		Case "right"
			For $i=1 To $clicks
				DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", 0x200, "int", 0, "long", $pos)
				DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", 0x204, "int", 0x2, "long", $pos)
				DllCall($user32, "int", "PostMessage", "hwnd", $hwnd, "int", 0x205, "int", 0x2, "long", $pos)
			Next
	EndSwitch
	DllClose($user32)
EndFunc
die coordinaten sind relativ zum verwendeten control zu wählen...

hier mal ein beispiel mit einem selbst erstellten gui. der button wird vom windowinfo tool als "Button1" angezeigt. als coors können wir in diesem falle ja einfach 0,0 oder 1,1 wählen, da wir einfach nur irgendeinen punkt vom button anklicken müssen. als anzahl der klicks habe ich mal 2 gewählt, falls aus irgend einem grund ein klick nicht ankommen sollte.
[Only registered and activated users can see links. Click Here To Register...]
10/13/2010 19:33 rexfox#19
also mein script ist jetzt so:
Code:
Click("METIN2", "right", 1403, 355, 1)

Func Click($title, $btn, $xpos, $ypos, $clicks = 1)
    Local $hwnd = ControlGetHandle($title, "", "")
    Local $pos = BitOR($ypos * 0x10000, BitAND($xpos, 0xFFFF))
    Switch $btn
        Case "left"
            For $i=1 To $clicks
                DllCall("User32.dll", "int", "PostMessage", "hwnd", $hwnd, "int", 0x200, "int", 0, "long", $pos)
                DllCall("User32.dll", "int", "PostMessage", "hwnd", $hwnd, "int", 0x201, "int", 0x1, "long", $pos)
                DllCall("User32.dll", "int", "PostMessage", "hwnd", $hwnd, "int", 0x202, "int", 0x1, "long", $pos)
            Next
        Case "right"
            For $i=1 To $clicks
                DllCall("User32.dll", "int", "PostMessage", "hwnd", $hwnd, "int", 0x200, "int", 0, "long", $pos)
                DllCall("User32.dll", "int", "PostMessage", "hwnd", $hwnd, "int", 0x204, "int", 0x2, "long", $pos)
                DllCall("User32.dll", "int", "PostMessage", "hwnd", $hwnd, "int", 0x205, "int", 0x2, "long", $pos)
            Next
    EndSwitch
EndFunc

jedoch klickt er immer noch nicht in das fenster METIN2
hab mit tool von maxi die coords genommen und alles eingefügt.. trotzdem klickt er im fenster METIN2 nicht an die gewünschte stelle^^

und @lolkop des mit dem gui geht auch mit normalen controlclick des hab ich schon hinbekommen^^ nur METIN2 hat keine control und der fenstername scheint net auszureichn als info

€ hatte fehler im script :D jetzt richtig pls guckt ob was falsch ist oder euch was einfällt ,was das problem sein könnte
10/13/2010 19:44 lolkop#20
Quote:
Originally Posted by rexfox View Post
und @lolkop des mit dem gui geht auch mit normalen controlclick des hab ich schon hinbekommen^^ nur METIN2 hat keine control und der fenstername scheint net auszureichn als info
was glaubst du denn wie controlclick funktioniert -.-

die funktion die ich gepostet habe ist nur eine verbesserung in ganz vielen sachen von controlclick.

und das geht ganz sicher... lass dir dochmal alle controls auflisten, und teste dann jedes einzelne durch...
10/13/2010 19:57 rexfox#21
autoitwindow info gibt mir keine control.. gar keine hab im tab "Control" geguckt gibt nix an-.-
und es funzt net XD
weis net vllt hat metin irgendeinen schutz drin.. weis net wer hier noch metin zoggt^^
der könnte vllt mal guckn obs bei ihm genauso ist