Word verstecken

  • Ich habe letzte Zeit viel mit Word Dokumenten zu tun. Ich verliere nach der Zeit immer den Überblick über die ganzen Dokumente. Da ich seit längerem schon an AutoIT intersiert bin hab ich mir gedacht selber ein Tool zu schreiben. Hab auch schon etwas gesucht etc aber ich hab schon ein Problem in der GUI undzwar will ich nur eine Liste und ein Button zum refreshen und einen um alle Fenster zu verstecken, aber ich will das in der Liste der Name des Dokuments angezeigt wird und der Status also ob es versteckt ist oder nicht. Hab da mal eine Liste gesehen so in der Art will ich es auch haben

    Spoiler anzeigen


    Aber so eine Art Liste finde ich in Koda nicht nur die ganz normale. Ebenso kann ich AutoIt so gut wie garnicht. Das einzig hilfreiche was ich gefunden habe ist der Befehl
    WinSetState aber wie ich das jetzt mit der Liste mache keine Ahnung.. Achja es wäre auch gut wenn ich die Word Fenster verstecke in dem ich in der Liste Doppelklick auf den Name mache. Ich hoffe auf Hilfe
    MfG

  • Habe die ganze Zeit fleißig gebüffelt und bin jetzt soweit. Aber die Liste ist total unübersichtlich ich will das wie oben in diesem Screenshot aber ich finde echt nichts dazu. Denn wenn ich in dieser Liste nicht angezeigt bekomme ob das Fenster versteckt ist oder offen ist dann brauch ich es garnicht..
    MfG

    [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 154, 216, 192, 124)
    $List1 = GUICtrlCreateList("", 8, 16, 137, 136)
    $Button1 = GUICtrlCreateButton("Hide", 80, 152, 65, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Refresh", 8, 152, 65, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Hide all", 8, 176, 137, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    $blist = WinList("[CLASS:#32770]")
    For $i = 1 To $blist[0][0]
    GUICtrlSetData($List1, $blist[$i][0])
    Next

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _hide()
    Case $Button2
    _refresh()
    Case $Button3
    _hideall()

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

    EndSwitch
    WEnd

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

    Func _hide()
    WinSetState(GUICtrlRead($List1, $blist), "", @SW_HIDE)
    EndFunc ;==>_hide

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

    Func _refresh
    ;Wie funktioniert das? Hab leider keine Ahnung :(
    EndFunc

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

    Func _hideall()
    ;Ebenso keine Ahnung
    EndFunc

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

    ;Den Button fur show hab ich vergessen aber das soll ja erstmal das Grundgerust sein das Prinzip von Hide & Show hab ich verstanden.

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

    [/spoiler]

  • Hier mal kleiner Ansatz:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>

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

    Opt("WinTitleMatchMode", 2)

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 154, 216, 192, 124)
    $List1 = GUICtrlCreateListView("Name|x/y", 8, 16, 137, 136)
    $Button1 = GUICtrlCreateButton("Hide", 80, 152, 65, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Refresh", 8, 152, 65, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Hide all", 8, 176, 137, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    _refresh()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _hide()
    Case $Button2
    _refresh()
    Case $Button3
    _hideall()

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

    EndSwitch
    WEnd

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

    Func _hide()
    WinSetState(GUICtrlRead($List1, $blist), "", @SW_HIDE)
    EndFunc ;==>_hide

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

    Func _refresh()
    _GUICtrlListView_DeleteAllItems($List1)
    $blist = WinList("Microsoft Word")
    For $i = 1 To $blist[0][0]
    $status = WinGetState($blist[$i][1])

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

    If BitAND($status, 2) Then
    $status = "sichtbar"
    Else
    $status = "nicht sichtbar"
    EndIf

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

    GUICtrlCreateListViewItem($blist[$i][0] & "|" & $status, $List1)
    Next
    EndFunc ;==>_refresh

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

    Func _hideall()
    ;Ebenso keine Ahnung
    EndFunc ;==>_hideall

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

    ;Den Button fur show hab ich vergessen aber das soll ja erstmal das Grundgerust sein das Prinzip von Hide & Show hab ich verstanden.

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Danke schonmal hab die GUI mal angepasst so wie es später aussehen soll. Nur verwirren mich jetzt 2Dinge. Wieso stürzt das tool jetzt mit meiner Hide funktion ab? Hab die mal rausgenommen und wäre es möglich den hide Button so zu ersetzen das ich nur auf die Namen Doppelklicken muss? Und dann vielleicht noch ein Hide all Button.

    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>

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

    Opt("WinTitleMatchMode", 2)

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Word Hider", 245, 412, 192, 124)
    $Group1 = GUICtrlCreateGroup("Word Windows", 0, 0, 241, 409)
    $List1 = GUICtrlCreateListView("Dokument|Status", 0, 16, 241, 329)
    $Button1 = GUICtrlCreateButton("Hide ", 120, 344, 121, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Refresh", 0, 344, 121, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Back to front", 0, 368, 241, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    _refresh()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    _hide()
    Case $Button2
    _refresh()
    Case $Button3
    _front()

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

    EndSwitch
    WEnd

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

    Func _refresh()
    _GUICtrlListView_DeleteAllItems($List1)
    $blist = WinList("Microsoft Word")
    For $i = 1 To $blist[0][0]
    $status = WinGetState($blist[$i][1])

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

    If BitAND($status, 2) Then
    $status = "sichtbar"
    Else
    $status = "nicht sichtbar"
    EndIf

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

    GUICtrlCreateListViewItem($blist[$i][0] & "|" & $status, $List1)
    Next
    EndFunc ;==>_refresh

    [/autoit][autoit][/autoit][autoit][/autoit]
  • Hallo FlareEniX,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinen Wünschen, diese sind natürlich realisierbar dazu postest du am besten in Jobbörse: Mit Gegenleistung oder du löst es anhand des folgenden Ansatzes selbst:

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>

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

    Opt("WinTitleMatchMode", 2)

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

    #region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Word Hider", 245, 412, 192, 124)
    $Group1 = GUICtrlCreateGroup("Word Windows", 0, 0, 241, 409)
    $Listview = GUICtrlCreateListView("Dokument|Status", 0, 16, 241, 329)
    $Button1 = GUICtrlCreateButton("Hide ", 120, 344, 121, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Refresh", 0, 344, 121, 25, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Back to front", 0, 368, 241, 25, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###

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

    _refresh()
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<=========================================== Bemachrichtigung Doppelklick

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    ;_hide()
    Case $Button2
    _refresh()
    Case $Button3
    ;_front()

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

    EndSwitch
    WEnd

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

    Func _refresh()
    _GUICtrlListView_DeleteAllItems($Listview)
    $blist = WinList("Microsoft Word")
    For $i = 1 To $blist[0][0]
    $status = WinGetState($blist[$i][1])

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

    If BitAND($status, 2) Then
    $status = "sichtbar"
    Else
    $status = "nicht sichtbar"
    EndIf

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

    GUICtrlCreateListViewItem($blist[$i][0] & "|" & $status, $Listview)
    Next
    EndFunc ;==>_refresh

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

    Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
    Local $tagNMHDR, $event, $hwndFrom, $code
    $tagNMHDR = DllStructCreate("int;int;int", $lParam)
    If @error Then Return 0
    $code = DllStructGetData($tagNMHDR, 3)
    If $wParam = $listview Then
    ;ConsoleWrite($code & @CRLF)
    Switch $code
    ;case $NM_CLICK,$NM_DBLCLK, ;Klick
    Case $NM_RCLICK ;Rechtsklick
    If _GUICtrlListView_GetSelectedCount($listview) > 0 Then
    For $i = 0 To _GUICtrlListView_GetItemCount($listview)
    If _GUICtrlListView_GetItemSelected($listview, $i) Then
    $aItem = _GUICtrlListView_GetItemTextArray($listview, $i)
    MsgBox(0, "Rechts-Klick auf ", $aItem[1] & @CRLF & @CRLF & $aItem[2])
    EndIf
    Next
    EndIf
    EndSwitch
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    mfg autoBert