Hallo ihr AutoIt Bastler.
Ich versuche gerade ein Programm zu schreiben, indem es Notwendig ist ein Bild/Objekt auf ein anderes Objekt zu ziehen. Dabei wollte ich die Funktion _FFClick umschreiben auf meine Bedürfnisse. Das ganze scheiterte an der Realisierung, da ich nicht weiss was "FFau3.simulateEvent(" & $sElement1 & ",'MouseEvents','mousedown')" damit gemeint ist und woher es kommt um es zu verstehen. Wo hier ein "MouseDown" steht, steht bei FFClick ein "click".
Das ganze soll ohne Mouse Koordinaten und MouseMove gehen!
1. Kann man statt dem Klick überhaupt ein "MouseDown" schreiben!?
2. Woher stammt dieser Ausdruck simulate Event und die nachfolgenden Befehle (Habe schon den halben Tag über Google danach gesucht)!?
3. Haben diese Befehle etwas mit Mozrepl zu tun?
4. Hat jemand einen besseren Ansatz dass das ganze ohne Mouse Funktioniert!?
5. Kann mir jemand meinen gedanklichen Fehler nennen den ich mache, weil die Funktion so nicht funktioniert!?
Func _MyFFClick($sElement1, $sElement2, $sMode1 = "elements", $sMode2 = "elements", $iIndex1 = 0, $iIndex2 = 0, $bLoadWait = True)
Local Const $sFuncName = "_FFClick"
If Not IsInt($iIndex1) Then
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidDataType, "(int) $iIndex: " & $iIndex1))
Return 0
EndIf
If Not IsInt($iIndex2) Then
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidDataType, "(int) $iIndex: " & $iIndex2))
Return 0
EndIf
If $sMode1 = Default Then $sMode1 = "elements"
If $sMode2 = Default Then $sMode2 = "elements"
If $iIndex1 = Default Then $iIndex1 = 0
If $iIndex2 = Default Then $iIndex2 = 0
Switch StringLower($sMode1)
Case "elements"
If StringLeft($sElement1, 7) = "OBJECT|" Then $sElement1 = StringMid($sElement1, 8)
Case "id"
$sElement1 = ".getElementById('" & $sElement1 & "')"
Case "name"
$sElement1 = ".getElementsByName('" & $sElement1 & "')[" & $iIndex1 & "]"
Case "class"
$sElement1 = ".getElementsByClassName('" & $sElement1 & "')[" & $iIndex1 & "]"
Case "tag"
$sElement1 = ".getElementsByTagName('" & $sElement1 & "')[" & $iIndex1 & "]"
Case Else
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidValue, "(elements|id|name|class|tag) $sMode: " & $sMode1))
Return 0
EndSwitch
Switch StringLower($sMode2)
Case "elements"
If StringLeft($sElement2, 7) = "OBJECT|" Then $sElement2 = StringMid($sElement2, 8)
Case "id"
$sElement2 = ".getElementById('" & $sElement2 & "')"
Case "name"
$sElement2 = ".getElementsByName('" & $sElement2 & "')[" & $iIndex2 & "]"
Case "class"
$sElement2 = ".getElementsByClassName('" & $sElement2 & "')[" & $iIndex2 & "]"
Case "tag"
$sElement2 = ".getElementsByTagName('" & $sElement2 & "')[" & $iIndex2 & "]"
Case Else
SetError(__FFError($sFuncName, $_FF_ERROR_InvalidValue, "(elements|id|name|class|tag) $sMode: " & $sMode2))
Return 0
EndSwitch
If StringLeft($sElement1, 1) = "." Then $sElement1 = "FFau3.WCD" & $sElement1
Local $RetVal = _FFCmd("FFau3.simulateEvent(" & $sElement1 & ",'MouseEvents','mousedown');")
If Not @error And $RetVal <> "_FFCmd_Err" And $RetVal = 1 Then
Sleep(25)
If StringLeft($sElement2, 1) = "." Then $sElement2 = "FFau3.WCD" & $sElement2
Local $RetVal = _FFCmd("FFau3.simulateEvent(" & $sElement2 & ",'MouseEvents','mouseup');")
Else
$RetVal = _FFCmd("FFau3.simulateEvent(" & $sElement1 & ",'MouseEvents','mouseup');")
EndIf
;EndiF
;EndIF
If Not @error And $RetVal <> "_FFCmd_Err" And $RetVal = 1 Then
Sleep(25)
If $bLoadWait Then Return _FFLoadWait()
Return 1
Else
SetError(__FFError($sFuncName, $_FF_ERROR_NoMatch, "$sElement: " & $sElement1))
Return 0
EndIf
EndFunc ;==>_FFClick
Alles anzeigen
Danke schonmal vorab
Cu Nathaniell