Datein vom FTP in Listview auflisten. ( Problem mit Refresh Funktion )

  • Moin Moin,
    ich habe ein Script gemacht welches alle Datein in meinem FTP Ordner auflistet.
    Wenn man auf "Ticket löschen" klickt wird das eingegebene Ticket gelöscht und
    die Dateiliste aktualisiert, nur das funktioniert bei mir nicht so ganz...
    ich wäre mich freuen wenn mir jemand helfen würde ! :thumbup:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <FTPEx.au3>
    #include <Array.au3>
    Global $Prozentt,$Prozent
    $Server = "***"
    $Username = "****"
    $Passwort = "****"
    $Path = "/Tickets/"$Ziel = @DesktopDir
    $Open = _FTP_Open('Mein FTP-Control')
    $l_FTPSession= _FTP_Connect($Open, $Server, $Username, $Passwort)
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)
    $FileSize = _FTP_FileGetSize($l_FTPSession,"Tickets")

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

    $gui = GUICreate('Ticket System', 699, 425)
    $hListView = GUICtrlCreateListView('Ticket Name|Erstellungs Datum|',16, 25, 425, 185)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 180)
    $Button3 = GUICtrlCreateButton("Refresh", 351, 219, 92, 31)
    $Group1 = GUICtrlCreateGroup("Funktionen", 448, 8, 241, 209)
    $Input1 = GUICtrlCreateInput("Ticket Name", 456, 32, 225, 26)
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $Edit2 = GUICtrlCreateEdit("", 456, 64, 225, 145)
    GUICtrlSetData(-1, "Antwort auf das Ticket")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button1 = GUICtrlCreateButton("Nachricht senden", 574, 219, 116, 31)
    $Button2 = GUICtrlCreateButton("Ticket Verwerfen", 450, 219, 116, 31)
    ;~ GUICtrlSetOnEvent($Button2,"_TDelete")
    $Group2 = GUICtrlCreateGroup("Ticket Liste", 8, 8, 441, 209)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $Button4 = GUICtrlCreateButton("Ticket System Verlassen", 351, 299, 340, 31)
    $Edit3 = GUICtrlCreateEdit("", 8, 224, 337, 109)
    GUICtrlSetData(-1, "Inhalt des Tickets")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $Button5 = GUICtrlCreateButton("Ticket Öffnen", 351, 259, 340, 31)
    For $i = 1 To $aFile[0][0]
    ;~ GUICtrlCreateListViewItem( $aFile[$i][0]& ' | ' & $aFile[$i][1] & ' | ' & $aFile[$i][2]& ' | ' & $aFile[$i][3], $hListView)
    GUICtrlCreateListViewItem( $aFile[$i][0]& ' | ' & $aFile[$i][3], $hListView)
    Next
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    $Ftpc = _FTP_Close($Open)
    $Ftpc = _FTP_Close($Open)
    Exit
    Case $Button2
    _FTP_FileDelete($l_FTPSession,guictrlread($Input1))
    _GUICtrlListView_DeleteAllItems($hListView)
    GUICtrlDelete($hListView)
    $hListView = GUICtrlCreateListView('Ticket Name|Erstellungs Datum|',16, 25, 425, 185)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 180)$Ftpc = _FTP_Close($Open)
    $Open = _FTP_Open('Mein FTP-Control')
    $l_FTPSession= _FTP_Connect($Open, $Server, $Username, $Passwort)
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)
    For $i = 1 To $aFile[0][0]GUICtrlCreateListViewItem( $aFile[$i][0]& ' | ' & $aFile[$i][3], $hListView)
    Next
    Case $Button3
    _GUICtrlListView_DeleteAllItems($hListView)
    GUICtrlDelete($hListView)
    $hListView = GUICtrlCreateListView('Ticket Name|Erstellungs Datum|',16, 25, 425, 185)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 180)
    $Ftpc = _FTP_Close($Open)
    $Open = _FTP_Open('Mein FTP-Control')
    $l_FTPSession= _FTP_Connect($Open, $Server, $Username, $Passwort)
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)
    For $i = 1 To $aFile[0][0]
    GUICtrlCreateListViewItem( $aFile[$i][0]& ' | ' & $aFile[$i][3], $hListView)
    Next
    EndSwitch
    WEnd

    [/autoit]


    Edit Oscar: Spoiler eingefügt. Bitte bei längeren Quelltexten den Spoiler benutzen!

  • Hallo derBrot,

    ich habe dein Sript mal etwas überarbeiet. Teste es einfach einmal mit deinen Zugangsdaten:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <FTPEx.au3>
    #include <Array.au3>
    Global $Prozentt, $Prozent
    Global $Server = "ftp.csx.cam.ac.uk"
    Global $Username = ""
    Global $Passwort = ""
    Global $Path = "/Tickets"
    Global $Path = "/pub/mac" ;wieder löschen
    Global $Ziel = @DesktopDir
    Global $Open, $l_FTPSession, $aFile, $FileSize

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

    $gui = GUICreate('Ticket System', 699, 425)
    Global $hListView = GUICtrlCreateListView('Ticket Name|Erstellungs Datum|', 16, 25, 425, 185)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 180)
    $idBtnRefresh = GUICtrlCreateButton("Refresh", 351, 219, 92, 31)
    $Group1 = GUICtrlCreateGroup("Funktionen", 448, 8, 241, 209)
    $idInpTicketName = GUICtrlCreateInput("Ticket Name", 456, 32, 225, 26)
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idEdtTicketAmswer = GUICtrlCreateEdit("", 456, 64, 225, 145)
    GUICtrlSetData(-1, "Antwort auf das Ticket")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnMessage = GUICtrlCreateButton("Nachricht senden", 574, 219, 116, 31)
    $idBtnDeleteTicket = GUICtrlCreateButton("Ticket Verwerfen", 450, 219, 116, 31)
    $Group2 = GUICtrlCreateGroup("Ticket Liste", 8, 8, 441, 209)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnExitTS = GUICtrlCreateButton("Ticket System Verlassen", 351, 299, 340, 31)
    $idEdtTicketQuestion = GUICtrlCreateEdit("", 8, 224, 337, 109)
    GUICtrlSetData(-1, "Inhalt des Tickets")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idBtnOpenTicket = GUICtrlCreateButton("Ticket Öffnen", 351, 259, 340, 31)
    _FTPLogin()
    _GetTickets()

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    $Ftpc = _FTP_Close($Open)
    Exit
    Case $idBtnDeleteTicket
    _FTP_FileDelete($l_FTPSession, GUICtrlRead($idInpTicketName))
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    Case $idBtnRefresh
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    EndSwitch
    WEnd

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

    Func _FTPLogin()
    $Open = _FTP_Open('Mein FTP-Control')
    If @error Then
    MsgBox(16, "FTP-Fehler", "Open: " & @error)
    Exit
    Else
    $l_FTPSession = _FTP_Connect($Open, $Server, $Username, $Passwort)
    If @error Then
    MsgBox(16, "FTP-Fehler", "Connect: " & @error)
    Exit
    EndIf
    EndIf
    _FTP_DirSetCurrent($l_FTPSession, $Path)
    EndFunc ;==>_FTPLogin

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

    Func _GetTickets()
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)
    If @error Then
    If MsgBox(36, "FTP-Fehler", "Tickets holen: " & @error & @CRLF & @CRLF & "Nochmal versuchen?") = 6 Then
    $Ftpc = _FTP_Close($Open) ;vorsichtshalber
    Sleep(1000)
    _FTPLogin()
    _GetTickets()
    Else
    Exit
    EndIf
    EndIf
    $FileSize = _FTP_FileGetSize($l_FTPSession, "Tickets")
    For $i = 1 To $aFile[0][0]
    GUICtrlCreateListViewItem($aFile[$i][0] & ' | ' & $aFile[$i][3], $hListView)
    Next
    EndFunc ;==>_GetTickets

    [/autoit]

    ich komme derzeit nicht auf meinen FTP beim Hoster, so konnte ich es nur auf einem öffentlichen Server testen. Dort habe ich natürlich nicht die nötigen Rechte um Dateien zu löschen.

    Edit: mittlerweile ist auch mein FTP-Serer wieder erreichbar, so konnte ich testen und etwas optimieren:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <FTPEx.au3>
    #include <Array.au3>
    Global $Prozentt, $Prozent
    Global $Server = ""
    Global $Username = ""
    Global $Passwort = ""
    Global $Path = "/Tickets"
    Global $Path = "/Privat" ;wieder löschen
    Global $Ziel = @DesktopDir
    Global $Open, $l_FTPSession, $aFile, $FileSize

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

    $gui = GUICreate('Ticket System', 699, 425)
    Global $hListView = GUICtrlCreateListView('Ticket Name|Erstellungs Datum|', 16, 25, 425, 185)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 180)
    $idBtnRefresh = GUICtrlCreateButton("Refresh", 351, 219, 92, 31)
    $Group1 = GUICtrlCreateGroup("Funktionen", 448, 8, 241, 209)
    $idInpTicketName = GUICtrlCreateInput("Ticket Name", 456, 32, 225, 26)
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idEdtTicketAmswer = GUICtrlCreateEdit("", 456, 64, 225, 145)
    GUICtrlSetData(-1, "Antwort auf das Ticket")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnMessage = GUICtrlCreateButton("Nachricht senden", 574, 219, 116, 31)
    $idBtnDeleteTicket = GUICtrlCreateButton("Ticket Verwerfen", 450, 219, 116, 31)
    $Group2 = GUICtrlCreateGroup("Ticket Liste", 8, 8, 441, 209)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnExitTS = GUICtrlCreateButton("Ticket System Verlassen", 351, 299, 340, 31)
    $idEdtTicketQuestion = GUICtrlCreateEdit("", 8, 224, 337, 109)
    GUICtrlSetData(-1, "Inhalt des Tickets")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idBtnOpenTicket = GUICtrlCreateButton("Ticket Öffnen", 351, 259, 340, 31)
    _FTPLogin()
    _GetTickets()

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    $Ftpc = _FTP_Close($Open)
    Exit
    Case $idBtnDeleteTicket
    $sDeleteTicket = GUICtrlRead($idInpTicketName)
    ;so geht es schneller
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $sTicketLV = StringStripWS (_GUICtrlListView_GetItemText($hListView, $i),3)
    ;ConsoleWrite($sTicketLV&@TAB)
    If $sDeleteTicket == $sTicketLV Then
    _FTP_FileDelete($l_FTPSession, $sDeleteTicket)
    _GUICtrlListView_DeleteItem($hListView, $i)
    ;ConsoleWrite("Deleted" & @CRLF)
    Else
    ;ConsoleWrite(@CRLF)
    EndIf
    Next
    ;_GUICtrlListView_DeleteAllItems($hListView)
    ;_GetTickets()
    Case $idBtnRefresh
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    EndSwitch
    WEnd

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

    Func _FTPLogin()
    $Open = _FTP_Open('Mein FTP-Control')
    If @error Then
    MsgBox(16, "FTP-Fehler", "Open: " & @error)
    Exit
    Else
    $l_FTPSession = _FTP_Connect($Open, $Server, $Username, $Passwort)
    If @error Then
    MsgBox(16, "FTP-Fehler", "Connect: " & @error)
    Exit
    EndIf
    EndIf
    _FTP_DirSetCurrent($l_FTPSession, $Path)
    EndFunc ;==>_FTPLogin

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

    Func _GetTickets()
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)
    If @error Then
    If MsgBox(36, "FTP-Fehler", "Tickets holen: " & @error & @CRLF & @CRLF & "Nochmal versuchen?") = 6 Then
    $Ftpc = _FTP_Close($Open) ;vorsichtshalber
    Sleep(1000)
    _FTPLogin()
    _GetTickets()
    Else
    Exit
    EndIf
    EndIf
    $FileSize = _FTP_FileGetSize($l_FTPSession, "Tickets")
    For $i = 1 To $aFile[0][0]
    GUICtrlCreateListViewItem($aFile[$i][0] & ' | ' & $aFile[$i][3], $hListView)
    Next
    EndFunc ;==>_GetTickets

    [/autoit]

    Edit2: meine Zugangsdaten entfernt

    Edit3: und hier noch ein weiterer Stand:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <FTPEx.au3>
    #include <Array.au3>
    Global $Prozentt, $Prozent
    Global $Server = ""
    Global $Username = ""
    Global $Passwort = ""
    Global $Path = "/Tickets&"
    Global $Ziel = @DesktopDir ;wäre @Tempdir nicht besser????
    Global $Open, $l_FTPSession, $aFile, $FileSize

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

    $gui = GUICreate('Ticket System', 699, 425)
    Global $hListView = GUICtrlCreateListView('Ticket Name|Erstellungs Datum|', 16, 25, 425, 185)
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 180)
    $idBtnRefresh = GUICtrlCreateButton("Refresh", 351, 219, 92, 31)
    $Group1 = GUICtrlCreateGroup("Funktionen", 448, 8, 241, 209)
    $idInpTicketName = GUICtrlCreateInput("Ticket Name", 456, 32, 225, 26)
    ;GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idEdtTicketAmswer = GUICtrlCreateEdit("", 456, 64, 225, 145)
    GUICtrlSetData(-1, "Antwort auf das Ticket")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnMessage = GUICtrlCreateButton("Nachricht senden", 574, 219, 116, 31)
    $idBtnDeleteTicket = GUICtrlCreateButton("Ticket Verwerfen", 450, 219, 116, 31)
    $Group2 = GUICtrlCreateGroup("Ticket Liste", 8, 8, 441, 209)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnExitTS = GUICtrlCreateButton("Ticket System Verlassen", 351, 299, 340, 31)
    $idEdtTicketQuestion = GUICtrlCreateEdit("", 8, 224, 337, 109)
    GUICtrlSetData(-1, "Inhalt des Tickets")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idBtnOpenTicket = GUICtrlCreateButton("Ticket Öffnen", 351, 259, 340, 31)
    _FTPLogin()
    _GetTickets()
    $idContextmenu = GUICtrlCreateContextMenu($hListView)
    $idCMnuDelete = GUICtrlCreateMenuItem("Löschen", $idContextmenu)
    $idCMnuOpen = GUICtrlCreateMenuItem("Öffnen", $idContextmenu)
    $idCMnuSend = GUICtrlCreateMenuItem("senden", $idContextmenu)
    GUICtrlCreateMenuItem("", $idContextmenu)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<=========================================== Bemachrichtigung Doppelklick

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

    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    $Ftpc = _FTP_Close($Open)
    Exit
    Case $idBtnOpenTicket, $idCMnuOpen
    _OpenTicket()
    Case $idBtnDeleteTicket, $idCMnuDelete
    $sDeleteTicket = GUICtrlRead($idInpTicketName)
    ;so geht es schneller
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $sTicketLV = StringStripWS(_GUICtrlListView_GetItemText($hListView, $i), 3)
    ConsoleWrite($sTicketLV & @TAB)
    If $sDeleteTicket == $sTicketLV Then
    _FTP_FileDelete($l_FTPSession, $sDeleteTicket)
    _GUICtrlListView_DeleteItem($hListView, $i)
    ConsoleWrite("Deleted" & @CRLF)
    Else
    ConsoleWrite(@CRLF)
    EndIf
    Next
    ;_GUICtrlListView_DeleteAllItems($hListView)
    ;_GetTickets()
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Case $idBtnMessage, $idCMnuSend
    MsgBox(0,"Sorry","muss erst noch programmiert werden")
    Case $idBtnRefresh
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    EndSwitch
    WEnd

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

    Func _FTPLogin()
    $Open = _FTP_Open('Mein FTP-Control')
    If @error Then
    MsgBox(16, "FTP-Fehler", "Open: " & @error)
    Exit
    Else
    $l_FTPSession = _FTP_Connect($Open, $Server, $Username, $Passwort)
    If @error Then
    MsgBox(16, "FTP-Fehler", "Connect: " & @error)
    Exit
    EndIf
    EndIf
    _FTP_DirSetCurrent($l_FTPSession, $Path)
    EndFunc ;==>_FTPLogin

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

    Func _GetTickets()
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)
    If @error Then
    If MsgBox(36, "FTP-Fehler", "Tickets holen: " & @error & @CRLF & @CRLF & "Nochmal versuchen?") = 6 Then
    $Ftpc = _FTP_Close($Open) ;vorsichtshalber
    Sleep(1000)
    _FTPLogin()
    _GetTickets()
    Else
    Exit
    EndIf
    EndIf
    $FileSize = _FTP_FileGetSize($l_FTPSession, "Tickets")
    For $i = 1 To $aFile[0][0]
    GUICtrlCreateListViewItem(StringStripWS($aFile[$i][0], 3) & ' | ' & StringStripWS($aFile[$i][3], 3), $hListView)
    Next
    EndFunc ;==>_GetTickets

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

    Func _OpenTicket()
    $sOpenTicket = GUICtrlRead($idInpTicketName)
    If $sOpenTicket <> "Ticket Name" Then
    ConsoleWrite($sOpenTicket & @TAB)
    #cs ;klappt nicht
    $hFileOpen = _FTP_FileOpen($l_FTPSession, $sOpenTicket)
    $sText = ""
    Do
    $sText &= _FTP_FileRead($hFileOpen, 256)
    Until @error
    $sText = BinaryToString($sText)
    #ce
    _FTP_FileGet($l_FTPSession, $sOpenTicket, $Ziel & "\" & $sOpenTicket)
    ConsoleWrite(@error & @CRLF)
    $sText = FileRead($Ziel & "\" & $sOpenTicket)
    GUICtrlSetData($idEdtTicketQuestion, $sText)
    ;FileDelete($Ziel&"\"&$sOpenTicket)
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Else
    ConsoleWrite("nothing selected" & @CRLF)
    EndIf
    ConsoleWrite("ready " & @CRLF)
    EndFunc ;==>_OpenTicket

    [/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 = $hListView Then
    ;ConsoleWrite($code & @CRLF)
    Switch $code
    ;Case $NM_CLICK,$NM_RCLICK ,$NM_DBLCLK; Links-, Rechts-, Doppelklick
    Case $NM_CLICK, $NM_RCLICK ,$NM_DBLCLK
    $i = _GUICtrlListView_GetSelectedIndices($hListView)
    If $i <> "" Then
    $i = Int($i)
    $aTicket = _GUICtrlListView_GetItemTextArray($hListView, $i)
    $sTicket = StringStripWS($aTicket[1], 3)
    GUICtrlSetData($idInpTicketName, $sTicket)
    EndIf
    if $code = $NM_DBLCLK Then _OpenTicket()
    EndSwitch
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    er enthält ein Kontextmenü (öffnen durch Rechsklick) für Löschen, Öffnen, senden. Öffnen ist schon funktionsfähigund kann zusätzlich auch durch Doppelklick gestartet werden. Bei senden öffnet sichnur eine MsgBox. Da ich nicht wissen kann wie du dir dein Ticketsystem gedacht hast wollte ich damit nur die Bedienbarkeit erleichtern, denn mich hat es beim Testen immer gestört die Namen einzugeben.

    mfg autoBert

    3 Mal editiert, zuletzt von autoBert (3. Dezember 2012 um 08:09)

  • Die neu angekommenen Tickets werden aber immer noch nicht beim druck auf den Refresh Button angezeigt. ;(
    Ich habe schon geguckt woran es liegen kann aber ich finde einfach keinen Grund....

  • Hast du schon mit einem FTP-Client z.B.: FileZilla nachgeschaut ob diese im Ordner /Tickets landen und nicht direkt in / ?

    du kannst einmal Case $idBtnRefresh so

    [autoit]

    _GUICtrlListView_DeleteAllItems($hListView)
    $Ftpc = _FTP_Close($Open)
    _FTPLogin()
    _GetTickets()

    [/autoit]

    abändern und testen ursprünglich hast du da die Sitzung geschlossen und wieder neu aufgebaut. Obige Änderung bewirkt genau das gleiche.

    mfg autoBert

    Einmal editiert, zuletzt von autoBert (3. Dezember 2012 um 18:29)

  • Erst wenn ich das Programm neu starte werden die neuen Tickets angezeigt, und ja die Tickets landen im richtigen ordner.
    PS: Das geht immer noch nicht ;(

    Ich möchte dich nicht nerven aber könntest du nochmal drüber schaun , wäre echt nett :thumbup: ?

  • _FTP_ListToArrayEx() aktualisiert bei erneutem Aufruf die Dateien und Verzeichnisse nicht.
    Umgehen lässt sich das indem man statt

    [autoit]

    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2)

    [/autoit]


    folgendes verwendet:

    [autoit]

    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2, $INTERNET_FLAG_RELOAD)

    [/autoit]


    Dann sollten die Dateien immer neu aktualisiert werden.
    (Die verwendbaren Flags sind dieselben des 4. Parameters von _FTP_FindFileFirst())

  • Ich habe noch ein paar Änderungen gemacht:

    Spoiler anzeigen
    [autoit]

    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <FTPEx.au3>
    #include <Array.au3>
    Global $Prozentt, $Prozent
    Global $Server = "ftp.lima-city.de"
    Global $Username = "autobert"
    Global $Passwort = "13FTPBert1158"
    Global $Path = "/Tickets/"
    Global $Path = "/FTPTestfiles/Test/" ;wieder löschen
    Global $Ziel = @DesktopDir
    Global $Open, $l_FTPSession, $aFile, $iFileSize

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

    $gui = GUICreate('Ticket System', 699, 425)
    Global $hListView = GUICtrlCreateListView('Ticket Name |Erstellungs Datum |Gr', 16, 25, 425, 185)
    $idBtnRefresh = GUICtrlCreateButton("&Refresh", 351, 219, 92, 31)
    $Group1 = GUICtrlCreateGroup("Funktionen", 448, 8, 241, 209)
    $idInpTicketName = GUICtrlCreateInput("Ticket Name", 456, 32, 225, 26)
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idEdtTicketAmswer = GUICtrlCreateEdit("", 456, 64, 225, 145)
    GUICtrlSetData(-1, "Antwort auf das Ticket")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnMessage = GUICtrlCreateButton("Nachricht &Senden", 574, 219, 116, 31)
    $idBtnDeleteTicket = GUICtrlCreateButton("Ticket &Verwerfen", 450, 219, 116, 31)
    $Group2 = GUICtrlCreateGroup("Ticket Liste", 8, 8, 441, 209)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnExitTS = GUICtrlCreateButton("Ticket System V&erlassen", 351, 299, 340, 31)
    $idEdtTicketQuestion = GUICtrlCreateEdit("", 8, 224, 337, 109)
    GUICtrlSetData(-1, "Inhalt des Tickets")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idBtnOpenTicket = GUICtrlCreateButton("Ticket &Öffnen", 351, 259, 340, 31)
    _FTPLogin()
    _GetTickets()
    $idContextmenu = GUICtrlCreateContextMenu($hListView)
    $idCMnuDelete = GUICtrlCreateMenuItem("Ticket &Verwerfen", $idContextmenu)
    $idCMnuOpen = GUICtrlCreateMenuItem("Ticket &Öffnen", $idContextmenu)
    $idCMnuSend = GUICtrlCreateMenuItem("Nachricht &Senden", $idContextmenu)
    GUICtrlCreateMenuItem("", $idContextmenu)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<======================= Bemachrichtigung Doppelklick etc.
    _ColSizes()
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $idBtnExitTS
    $Ftpc = _FTP_Close($Open)
    Exit
    Case $idBtnOpenTicket, $idCMnuOpen
    _OpenTicket()
    Case $idBtnDeleteTicket, $idCMnuDelete
    $sDeleteTicket = GUICtrlRead($idInpTicketName)
    #cs ;so geht es schneller
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $aTicketLV = _GUICtrlListView_GetItemTextArray($hListView, $i)
    ConsoleWrite($aTicketLV[1] & @TAB)
    If $sDeleteTicket == $aTicketLV[1] Then
    _FTP_FileDelete($l_FTPSession, $sDeleteTicket)
    _GUICtrlListView_DeleteItem($hListView, $i)
    ConsoleWrite("Deleted" & @CRLF)
    $iFileSize -= $aTicketLV[3]
    Else
    ConsoleWrite(@CRLF)
    EndIf
    Next
    _ShowStat()
    #ce
    ;#cs ;so wird auch gleich refresht
    _FTP_FileDelete($l_FTPSession, $sDeleteTicket)
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    ;#ce
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Case $idBtnMessage, $idCMnuSend
    MsgBox(0, "Sorry", "muss erst noch programmiert werden")
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Case $idBtnRefresh
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    EndSwitch
    WEnd

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

    Func _FTPLogin()
    Local $iRetrys
    Do
    $Open = _FTP_Open('Mein FTP-Control')
    If @error Then $iRetrys += 1
    ConsoleWrite("Open Retrys: " & $iRetrys & @CRLF)
    If $iRetrys > 5 Then
    MsgBox(16, "FTP-Fehler", "Open: " & @error)
    Exit
    EndIf
    Until $Open <> 0
    $iRetrys = 0
    Do
    $l_FTPSession = _FTP_Connect($Open, $Server, $Username, $Passwort)
    If @error Then $iRetrys += 1
    ConsoleWrite("Connect Retrys: " & $iRetrys & @CRLF)
    If $iRetrys > 5 Then
    MsgBox(16, "FTP-Fehler", "Connect: " & @error)
    Exit
    EndIf
    Until $l_FTPSession <> 0
    _FTP_DirSetCurrent($l_FTPSession, $Path)
    EndFunc ;==>_FTPLogin

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

    Func _GetTickets()
    Local Static $iRetrys
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2, $INTERNET_FLAG_RELOAD)
    If $aFile = 0 Then
    ConsoleWrite("GetTicket Retrys: " & $iRetrys & @CRLF)
    If $iRetrys < 4 Then
    $iRetrys += 1
    $iAnswer = 6
    Else
    $iAnswer = MsgBox(36, "FTP-Fehler", "Tickets holen: " & @error & @CRLF & @CRLF & "Nochmal versuchen?")
    EndIf
    If $iAnswer = 6 Then
    $Ftpc = _FTP_Close($Open) ;vorsichtshalber
    Sleep(1000)
    _FTPLogin()
    _GetTickets()
    Else
    Exit
    EndIf
    EndIf
    $iFileSize = 0
    _GUICtrlListView_BeginUpdate($hListView)
    For $i = 1 To $aFile[0][0]
    GUICtrlCreateListViewItem($aFile[$i][0] & '|' & $aFile[$i][3] & '|' & $aFile[$i][1], $hListView)
    $iFileSize += $aFile[$i][1]
    Next
    _ColSizes()
    _GUICtrlListView_EndUpdate($hListView)
    _ShowStat()
    EndFunc ;==>_GetTickets

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

    Func _ShowStat()
    ConsoleWrite("Grösse aller Tickets: " & $iFileSize & @CRLF)
    ConsoleWrite("Anzahl aller Tickets: " & _GUICtrlListView_GetItemCount($hListView) & @CRLF)
    ;dies evtl. in Labels anzeigen lassen
    EndFunc ;==>_ShowStat

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

    Func _OpenTicket()
    $sOpenTicket = GUICtrlRead($idInpTicketName)
    If $sOpenTicket <> "Ticket Name" Then
    ConsoleWrite($sOpenTicket & @TAB)
    #cs ;klappt nicht
    $hFileOpen = _FTP_FileOpen($l_FTPSession, $sOpenTicket)
    $sText = ""
    Do
    $sText &= _FTP_FileRead($hFileOpen, 256)
    Until @error
    $sText = BinaryToString($sText)
    #ce
    _FTP_FileGet($l_FTPSession, $sOpenTicket, $Ziel & "\" & $sOpenTicket)
    ConsoleWrite(@error & @CRLF)
    $sText = FileRead($Ziel & "\" & $sOpenTicket)
    GUICtrlSetData($idEdtTicketQuestion, $sText)
    ;FileDelete($Ziel&"\"&$sOpenTicket)
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Else
    ConsoleWrite("nothing selected" & @CRLF)
    EndIf
    ConsoleWrite("ready " & @CRLF)
    EndFunc ;==>_OpenTicket

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

    Func _ColSizes()
    _GUICtrlListView_HideColumn($hListView, 2) ;Größe verstecken
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 140)
    EndFunc ;==>_ColSizes

    [/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 = $hListView Then
    ;ConsoleWrite($code & @CRLF)
    Switch $code
    ;Case $NM_CLICK,$NM_RCLICK ,$NM_DBLCLK; Links-, Rechts-, Doppelklick
    Case $NM_CLICK, $NM_RCLICK, $NM_DBLCLK
    $i = _GUICtrlListView_GetSelectedIndices($hListView)
    If $i <> "" Then
    $i = Int($i)
    $aTicket = _GUICtrlListView_GetItemTextArray($hListView, $i)
    $sTicket = $aTicket[1]
    GUICtrlSetData($idInpTicketName, $sTicket)
    EndIf
    If $code = $NM_DBLCLK Then _OpenTicket()
    EndSwitch
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

    [/autoit]

    Es ist kurz angetestet, es kann aber nicht schaden wenn du es auch noch testest.

    mfg autoBert

  • Das hier ist nun mein aktuelles Script also auch mit der Bearbeitungsfunktion.

    Spoiler anzeigen
    [autoit]


    #include<GUIConstantsEx.au3>
    #include<WindowsConstants.au3>
    #include <GUIListView.au3>
    #include <FTPEx.au3>
    #include <Array.au3>
    Global $Prozentt, $Prozent
    $Server = "****"
    $Username = "******"
    $Passwort = "*************************"
    Global $Path = "/Tickets/"
    Global $Ziel = @DesktopDir
    Global $Open, $l_FTPSession, $aFile, $iFileSize

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

    $gui = GUICreate('Ticket System', 699, 425)
    Global $hListView = GUICtrlCreateListView('Ticket Name |Erstellungs Datum |Gr', 16, 25, 425, 185)
    $idBtnRefresh = GUICtrlCreateButton("&Refresh", 351, 219, 92, 31)
    $Group1 = GUICtrlCreateGroup("Funktionen", 448, 8, 241, 209)
    $idInpTicketName = GUICtrlCreateInput("Ticket Name", 456, 32, 225, 26)
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idEdtTicketAmswer = GUICtrlCreateEdit("", 456, 64, 225, 145)
    GUICtrlSetData(-1, "Antwort auf das Ticket")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnMessage = GUICtrlCreateButton("Nachricht &Senden", 574, 219, 116, 31)
    $idBtnDeleteTicket = GUICtrlCreateButton("Ticket &Verwerfen", 450, 219, 116, 31)
    $Group2 = GUICtrlCreateGroup("Ticket Liste", 8, 8, 441, 209)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $idBtnExitTS = GUICtrlCreateButton("Ticket System V&erlassen", 351, 299, 340, 31)
    $idEdtTicketQuestion = GUICtrlCreateEdit("", 8, 224, 337, 109)
    GUICtrlSetData(-1, "Inhalt des Tickets")
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    $idBtnOpenTicket = GUICtrlCreateButton("Ticket &Öffnen", 351, 259, 340, 31)
    $idTicketGesamt = GUICtrlCreateLabel("Gesamt-Tickets: 100", 105, 336, 802, 20)
    GUICtrlSetFont(-1, 8, 800, 0, "Palatino Linotype")
    _FTPLogin()
    _GetTickets()
    $idContextmenu = GUICtrlCreateContextMenu($hListView)
    $idCMnuDelete = GUICtrlCreateMenuItem("Ticket &Verwerfen", $idContextmenu)
    $idCMnuOpen = GUICtrlCreateMenuItem("Ticket &Öffnen", $idContextmenu)
    $idCMnuSend = GUICtrlCreateMenuItem("Nachricht &Senden", $idContextmenu)
    GUICtrlCreateMenuItem("", $idContextmenu)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<======================= Bemachrichtigung Doppelklick etc.
    _ColSizes()
    GUISetState()

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE, $idBtnExitTS
    $Ftpc = _FTP_Close($Open)
    Exit
    Case $idBtnOpenTicket, $idCMnuOpen
    _OpenTicket()
    Case $idBtnDeleteTicket, $idCMnuDelete
    $sDeleteTicket = GUICtrlRead($idInpTicketName)
    GUICtrlSetData($idEdtTicketQuestion, "Inhalt des Tickets")
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    #cs ;so geht es schneller
    For $i = 0 To _GUICtrlListView_GetItemCount($hListView) - 1
    $aTicketLV = _GUICtrlListView_GetItemTextArray($hListView, $i)
    ConsoleWrite($aTicketLV[1] & @TAB)
    If $sDeleteTicket == $aTicketLV[1] Then
    _FTP_FileDelete($l_FTPSession, $sDeleteTicket)
    _GUICtrlListView_DeleteItem($hListView, $i)
    ConsoleWrite("Deleted" & @CRLF)
    $iFileSize -= $aTicketLV[3]
    Else
    ConsoleWrite(@CRLF)
    EndIf
    Next
    _ShowStat()
    #ce
    ;#cs ;so wird auch gleich refresht
    _FTP_FileDelete($l_FTPSession, $sDeleteTicket)
    _GUICtrlListView_DeleteAllItems($hListView)
    _GetTickets()
    ;#ce
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Case $idBtnMessage, $idCMnuSend
    _EditTicket()
    Case $idBtnRefresh
    _GUICtrlListView_DeleteAllItems($hListView)
    GUICtrlSetData($idEdtTicketQuestion, "Inhalt des Tickets")
    _GetTickets()
    EndSwitch
    WEnd

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

    Func _FTPLogin()
    Local $iRetrys
    Do
    $Open = _FTP_Open('Mein FTP-Control')
    If @error Then $iRetrys += 1
    ConsoleWrite("Open Retrys: " & $iRetrys & @CRLF)
    If $iRetrys > 5 Then
    MsgBox(16, "FTP-Fehler", "Open: " & @error)
    Exit
    EndIf
    Until $Open <> 0
    $iRetrys = 0
    Do
    $l_FTPSession = _FTP_Connect($Open, $Server, $Username, $Passwort)
    If @error Then $iRetrys += 1
    ConsoleWrite("Connect Retrys: " & $iRetrys & @CRLF)
    If $iRetrys > 5 Then
    MsgBox(16, "FTP-Fehler", "Connect: " & @error)
    Exit
    EndIf
    Until $l_FTPSession <> 0
    _FTP_DirSetCurrent($l_FTPSession, $Path)
    EndFunc ;==>_FTPLogin

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

    Func _GetTickets()
    Local Static $iRetrys
    $aFile = _FTP_ListToArrayEx($l_FTPSession, 2, $INTERNET_FLAG_RELOAD)
    If $aFile = 0 Then
    ConsoleWrite("GetTicket Retrys: " & $iRetrys & @CRLF)
    If $iRetrys < 4 Then
    $iRetrys += 1
    $iAnswer = 6
    Else
    $iAnswer = MsgBox(36, "FTP-Fehler", "Tickets holen: " & @error & @CRLF & @CRLF & "Nochmal versuchen?")
    EndIf
    If $iAnswer = 6 Then
    $Ftpc = _FTP_Close($Open) ;vorsichtshalber
    Sleep(1000)
    _FTPLogin()
    _GetTickets()
    Else
    Exit
    EndIf
    EndIf
    $iFileSize = 0
    _GUICtrlListView_BeginUpdate($hListView)
    For $i = 1 To $aFile[0][0]
    GUICtrlCreateListViewItem($aFile[$i][0] & '|' & $aFile[$i][3] & '|' & $aFile[$i][1], $hListView)
    $iFileSize += $aFile[$i][1]
    Next
    _ColSizes()
    _GUICtrlListView_EndUpdate($hListView)
    _ShowStat()
    EndFunc ;==>_GetTickets

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

    Func _ShowStat()
    ConsoleWrite("Grösse aller Tickets: " & $iFileSize & @CRLF)
    ConsoleWrite("Anzahl aller Tickets: " & _GUICtrlListView_GetItemCount($hListView) & @CRLF)
    GUICtrlSetData($idTicketGesamt,"Gesamt-Tickets: " & _GUICtrlListView_GetItemCount($hListView))
    ;dies evtl. in Labels anzeigen lassen
    EndFunc ;==>_ShowStat

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

    Func _OpenTicket()
    $sOpenTicket = GUICtrlRead($idInpTicketName)
    If $sOpenTicket <> "Ticket Name" Then
    ConsoleWrite($sOpenTicket & @TAB)
    #cs ;klappt nicht
    $hFileOpen = _FTP_FileOpen($l_FTPSession, $sOpenTicket)
    $sText = ""
    Do
    $sText &= _FTP_FileRead($hFileOpen, 256)
    Until @error
    $sText = BinaryToString($sText)
    #ce
    _FTP_FileGet($l_FTPSession, $sOpenTicket, $Ziel & "\" & $sOpenTicket)
    ConsoleWrite(@error & @CRLF)
    $sText = IniRead($Ziel & "\" & $sOpenTicket,"Allgemein","Frage","Leer")
    GUICtrlSetData($idEdtTicketQuestion, $sText)
    ;FileDelete($Ziel&"\"&$sOpenTicket)
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    Else
    ConsoleWrite("nothing selected" & @CRLF)
    EndIf
    ConsoleWrite("ready " & @CRLF)
    EndFunc ;==>_OpenTicket

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

    Func _ColSizes()
    _GUICtrlListView_HideColumn($hListView, 2) ;Größe verstecken
    _GUICtrlListView_SetColumnWidth($hListView, 0, 210)
    _GUICtrlListView_SetColumnWidth($hListView, 1, 140)
    EndFunc ;==>_ColSizes

    [/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 = $hListView Then
    ;ConsoleWrite($code & @CRLF)
    Switch $code
    ;Case $NM_CLICK,$NM_RCLICK ,$NM_DBLCLK; Links-, Rechts-, Doppelklick
    Case $NM_CLICK, $NM_RCLICK, $NM_DBLCLK
    $i = _GUICtrlListView_GetSelectedIndices($hListView)
    If $i <> "" Then
    $i = Int($i)
    $aTicket = _GUICtrlListView_GetItemTextArray($hListView, $i)
    $sTicket = $aTicket[1]
    GUICtrlSetData($idInpTicketName, $sTicket)
    EndIf
    If $code = $NM_DBLCLK Then _OpenTicket()
    EndSwitch
    EndIf
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_NOTIFY

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

    Func _EditTicket()
    $sOpenTicket = GUICtrlRead($idInpTicketName)
    If $sOpenTicket <> "Ticket Name" Then
    ConsoleWrite($sOpenTicket & @TAB)
    #cs ;klappt nicht
    $hFileOpen = _FTP_FileOpen($l_FTPSession, $sOpenTicket)
    $sText = ""
    Do
    $sText &= _FTP_FileRead($hFileOpen, 256)
    Until @error
    $sText = BinaryToString($sText)
    #ce
    _FTP_FileGet($l_FTPSession, $sOpenTicket, $Ziel & "\" & $sOpenTicket)
    ConsoleWrite(@error & @CRLF)
    IniWrite($Ziel & "\" & $sOpenTicket,"Allgemein","Antwort",GUICtrlRead($idEdtTicketAmswer))
    _FTP_ProgressUpload($l_FTPSession,$Ziel & "\" & $sOpenTicket,$sOpenTicket,"_UpdateProgress")
    FileDelete($Ziel & "\" & $sOpenTicket)
    GUICtrlSetData($idEdtTicketQuestion,"Inhalt des Tickets")
    GUICtrlSetData($idInpTicketName, "Ticket Name")
    GUICtrlSetData($idEdtTicketAmswer, "Antwort auf das Ticket")
    Else
    ConsoleWrite("nothing selected" & @CRLF)
    EndIf
    ConsoleWrite("ready " & @CRLF)
    EndFunc ;==>_OpenTicket

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

    Func _UpdateProgress($percent)
    return 1
    EndFunc ;==>_UpdateProgress

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

    Nun meine letzte Frage, ist es möglich da noch eine Status leiste des Tickets hinzuzufügen ?
    Also noch eine Spalte wo drin steht BEARBEITET oder OFFEN .

    Edit Oscar: Spoiler eingefügt. Bitte bei längeren Quelltexten den Spoiler benutzen!