Chatbox-UDF für Chatscripting

  • Hallo Ihr,

    Ich habe mir von Oscar dieses Chatbox für 2User Chat (an einem Computer) geschnappt und bin nun testweise dran, dies als einen IM zu basteln, welcher über FTP die Daten schreibt und ließt.
    Hier der bisherige Code:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <Date.au3>
    #include <Chatbox.au3>
    #include <Array.au3>
    #include <FTPex.au3>

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

    $hGui = GUICreate('Chatbox Beispiel', 600, 600, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX))
    $hChat = _Chatbox_Create($hGui, 10, 10, 580, 420, 0xffffaa, @ScriptDir & '\Chatlog.txt')
    GUICtrlSetFont(-1, 12)
    $menu1 = GUICtrlCreateMenu("Datei")
    $menu11 = GUICtrlCreateMenuitem("Connect to Chat", $menu1)
    $menu12= GUICtrlCreateMenuitem("Create new Protokoll", $menu1)
    $menu13 = GUICtrlCreateMenuitem("Exit", $menu1)
    $hSmiley1 = GUICtrlCreateButton('Smiley auswählen', 70, 480, 100, 18)
    $hUser1 = GUICtrlCreateInput('', 10, 500, 540, 20)
    $hEnter1 = GUICtrlCreateButton('send', 550, 500, 40, 20)
    GUISetState()
    _Chatbox_SetData($hChat, 'Bitte haltet euch an die Regeln!', 0x000000, 5)
    GUICtrlSetState($hUser1, $GUI_FOCUS)
    GUICtrlSetState($hEnter1, $GUI_DEFBUTTON)

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

    $username = ""
    $connection = 0
    $remotefile = ""
    $protokollhtml = ""

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

    While True

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

    $text = '[' & _Now() & '] '&$username&': ' & GUICtrlRead($hUser1)

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

    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hSmiley1
    _Chatbox_SmileyToText($hUser1, '', -1, -1, $hGui)
    GUICtrlSetState($hUser1, $GUI_FOCUS)
    GUICtrlSetState($hEnter1, $GUI_DEFBUTTON)

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

    Case $menu11
    $username = InputBox("Username", "Dein Username?")
    $chatprotokoll = InputBox("Protokoll", "Bitte wählen sie das bestehende Chat-Protokoll aus, mit dem sie verbunden werden wollen.")
    $open = _FTP_Open("Chat-Protokollverbindung")
    $connection = _FTP_Connect($open,"server","accountname","passwort", 1)
    if($connection = 0) Then
    MSGBOX(0, "Fehler", "Es konnte keine Verbindung hergestellt werden. Bitte versuchen sie es später erneut.")
    EndIf

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

    Case $hEnter1
    if($connection = 0) Then
    MSGBOX(0, "Fehler beim Verbinden", "Es trat ein Fehler beim Verbinden auf. Bitte versuchen sie es später erneut!")
    elseif($username = "") Then
    MSGBOX(0, "Fehler beim Login", "Dein Username ist ungültig.")
    elseif(GUICTRLRead($hUser1) = "") Then
    MSGBOX(0, "Fehler beim Versenden", "Du kannst keine leeren Zeilen versenden.")
    else
    $protokollhtml = @SCRIPTDIR&"\"&$chatprotokoll&".html"
    $remotefile = $chatprotokoll&".html"
    $remotefile = "/Chatlogs/"&$chatprotokoll&".html"
    _Chatbox_SetData($hChat,$text, 0xff0000, 2)
    $array = _Chatbox_ReadHTML($hChat)
    FileWriteLine($protokollhtml, $array)
    _FTP_FilePut($connection, $protokollhtml, $remotefile)
    FileDelete($protokollhtml)
    GUICtrlSetData($hUser1, '')
    GUICtrlSetState($hUser1, $GUI_FOCUS)
    GUICtrlSetState($hEnter1, $GUI_DEFBUTTON)
    Endif

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

    Case $menu12
    MSGBOX(0, "Error", "Dieses Feature ist noch nicht verfügbar.")
    Case $menu13
    _FTP_Close($connection)
    Exit
    EndSwitch

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

    $start = TimerInit()

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

    if($start > 500) then
    if(FileGetSize($protokollhtml) = _FTP_FileGetSize($connection, $remotefile)) Then
    Else
    _FTP_FileGet($connection, $remotefile, $protokollhtml)
    $array2 = FileRead($protokollhtml)
    ;MSGBOX(0, "", $array2)
    $hChat = _IECREATEEmbedded()
    _IEBodyReadHTML($protokollhtml)
    ;~ _Chatbox_SetData($hChat,$array2)
    $start = TimerInit()
    Endif
    EndIf

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

    WEnd

    [/autoit]

    Nun klappt die Übertragung an den Server und das runterladen der Datei. (Auch nur dann, wenn Veränderungen gemacht wurden) Nun möcht ich aber, falls der Kollege was geschrieben hat, dass er mir des aktuelle Chatfenster komplett löscht und den neuen Text aus der HTML Datei einließt.

    So sieht eine Beispielsweise angelegte HTML Site im KOMPLETTEN Quelltext aus:

    Code
    <P><FONT color=#000000 size=5><B><U>Bitte haltet euch an die Regeln!</U></B></FONT></P>
    <P><FONT color=#ff0000 size=2><B>[24.05.2010 22:12:04] Schrubber:</B> Hallo :)</FONT></P>


    Leider funktioniert das nicht ganz. Er wirft mich mit einem Error rauß, wenn er die Datei lesen will.
    Meine Frage: Wie kann ich dem _IE Embedded den Quelltext so übergeben, dass er mir angezeigt wird (wie vorher) UND dass meine Nachricht ebenfalls druntersteht, falls ich schreibe.

    Denke, dies muss iwie mit der Include gemacht werden von Chatbox.
    Link zu der Include


    Ich danke im vorraus, wenn mir jemand helfen kann ;)

    Schrubber