Fehler beim Entschlüsseln eines Textes

  • kanns leider gerade nicht testen, aber was mir auffällt:
    du löscht das $Edit1 nach etwas über 80ms wieder
    das gibt max ein kurzes aufflackern der Nachricht

    Spoiler anzeigen
    [autoit]


    While 1
    ;GUICtrlSetData($Edit1, "") ; <-- löscht Nachricht
    $read2 = _StringEncrypt(0,fileread($pfad), "1") ; <-- erst lesen, dann entschlüsseln
    GUICtrlSetData($Edit1, $read2) ; <-- schreibt Nachricht
    Sleep(80)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $read = GUICtrlRead($Edit2)
    If $read = "" then
    msgbox(48, "Information", "Du kannst keine Nachricht ohne Inhalt senden!")
    else
    FileWrite($pfad,_StringEncrypt(1, $user&": "&$read&@CRLF, "1"))
    GUICtrlSetData($Edit2, "")
    EndIf
    EndSwitch
    WEnd

    [/autoit]

    Edit: außerdem musst du die ausgelesenen Daten entschlüsseln

  • du löscht das $Edit1 nach etwas über 80ms wieder
    das gibt max ein kurzes aufflackern der Nachricht

    Ja das stimmt und ich werde es auch noch ändern... aber jetzt ist erstmal das mit dem entschlüsseln wichtiger.

  • Oh hatte ich übersehen^^
    Jetzt funktioniert es zumindest schonmal in der ersten Zeile, aber wenn man danach noch eine nachricht schreibt, wird diese wieder nicht entschlüsselt...

  • mal ein einfacher Ansatz ohne groß drüber nachgedacht zu haben ...

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <file.au3>
    #include <string.au3>
    HotKeySet("{F4}", "schliessen")
    MsgBox(48, "Information", "Zum schließen des Schul-Chats einfach nur <F4> drücken")
    $pfad = @desktopdir&"\NetControl.new"
    $user = @UserName
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Schul-Chat", 467, 442, 405, 112)
    Global $Edit1 = GUICtrlCreateEdit("", 9, 6, 442, 298, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_READONLY,$ES_WANTRETURN,$WS_VSCROLL))
    Global $Edit2 = GUICtrlCreateEdit("", 12, 318, 442, 73, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL))
    Global $Button1 = GUICtrlCreateButton("Senden", 351, 405, 103, 25, $WS_GROUP)
    Global $Button2 = GUICtrlCreateButton("Löschen", 151, 405, 103, 25, $WS_GROUP)

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

    Global $read , $read2, $readfile
    Global $pass = "mein_pass"
    GUICtrlSetData($Edit1, "")
    GUISetState(@SW_SHOW)
    Global $Form1_AccelTable[1][2] = [["{ENTER}", $Button1]]
    GUISetAccelerators($Form1_AccelTable)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(10)
    $readfile = _StringEncrypt(0,fileread($pfad),$pass,1)
    If $read2 <> $readfile Then
    $read2 = $readfile
    GUICtrlSetData($Edit1, $read2)
    EndIf
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $read = GUICtrlRead($Edit2)
    If $read = "" then
    msgbox(48, "Information", "Du kannst keine Nachricht ohne Inhalt senden!")
    else
    FileDelete($pfad)
    FileWrite($pfad,_StringEncrypt(1,$readfile&@CRLF&$user&": "&$read,$pass,1))
    GUICtrlSetData($Edit2, "")
    EndIf
    Case $Button2
    FileDelete($pfad)
    EndSwitch
    WEnd

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

    func schliessen()
    Exit
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • anbei das geänderte Script:

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <file.au3>
    #include <string.au3>
    HotKeySet("{F4}", "schliessen")
    MsgBox(48, "Information", "Zum schließen des Schul-Chats einfach nur <F4> drücken")
    $pfad = @DesktopDir & "\NetControl.new"
    $user = @UserName
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Schul-Chat", 467, 442, 405, 112)
    Global $Edit1 = GUICtrlCreateEdit("", 9, 6, 442, 298, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_READONLY, $ES_WANTRETURN, $WS_VSCROLL))
    Global $Edit2 = GUICtrlCreateEdit("", 12, 318, 442, 73, BitOR($ES_AUTOVSCROLL, $ES_AUTOHSCROLL, $ES_WANTRETURN, $WS_VSCROLL))
    Global $Button1 = GUICtrlCreateButton("Senden", 351, 405, 103, 25, $WS_GROUP)
    GUISetState(@SW_SHOW)
    Global $Form1_AccelTable[1][2] = [["{ENTER}", $Button1]]
    GUISetAccelerators($Form1_AccelTable)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    ;GUICtrlSetData($Edit1, "")
    $read2 = _StringEncrypt(0, FileRead($pfad), "1")
    If $read2 <> GuiCtrlRead($Edit1) Then GUICtrlSetData($Edit1, $read2) ; <-- aktualisiert nur bei Änderung
    ;Sleep(80)
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    schliessen()
    Case $Button1
    $read = GUICtrlRead($Edit2)
    If $read = "" Then
    MsgBox(48, "Information", "Du kannst keine Nachricht ohne Inhalt senden!")
    Else
    FileDelete($pfad)
    FileWrite($pfad, _StringEncrypt(1, $read2 & $user & ": " & $read & @CRLF, "1"))
    GUICtrlSetData($Edit2, "")
    EndIf
    EndSwitch
    WEnd

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

    Func schliessen()
    FileDelete($pfad) ; <-- Nachrichtendatei löschen
    Exit
    EndFunc ;==>schliessen

    [/autoit]


    Edit: verdammt, zu langsam gewesen^^