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
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <Date.au3>
#include <Chatbox.au3>
#include <Array.au3>
#include <FTPex.au3>
$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)
$username = ""
$connection = 0
$remotefile = ""
$protokollhtml = ""
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)
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
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
Case $menu12
MSGBOX(0, "Error", "Dieses Feature ist noch nicht verfügbar.")
Case $menu13
_FTP_Close($connection)
Exit
EndSwitch
$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
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:
<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