Taskleiste automatisch ausblenden

  • Hallo,

    ich würde gerne die Funktion "Taskleiste automatisch ausblenden" mit einer Autoit Funktion aktivieren/deaktivieren.
    Ich bin bereits soweit:

    Das Problem ist, dass die if else Funktion nicht funktioniert.

    Ich weiß das geht bestimmt um einiges eleganter aber so war es nun einmal am einfachsten ;)

    Vielen Dank!

    Matthias

    • Offizieller Beitrag

    Ich weiß das geht bestimmt um einiges eleganter

    Ja, und das sollte man dann auch versuchen, statt irgendwelche Send-Konstrukte zu nehmen.

    AutoIt
    #include <WinAPI.au3>
    
    
    Func _TrayVisible($_fVisible) ; True/False
    	Local Const $SWP_SHOWWINDOW = 0x40
    	Local Const $SWP_HIDEWINDOW = 0x80
    	Local $hTray = _WinAPI_FindWindow("Shell_TrayWnd", "")
    	Local $iFlag = $_fVisible ? $SWP_SHOWWINDOW : $SWP_HIDEWINDOW
    	_WinAPI_SetWindowPos($hTray, 0, 0, 0, 0, 0, $iFlag)
    EndFunc
  • Danke für deine Antwort. Wie du an meinen Versuchen gesehen hast, habe ich nicht viel Ahnung von der Programmierung mit Autoit, ich habe es aber versucht...

    Den von dir geschrieben Code kann ich überhaupt nicht zuordnen. Das Googeln von TrayVisible brachte auch keine wirklichen Ergebnisse. Ein einfach ausführen des Codes bewirkt bei mir nichts.
    Könntest du das bitte noch ein wenig erklären?

  • @matthias87
    In AutoIt integrierte Funktionen beginnen immer ohne einen initialen Unterstrich. Von Usern selbst definierte Funktionen (UDF = User Defined Function) sollten zur besseren Unterscheidung mit einem Unterstrich beginnen. Hilfsfunktionen in UDFs, die nur zur internen Verwendung gedacht sind, fangen meist mit zwei Unterstrichen an.


    Damit auch der Start-Button verschwindet, wenn die Taskleiste ausgeblendet wird, habe ich noch ein paar Zeilen hinzugefügt... ich verstehe nur nicht, wieso das Fenster des Start-Button erst nach einem MouseMove wieder sichbar wird.

    • Offizieller Beitrag

    Damit auch der Start-Button verschwindet, wenn die Taskleiste ausgeblendet wird, habe ich noch ein paar Zeilen hinzugefügt... ich verstehe nur nicht, wieso das Fenster des Start-Button erst nach einem MouseMove wieder sichbar wird.

    Weil der Startbutton nicht die Position 0,0 besitzt.
    Hier mal die Funktion, bei der es dann auch egal ist, wo die Taskbar angedockt ist:

    Edit:
    Oder vielleicht besser allgemeingültig mit Vorbelegung Standard-Windows-Button

  • Hallo!

    Meine Lösung sieht so aus:

    Hidetask:

    AutoIt
    WinSetState("[Class:Shell_TrayWnd]","",@SW_HIDE)
    WinSetState("Start","",@SW_HIDE)

    Showtask:

    AutoIt
    WinSetState("[Class:Shell_TrayWnd]","",@SW_SHOW)
    WinSetState("Start","",@SW_SHOW)


    lg
    Racer

    • Offizieller Beitrag

    @Racer
    DAS ist doch viel zu einfach. :rofl:

    Aber wenn schon kurz, dann will ich auch Einzeiler :P

    AutoIt
    ; Hide
    BitOR(WinSetState("[Class:Shell_TrayWnd]","",@SW_HIDE),WinSetState("Start","",@SW_HIDE))
    ; Show
    BitOR(WinSetState("[Class:Shell_TrayWnd]","",@SW_SHOW),WinSetState("Start","",@SW_SHOW))
  • Sehr schön... beide... wobei mir der Einzeiler - obwohl ein wenig lahmer - besser gefällt. :klatschen:


    Dann sieht das Ganze nun so bei mir aus: