AutoIt-Frage

08/29/2006 16:48 purzel#1
huhu =)

hätte da mal ne frage zu autoit. hab davon im grunde keine ahnung, aber hab mir vorhin en kleines skript für world of warcraft gebastelt, was mich automatisch für alterac anmeldet, das bg nach ende wieder verlässt, mich wieder neu anmeldet und gleichzeitig dafür sorgt dass ich während des bgs nicht rausflieg. geht zwar nur zusammen mit nem addon für wow und is alles super primitiv...aber hey...es geht... xD

naja, was ich nun noch gern versuchen würde ist dass es auch funktioniert wenn wow minimiert ist. dazu müsste ich allerdings an eine bestimmte position im minimierten wow-fenster klicken...und mir ist nichts bekannt was das könnte :(

hab vorhin mal en bischen gesucht und bin dann über [Only registered and activated users can see links. Click Here To Register...] gestolpert. allerdings bekomm ich das für world of worldcraft nicht hin - und andere scheinbar auch ^^

naja, also wollte eben mal fragen ob wer ne möglichkeit kennt, mit autoit an eine bestimmte position eines minimierten fensters zu klicken...oder eben ob jemand weiß, dass das nicht geht o.ä... ^^

vielen dank im vorraus! :P

oh, und natürlich sorry wenn das hier nun im falschen forum sein sollte oder die frage total bescheuert oder so.. ^^
09/01/2006 12:24 Coksnuss#2
Du kannst mit autoit nur auf aktuelle Screens mit der maus klicken.. allerdings nicht auf inaktive (sprich: minimiert) Fenster. Was allerdings möglich wäre ist das Fenster zu aktivieren das programm auszuführen und danach wieder zu minimieren ...
09/04/2006 19:17 Zod#3
Hi!

Ich befürchte im minimierten Zustand wirst du nichts klicken können, weil im WoW
die Elemente nicht ansprechbar sind, sondern nur als Grafik dargestellt werden.

Aber was spricht hiergegen:
Code:
WinSetState ( "WORLD OF WARCRAFT", "", @SW_MAXIMIZE )
;klick
WinSetState ( "WORLD OF WARCRAFT", "", @SW_MINIMIZE )
?

Gruß,
Zod
09/15/2006 11:29 Shokyu#4
Code:
;===============================================================================
;
; Function Name: _MouseClickPlus()
; Version added: 0.1
; Description:  Sends a click to window, not entirely accurate, but works 
;         minimized.
; Parameter(s):  $Window   = Title of the window to send click to
;         $Button   = "left" or "right" mouse button
;         $X     = X coordinate
;         $Y     = Y coordinate
;         $Clicks   = Number of clicks to send
; Remarks:    You MUST be in "MouseCoordMode" 0 to use this without bugs.
; Author(s):   Insolence <[Only registered and activated users can see links. Click Here To Register...]>
;
;===============================================================================
Func _MouseClickPlus($Window, $Button = "left", $X = "", $Y = "", $Clicks = 1)
 Local $MK_LBUTTON    = 0x0001
 Local $WM_LBUTTONDOWN  = 0x0201
 Local $WM_LBUTTONUP   = 0x0202
 
 Local $MK_RBUTTON    = 0x0002  
 Local $WM_RBUTTONDOWN  = 0x0204
 Local $WM_RBUTTONUP   = 0x0205

 Local $WM_MOUSEMOVE   = 0x0200
 
 Local $i        = 0
 
 Select 
 Case $Button = "left"
   $Button   = $MK_LBUTTON
   $ButtonDown = $WM_LBUTTONDOWN
   $ButtonUp  = $WM_LBUTTONUP
 Case $Button = "right"
   $Button   = $MK_RBUTTON
   $ButtonDown = $WM_RBUTTONDOWN
   $ButtonUp  = $WM_RBUTTONUP
 EndSelect
 
 If $X = "" OR $Y = "" Then
   $MouseCoord = MouseGetPos()
   $X = $MouseCoord[0]
   $Y = $MouseCoord[1]
 EndIf
 
 For $i = 1 to $Clicks
   DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int",  $WM_MOUSEMOVE, _
    "int",  0, _
    "long", _MakeLong($X, $Y))
    
   DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int",  $ButtonDown, _
    "int",  $Button, _
    "long", _MakeLong($X, $Y))
    
   DllCall("user32.dll", "int", "SendMessage", _
    "hwnd", WinGetHandle( $Window ), _
    "int",  $ButtonUp, _
    "int",  $Button, _
    "long", _MakeLong($X, $Y))
 Next
EndFunc




Func _MakeLong($LoWord,$HiWord)
 Return BitOR($HiWord * 0x10000, BitAND($LoWord, 0xFFFF))
EndFunc
05/03/2008 03:25 meak1#5
will auch wissen wie das funzt er sendet die coords nich er klickt bei mir nur wo die maus gerade is :s