Ich habe ein kleines Script geschrieben, welches ein beliebiges Fenster ausblendet, wenn man es nicht mehr braucht. Dieses kann man z.B einfach für sein eigenes Script benuzten. Wenn man das Fenster nicht mehr braucht und somit die Maus aus dem Fenster nimmt, wird das Fenster langsam durchsichtig bis es ganz verschwunden ist. Den Vorgang kann man abbrechen, wenn man die Maus wieder auf das Fenster bewegt. Sonst kann man das Fenster wieder normal über die Taskleiste aufrufen.
Vielen Dank an SEuBo für die _MouseIsInArea Funktion
Könnt ihr ja mal testen.
[autoit];by Luke4321
$Fenster="Blablabla" ;Name des Fensters
WinWaitActive($Fenster)
Sleep(1200) ;Warten zum Beginn (+s.U.)
While 1
If WinGetState($Fenster)<>23 Then
$Coords=WinGetPos($Fenster)
If @error=1 Then Exit
Sleep(1000) ;Nach Maus wegnehmen warten
If Not _MouseIsInArea($Coords[0],$Coords[1],$Coords[2]+$Coords[0],$Coords[3]+$Coords[1]) Then
$o=0
$Trans=1
For $i=255 To 0 Step -1
Sleep(2) ;Ausblendegeschwindigkeit
$o+=1
If $o=5 Then
If _MouseIsInArea($Coords[0],$Coords[1],$Coords[2]+$Coords[0],$Coords[3]+$Coords[1]) Then $Trans=0
$Temp=WinGetPos($Fenster)
If @error=1 Then Exit
If $Temp[3]<>$Coords[3] Then $Trans=0
$o=0
EndIf
If $i=1 Then
WinSetState($Fenster,"",@SW_MINIMIZE)
WinSetTrans($Fenster,"",255)
ExitLoop
EndIf
If $Trans=1 Then
WinSetTrans($Fenster,"",$i)
Else
WinSetTrans($Fenster,"",255)
ExitLoop
EndIf
Next
EndIf
Else
Sleep(500)
WinSetTrans($Fenster,"",255)
EndIf
WEnd
Func _MouseIsInArea($iLeft, $iTop, $iRight, $iBottom, $vDLL = "user32.dll")
;-by SEuBo-
Local $aResult, $aMPos = MouseGetPos()
Local $tRect = DllStructCreate("int Left;int Top;int Right;int Bottom")
Local $iX = $aMPos[0], $iY = $aMPos[1]
DllStructSetData($tRect, "Left", $iLeft)
DllStructSetData($tRect, "Top", $iTop)
DllStructSetData($tRect, "Right", $iRight)
DllStructSetData($tRect, "Bottom", $iBottom)
$aResult = DllCall($vDLL, "int", "PtInRect", "ptr", DllStructGetPtr($tRect), "int", $iX, "int", $iY)
If @error Then Return SetError(@error, 0, False)
Return $aResult[0] <> 0
EndFunc ;==>_MouseIsInArea
Luke4321