Process List Tool - Brauche eure Hilfe

    • Offizieller Beitrag

    Wenn Du von Hide und Show sprichst, meinst Du doch wohl Fenster und nicht Prozesse, nicht wahr?
    Dementsprechend solltest Du nicht ProcessList benutzen, sondern WinList.
    Hier ist mal ein Beispielscript, mit dem man Fenster anzeigen, verstecken und schließen kann:

    Spoiler anzeigen
    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiListView.au3>
    #include <ListViewConstants.au3>

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

    Global $iOld = -1
    $hGui = GUICreate('Window-Manager', 640, 480)
    $hWinList = GUICtrlCreateListView('Window-Title|Handle|Status', 5, 5, 630, 430)
    GUICtrlSendMsg($hWinList, $LVM_SETCOLUMNWIDTH, 0, 400)
    GUICtrlSendMsg($hWinList, $LVM_SETCOLUMNWIDTH, 1, 110)
    GUICtrlSendMsg($hWinList, $LVM_SETCOLUMNWIDTH, 2, 60)
    $hClose = GUICtrlCreateButton('Close', 390, 450, 60, 22)
    $hShow = GUICtrlCreateButton('Show', 470, 450, 60, 22)
    $hHide = GUICtrlCreateButton('Hide', 550, 450, 60, 22)
    GUISetState()
    WinSetOnTop($hGui, '', 1)
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hHide
    $iSelect = ControlListView($hGui, '', $hWinList, 'GetSelected')
    If $iSelect <> '' Then
    $hWindow = HWnd(ControlListView($hGui, '', $hWinList, 'GetText', $iSelect, 1))
    WinSetState($hWindow, '', @SW_HIDE)
    $iOld = -1
    EndIf
    Case $hShow
    $iSelect = ControlListView($hGui, '', $hWinList, 'GetSelected')
    If $iSelect <> '' Then
    $hWindow = HWnd(ControlListView($hGui, '', $hWinList, 'GetText', $iSelect, 1))
    WinSetState($hWindow, '', @SW_SHOW)
    $iOld = -1
    EndIf
    Case $hClose
    $iSelect = ControlListView($hGui, '', $hWinList, 'GetSelected')
    If $iSelect <> '' Then
    $hWindow = HWnd(ControlListView($hGui, '', $hWinList, 'GetText', $iSelect, 1))
    WinClose($hWindow, '')
    $iOld = -1
    EndIf
    EndSwitch
    _DisplayListview($hWinList)
    WEnd

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

    Func _DisplayListview(ByRef $hListview)
    Local $aWinList, $hwndListview
    $aWinList = WinList()
    If $aWinList[0][0] = $iOld Then Return
    $iOld = $aWinList[0][0]
    _ArrayDelete($aWinList, 0)
    _ArraySort($aWinList)
    $hwndListview = GUICtrlGetHandle($hListview)
    _GUICtrlListView_BeginUpdate($hwndListview)
    _GUICtrlListView_DeleteAllItems($hwndListview)
    For $i = 0 To UBound($aWinList) - 1
    If ($aWinList[$i][0] <> '') And BitAND(WinGetState($aWinList[$i][1]), 4) Then
    GUICtrlCreateListViewItem($aWinList[$i][0] & '|' & $aWinList[$i][1] & '|' & WinGetState($aWinList[$i][1]), $hListview)
    EndIf
    Next
    _GUICtrlListView_EndUpdate($hwndListview)
    EndFunc ;==>_DisplayListview

    [/autoit]


    Aber vorsicht vor dem schließen von unbekannten Fenstern! Die könnten zu irgendwelchen wichtigen (Hintergrund-)Programmen gehören!

  • Zitat

    Wenn Du von Hide und Show sprichst, meinst Du doch wohl Fenster und nicht Prozesse, nicht wahr?
    Dementsprechend solltest Du nicht ProcessList benutzen, sondern WinList.
    Hier ist mal ein Beispielscript, mit dem man Fenster anzeigen, verstecken und schließen kann:

    Funktioniert Super , vielen Dank :) An alle!