Immer im Hintergrund

  • Probier mal das:

    Spoiler anzeigen
    [autoit]

    Opt("WinWaitDelay",0)

    [/autoit] [autoit][/autoit] [autoit]

    $var = WinList()
    $Bottom = 'Rechner' ;Trage hier den vollständigen Fenstertitel ein, von dem Fenster das am weitesten hinten sein soll!

    [/autoit] [autoit][/autoit] [autoit]

    For $i = $var[0][0] To 1 Step -1
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) And $var[$i][0] <> $Bottom Then
    WinSetOnTop($var[$i][0], "", 1)
    EndIf
    Next

    [/autoit] [autoit][/autoit] [autoit]

    Func IsVisible($handle)
    If BitAnd( WinGetState($handle), 2 ) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc

    [/autoit]
  • Ich habe jetzt was anderes gefunden aber leider flackert das manchmal und ist nicht immer im Hintergrund:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    Const $HWND_BOTTOM = 1
    Const $SWP_NOOWNERZORDER = 0x200
    Const $SWP_NOACTIVATE = 16
    Const $WM_EXITSIZEMOVE = 0x232
    Const $SWP_NOSIZE = 1
    GUIRegisterMsg($WM_ACTIVATE, "On_WM_ACTIVATE")
    GUIRegisterMsg($WM_EXITSIZEMOVE, "on_WM_EXITSIZEMOVE")

    [/autoit][autoit][/autoit][autoit]

    $hGui = GUICreate("My GUI")
    GUISetState(@SW_SHOW)

    [/autoit][autoit][/autoit][autoit]

    ; Run the GUI until the dialog is closed
    While 1
    $msg = GUIGetMsg()

    [/autoit][autoit][/autoit][autoit]

    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd
    GUIDelete()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func on_WM_EXITSIZEMOVE($hWnd, $msg, $wParam, $lParam)
    If $hWnd = $hGui Then
    $wp = WinGetPos($hGui)
    DllCall("user32.dll", "long", "SetWindowPos", "hwnd", $hWnd, "hwnd", $HWND_BOTTOM, "int", $wp[0], "int", $wp[1], _
    "int", 0, "int", 0, "long", BitOR($SWP_NOSIZE, $SWP_NOACTIVATE));BitOR($SWP_NOOWNERZORDER,$SWP_NOACTIVATE))
    EndIf

    EndFunc ;==>on_WM_EXITSIZEMOVE

    [/autoit][autoit][/autoit][autoit]

    Func On_WM_ACTIVATE($hWnd, $msg, $wParam, $lParam)
    Local $iState = BitAND($wParam, 0x0000FFFF), $iMinimize = BitShift($wParam, 16)
    If $iState And $hWnd = $hGui Then
    $wp = WinGetPos($hGui)
    DllCall("user32.dll", "long", "SetWindowPos", "hwnd", $hWnd, "hwnd", $HWND_BOTTOM, "int", $wp[0], "int", $wp[1], _
    "int", $wp[2], "int", $wp[3], "long", $SWP_NOACTIVATE);BitOR($SWP_NOOWNERZORDER,$SWP_NOACTIVATE))
    EndIf
    EndFunc ;==>On_WM_ACTIVATE

    [/autoit]

    funkey: Super Script, aber mich persöhnlich nervt es wen alle Fenster im Vordergrund sind, da man den Taskmanager nicht mehr sieht