Guten Tag, ich würde gerne die im Titel stehende Windows Funktion mit Autoit Triggern. Ich suche einen Weg die Taskleiste ausblenden zu lassen, jedoch soll diese wieder erscheinen sobald ich mit der Maus an die ursprüngliche Position der Taskleiste gehe, also genau so wie es die genannte Funktion tut. Bis jetzt habe ich leider nur die Möglichkeit gefunden die Taskleiste komplett verschwinden zu lassen, natürlich wäre es möglich mit einem kleinen Script einfach die Maus Position abzufragen und entsprechend die Taskleiste wieder anzeigen zu lassen, jedoch würde es mich interessieren ob es möglich ist die Windows Funktion direkt zu triggern.
Edit: Lösung gefunden, hier ein kurzes Beispiel:
AutoIt
Global Const $ABM_GETSTATE = 0x04
Global Const $ABM_SETSTATE = 0x0000000a
Global Const $ABS_ALWAYSONTOP = 0x2
Global Const $ABS_AUTOHIDE = 0x1
Global $pabd = DllStructCreate("dword;int;uint;uint;int;int;int;int;int")
DllStructSetData($pabd, 1, DllStructGetSize($pabd)) ;cbSize
DllStructSetData($pabd, 2, ControlGetHandle("Start", "", "Shell_TrayWnd")) ;hWnd
_SetTrackbarState($ABS_AUTOHIDE)
ConsoleWrite("Taskbar im Autohide Mode: " & _GetTrackbarState() & @CRLF )
Sleep(2000)
_SetTrackbarState($ABS_ALWAYSONTOP)
ConsoleWrite("Taskbar im Autohide Mode: " & _GetTrackbarState() & @CRLF )
Func _SetTrackbarState($iTrackbarState)
DllStructSetData($pabd, 9, $iTrackbarState)
SHAppBarMessage($ABM_SETSTATE, $pabd)
EndFunc ;==>_SetTrackbarState
Func _GetTrackbarState()
Return SHAppBarMessage($ABM_GETSTATE, $pabd)
; returns False wenn Taskbar ist sichtbar , returns 1 wenn Taskbar ist im Autohide Mode.
EndFunc ;==>_GetTrackbarState
Func SHAppBarMessage($Message, ByRef $pabd)
$lResult = DllCall("shell32.dll", "int", "SHAppBarMessage", "int", $Message, "ptr", DllStructGetPtr($pabd))
If Not @error Then
If $lResult[0] Then
Return $lResult[0]
EndIf
EndIf
SetError(1)
Return False
EndFunc ;==>SHAppBarMessage
Alles anzeigen