Fenster anzeigen, die @SW_HIDE,... sind

  • Hi Leute,

    im folgenden Script will ich die Funktion einbauen, dass er auch Fenster erkennt, die auf @SW_HIDE sind und/oder auf @SW_MINIMIZE, etc.

    Da ich nicht hinkrieg, den script hier zu posten, mache ich es so: http://pastebin.com/J1AnGYMN
    (bin ich zu dumm oder wieso fügt der meinen Script immer zusammen (in 1 oder 2 zielen)?)

    mfg

  • Zitat

    ; Listet nur die sichtbaren Fenster auf, die einen Titel haben

    steht in der Hilfe zu WinList()

    Hier nochmal das Skript(nicht geändert) :

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=C:\Users\Burak\Desktop\Projekte und Co\Window Manager\Form1.kxf
    $Form1 = GUICreate("Manager", 207, 142, 192, 124)
    $List1 = GUICtrlCreateList("", 8, 8, 105, 123)
    $Button1 = GUICtrlCreateButton("Hide", 120, 8, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Show", 120, 40, 75, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Minimize", 120, 72, 75, 25, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Restore", 120, 104, 75, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Func Exists($handle)
    If BitAND(WinGetState($handle), 2) Then
    Return 1
    Else
    Return 0
    EndIf
    EndFunc ;==>Exists
    $list = WinList()
    $empty = ""
    For $i = 1 To $list[0][0]
    If $list[$i][0] <> "" And Exists($list[$i][1]) Then $empty &= $list[$i][0] & "|"
    Next
    GUICtrlSetData($List1, $empty)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    WinSetState(GUICtrlRead($List1), "", @SW_HIDE)
    Case $Button2
    WinSetState(GUICtrlRead($List1), "", @SW_SHOW)
    Case $Button3
    WinSetState(GUICtrlRead($List1), "", @SW_MINIMIZE)
    Case $Button4
    WinSetState(GUICtrlRead($List1), "", @SW_RESTORE)

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

    EndSwitch
    WEnd

    [/autoit]
  • Wie hast du das gemacht?

    //Ontopic Ich weiß was in der Hilfe steht, ich will wissen wie ich es schaffe das es auch die anzeigt, die @SW_HIDE etc. sind...

  • Zitat

    Das war nur ein Tipp, dass es mit WinList() nicht gehen kann


    warum nicht WinList gibt alle Fenster zurück

    [autoit]

    #include <array.au3>

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

    $var = WinList()
    _ArrayDisplay($var)

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

    For $i = 1 to $var[0][0]
    ; Listet nur die einen Titel haben und sichtbar bzw. minimiert sind
    If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then
    MsgBox(0, "Details", "Titel=" & $var[$i][0] & @LF & "Handle=" & $var[$i][1])
    EndIf
    Next

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

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

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

    EndFunc

    [/autoit]

    man muss nur den Status auswerten.

    Du solltest aber deine Skripte unbedingt im Forum posten, notfalls als Datei anhängen.

    mfg (Auto)Bert

  • Ja, so weit war ich auch schon, nur das Problem ist es zeigt wirklich alles an (sind bei mir über 550) und ich glaube nicht, dass er das so wollte.
    Ich glaube er wollte nur, dass wenn man ein Fenster versteckt und dann das Programm neustartet, das versteckte Fenster auch anzeigt.

  • Ja, so weit war ich auch schon, nur das Problem ist es zeigt wirklich alles an (sind bei mir über 550) und ich glaube nicht, dass er das so wollte.
    Ich glaube er wollte nur, dass wenn man ein Fenster versteckt und dann das Programm neustartet, das versteckte Fenster auch anzeigt.

    Genau das meinte ich.