Alle WindowsTitle von einem oder mehreren Programmen anzeigen

  • Also es ist schwer in der Überschrift zu erklären was ich machen will ich erklär euch das mal so ich will von einem Programm den WindowsTitel herholen und in eine $ComboList darstellen ist ja schön und einfach bissher das schwere ist er soll falls das Programm mehrmals offen ist von allen den Programmen den WindowsTitel herholen und da in der $ComboList darstellen. Es kommt noch schwerer ich habe halt die funktion eingebaut das man den windowstitel umbennen kann der nimmt dann das was in der TextBox steht und ändert den Windowsnamen mit WinSetTitle, dieses Umbenannte Fenster soll er danach ebenfalls anzeigen. Mein problem ist jetzt ich habe halt diese funktion hier:

    [autoit]


    Func RefreshList()
    GUICtrlSetData($pList, "")
    $var = WinList("[CLASS:CLIENT]")
    For $i = 1 To $var[0][0]
    GUICtrlSetData($pList, $var[$i][0])
    Next
    EndFunc ;==>RefreshList

    [/autoit]


    Bei der werden zwar alle angezeigt aber wenn zwei gleiche fenster mit dem gleichen title offen sind zeigt der das nur einmal und nicht zweimal an er solls aber nur mehrmals falls merhmals vorhanden anzeigen.

    Das komplette Programm sieht bissher so aus:

    [autoit]


    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Icon=..\SRO-Bot.ico
    #AutoIt3Wrapper_Outfile=..\Release\Silkroad Online Resizer.exe
    #AutoIt3Wrapper_Res_Description=Resize
    #AutoIt3Wrapper_Res_Fileversion=1.0.0.0
    #AutoIt3Wrapper_Res_LegalCopyright=Vitalka
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

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

    #include <GUIConstants.au3>

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

    #Region ### START Koda GUI section ### Form=C:\Dokumente und Einstellungen\Vitali_2\Desktop\AutoIt Scripte\Silkoad Online Resizer\frmMain.kxf
    $frmMain = GUICreate("Silkroad Online Resizer", 301, 301, -1, -1)
    GUISetIcon("C:\Dokumente und Einstellungen\Vitali_2\Desktop\AutoIt Scripte\SRO-Bot.ico")
    $Resizer = GUICtrlCreateGroup("Resizer", 8, 8, 281, 281)
    $pList = GUICtrlCreateList("", 16, 24, 97, 227)
    $Refresh = GUICtrlCreateButton("Refresh", 16, 256, 97, 25, 0)
    $Rename = GUICtrlCreateButton("Rename", 120, 24, 65, 25, 0)
    $RenameInPut = GUICtrlCreateInput("", 192, 24, 81, 21)
    $Resize = GUICtrlCreateButton("Resize", 120, 56, 65, 25, 0)
    $ResizeCombo = GUICtrlCreateCombo("100%", 192, 56, 81, 25)
    GUICtrlSetData(-1, "75%|50%|25%")
    $Hide = GUICtrlCreateButton("Hide", 120, 88, 65, 25, 0)
    $Show = GUICtrlCreateButton("Show", 120, 120, 65, 25, 0)
    $Minimize = GUICtrlCreateButton("Minimize", 120, 152, 65, 25, 0)
    $Maximize = GUICtrlCreateButton("Maximize", 120, 184, 65, 25, 0)
    $Kill = GUICtrlCreateButton("Kill", 120, 216, 67, 25, 0)
    $Info = GUICtrlCreateButton("Info", 224, 264, 57, 17, 0)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Refresh
    RefreshList()

    Case $Rename
    If GUICtrlRead($pList) Then
    $Renameto = GUICtrlRead($RenameInPut)
    $ReadClient = GUICtrlRead($pList)
    WinSetTitle($ReadClient, "", $Renameto)
    RefreshList()
    EndIf

    Case $Hide
    If GUICtrlRead($pList) Then
    WinSetState(GUICtrlRead($pList), "", @SW_HIDE)
    EndIf
    Case $Show
    If GUICtrlRead($pList) Then
    WinSetState(GUICtrlRead($pList), "", @SW_SHOW)
    EndIf
    Case $Maximize
    If GUICtrlRead($pList) Then
    WinSetState(GUICtrlRead($pList), "", @SW_MAXIMIZE)
    EndIf
    Case $Minimize
    If GUICtrlRead($pList) Then
    WinSetState(GUICtrlRead($pList), "", @SW_MINIMIZE)
    EndIf
    Case $Resize
    If GUICtrlRead($pList) Then
    If GUICtrlRead($ResizeCombo) = "100%" Then
    WinMove(GUICtrlRead($pList), "", Default, Default, @DesktopWidth, @DesktopHeight)
    EndIf
    If GUICtrlRead($ResizeCombo) = "75%" Then
    WinMove(GUICtrlRead($pList), "", Default, Default, @DesktopWidth * 0.75, @DesktopHeight * 0.75)
    EndIf
    If GUICtrlRead($ResizeCombo) = "50%" Then
    WinMove(GUICtrlRead($pList), "", Default, Default, @DesktopWidth * 0.50, @DesktopHeight * 0.50)
    EndIf
    If GUICtrlRead($ResizeCombo) = "25%" Then
    WinMove(GUICtrlRead($pList), "", Default, Default, @DesktopWidth * 0.25, @DesktopHeight * 0.25)
    EndIf
    EndIf
    Case $Kill
    If GUICtrlRead($pList) Then
    WinKill(GUICtrlRead($pList))
    RefreshList()
    EndIf
    Case $Info
    MsgBox(0, "Silkroad Online Resizer", "Copyright © 2008 Vitalka")
    EndSwitch
    WEnd

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

    Func RefreshList()
    GUICtrlSetData($pList, "")
    $var = WinList("[CLASS:CLIENT]")
    For $i = 1 To $var[0][0]
    GUICtrlSetData($pList, $var[$i][0])
    Next
    EndFunc ;==>RefreshList

    [/autoit]