1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Jonas Houben

Beiträge von Jonas Houben

  • SQLite Insert - 0 erscheint aus dem Nichts

    • Jonas Houben
    • 29. November 2013 um 18:01

    Hi Community,

    Ich habe mal wieder ein Problem.
    Wenn ich diese Funktion aufrufe, dann erscheint ein SQLite Fehler mit Jonas0, obwohl ich vorher die Variablen so zugewiesen habe:
    $hSocket = 426
    $sIP = 0
    $sName = "Jonas"

    [autoit]

    _SQLite_Exec($db,"INSERT INTO RegisteredClients VALUES ('"&$hSocket&"','"&$sIP&"','"&$sName&"','False','"-"','"-"','""');") ;Klappt nicht

    [/autoit]

    ! SQLite.au3 Error
    --> Function: _SQLite_Exec
    --> Query: INSERT INTO RegisteredClients VALUES ('572','0','Jonas0
    --> Error: unrecognized token: "'Jonas0"

    Die Funktion dazu:

    [autoit]

    Func _Server_Database_ClientAdd($hSocket,$sName) ;Creates persistant Info
    ConsoleWrite(@HOUR&":"&@MIN&":"&@SEC&" Client ADD "&$hSocket&@CRLF)
    $sIP = SocketToIP($hSocket)
    $ret = _SQLite_Exec($db,"INSERT INTO RegisteredClients VALUES ('"&$hSocket&"','"&$sIP&"','"&$sName&"','False','"-"','"-"','""');") ;Klappt nicht
    MsgBox(0,"",$ret&@CRLF&@error&@CRLF&@extended&@CRLF&"---"&@CRLF&"Socket="&$hSocket&@CRLF&"Name="&$sName&@CRLF&"IP="&$sIP)
    Return _Server_Database_ClientLogin($hSocket,$sName)
    EndFunc

    [/autoit]

    Aber wenn ich den Befehl einfach so ausführe, funktioniert er ?(

    [autoit]

    _SQLite_Exec($db,"INSERT INTO RegisteredClients VALUES ('568','0','Jonas','-','-','-','17:41');") ;Klappt

    [/autoit]

    Das ganze Script ist im Anhang.
    Ich hoffe ihr findet eine Lösung.

    Dateien

    Includes.au3 4,37 kB – 293 Downloads
  • DHCP Client emulieren

    • Jonas Houben
    • 12. August 2013 um 10:03

    Es geht mir einfach darum zu versuchen mit AutoIt einen einfachen DHCP Client zu emulieren.
    Was ich noch nicht ganz verstehe wie man jetzt Daten abschickt.
    Muss man die 0x003 und so hintereinander hängen?

  • DHCP Client emulieren

    • Jonas Houben
    • 10. August 2013 um 20:42

    Soweit verstanden,
    Aber muss man die gesendeten Daten dann auch irgendwie kodieren?
    Leider gibt es in dem RFC keine eindeutige Syntax, so wie "DHCPDISCOVER [param1] [param2]" oder so.
    Nur gaannnzz viel Text :(
    Kann man so etwas in der Art irgendwo finden?

  • DHCP Client emulieren

    • Jonas Houben
    • 9. August 2013 um 22:28

    Hallo zusammen,
    Ich wollte mal fragen ob es möglich ist mit AutoIt einen DHCP Clienten zu emulieren.
    Die SuFu habe ich schon benutzt.
    Habe es vorhin schon mal versucht, kriege aber vom Server nur eine unverständliche Antwort die sich
    mit StringToBinary nicht entschlüsseln lässt.
    Hier mein Script:

    Spoiler anzeigen
    [autoit]


    UDPStartup()
    $open = UDPOpen("255.255.255.255",67)
    $socket = UDPBind("0.0.0.0",68)
    UDPSend($open,"DHCPDISCOVER")
    Do
    $recv = UDPRecv($socket,1024^2)
    Until $recv <> ""
    MsgBox(0,"",$recv)
    UDPShutdown()

    [/autoit]


    Ausgabe ist manchmal in Binär-Form(also 0x0090u0870 etc.) oder gar keine.

  • FTP Download mit Proxy Settings

    • Jonas Houben
    • 8. Juni 2013 um 15:52

    Ich meine die Syntax für .txt Dateien für CMD Ftp wäre so ?
    Bist du sicher das die Proxy Addresse, Proxy Port, FTP-Server, Name und Passwort des Proxys und des FTP-Servers richtig sind?
    Sonst sehe ich immoment keine anderen Fehler.

    MfG

    Jonas

    PS: Wieso braucht der Proxy ein Passwort und einen Namen?

  • FTP Download mit Proxy Settings

    • Jonas Houben
    • 6. Juni 2013 um 21:11

    Hi,
    Hast du schonmal die Ports/Addresse/Username/Passwort überprüft?
    Bei mir funktioniert es nähmlich lokal ;)

    Spoiler anzeigen
    [autoit]

    #include <FTPEx.au3>
    #RequireAdmin
    Dim $l_AccessType = 0
    Dim $s_ProxyName = '192.168.178.62:8080' ;Lokaler Proxy
    Dim $i_passive =''
    Dim $serveradresse = "localhost" ;FTP Server(FileZilla) Lokal
    Dim $username = "admin" ;Username
    Dim $password = "jonas" ;Passwort
    FtpSetProxy(2,$s_ProxyName) ;Kein Username/Passwort nötig, da lokaler Proxy
    $open = _FTP_Open("FTP",$INTERNET_OPEN_TYPE_PROXY ,$s_ProxyName)
    MsgBox(0,"",$open)
    ;Result von $open ===> 0x00CC0004
    $connection = _FTP_Connect($open, $serveradresse, $username,$password,1)
    MsgBox(0,"",$connection)
    ;Result von $connection ==> 0x00CC0008 <==

    [/autoit]

    Siehe da: Der Rückgabewert ist nicht 0(Fehler) sondern 0x00CC0008
    (Also bei mir zumindest :P )

    MfG

    Jonas

  • Problem beim Löschen von Emails mit der _pop3.au3 UDF(überarbeitet von Thorsten Willert)

    • Jonas Houben
    • 6. Juni 2013 um 18:35

    Hi liebe Community,
    Ich habe ein Problem mit einem Selbsterstellten Mailprogramm was die Überarbeitete _POP3.au3 UDF benutzt.
    Ihr kriegt sie hier.
    Ich habe die Abschnitte mit Nutzername, Passwort und Addresse mit einem '*' zensiert.
    Das eigentliche Problem liegt darin, das wenn man auf den Löschen-Button drückt und einen Eintrag aus der ListView selektiert hat, das dann einfach sich das Programm nach dem +OK vom Server aufhängt... :cursing:

    Die Funktion die die Emails löschen soll, funktioniert so:

    1.ListView Select abfragen
    2._pop3dele ausführen
    Aber bei dem letzten Befehl haperts:
    Die Debug-Ausgabe zeigt ein +OK vom Server an, und danach hängt sich die Verbindung auf 8|
    Bitte um schnelle Hilfe.

    Spoiler anzeigen
    [autoit]

    #include <File.au3>
    #include "_pop3.au3"
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ListViewConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIListView.au3>
    $address = "*"
    $name = "*"
    $pass = "*"
    Opt("GUIOnEventMode", 1)
    #Region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Email-Programm", 615, 438, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    Global $Button1 = GUICtrlCreateButton("Connect", 0, 0, 75, 25)
    GUICtrlSetOnEvent(-1, "Connect")
    Global $Button2 = GUICtrlCreateButton("Disconnect", 240, 0, 75, 25)
    GUICtrlSetOnEvent(-1, "Disconnect")
    Global $Input1 = GUICtrlCreateInput($address, 8, 32, 121, 21)
    Global $Input2 = GUICtrlCreateInput($name, 8, 56, 121, 21)
    Global $Input3 = GUICtrlCreateInput($pass, 8, 80, 121, 21)
    Global $Button3 = GUICtrlCreateButton("Abrufen", 80, 0, 75, 25)
    GUICtrlSetOnEvent(-1, "Abrufen")
    Global $Button4 = GUICtrlCreateButton("Löschen", 160, 0, 75, 25)
    GUICtrlSetOnEvent(-1, "Loeschen")
    Global $ListView1 = GUICtrlCreateListView("Von:|Subjekt:|Size:|Size2:", 136, 32, 250, 150)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###
    Global $IsConnected = False
    While 1
    Sleep(100)
    WEnd

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

    Func Connect()
    $sLogin = GUICtrlRead($Input2)
    $sPasswd = GUICtrlRead($Input3)
    $sPopServer = GUICtrlRead($Input1)
    _POP3Connect($sLogin,$sPasswd,$sPopServer)
    _POP3Noop()
    $a_mails = _POP3Info()
    $a_list = _POP3List()

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

    For $i = 1 To UBound($a_mails) - 1
    GUICtrlCreateListViewItem( $a_mails[$i][1]&"|"&$a_mails[$i][3]&"|"&$a_list[$i][0]&"|"&$a_list[$i][1], $ListView1 )
    Next
    $IsConnected = True
    EndFunc
    Func Disconnect()
    _POP3Quit()
    _POP3Disconnect()
    $IsConnected = False
    EndFunc
    Func Abrufen()

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

    EndFunc
    Func Loeschen()
    $mark = _GUICtrlListView_GetSelectionMark($ListView1)
    $mark = $mark + 1
    _POP3Dele($mark)
    MsgBox(0,"","weiter")
    EndFunc
    Func Form1Close()
    If $IsConnected = True Then
    Disconnect()
    Exit
    Else
    Exit
    EndIf
    EndFunc

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

    FileDelete( "mails.txt" )
    _POP3Quit()
    _POP3Disconnect()

    [/autoit]

    MfG

    Jonas

  • Problem bei Chat Server mit TCP.au3 UDF

    • Jonas Houben
    • 30. März 2013 um 21:33
    Zitat von derBrot

    Hallo Jonas Houben,
    ich habe mir mal dein Script angeschaut und getestet, Windows 7 Home Premium 64 Bit - System.
    Beim testen lief alles fehlerfrei, und einen Disconnet habe ich auch nicht bekommen.

    Schon mal versucht beide IP's so zu ändern ? Global $ip = "127.0.0.1"

    Die IPs im Script sind beides die selben: Vom Server und vom Client :rolleyes:
    Die Namensauflösung beim Client ist nur zu Testzwecken damit die IP variieren kann.
    Außerdem Läuft bei mir auch alles fehlerfrei, aber hast du schon mal in die clientnames.txt geschaut? Dadrin sollte eigentlich der Nickname vom Client landen.
    Dies ist bei mir aber nicht so.
    Trotzdem: Vielen Dank für die (schnelle) Antwort.

    MfG

    Jonas Houben

  • Problem bei Chat Server mit TCP.au3 UDF

    • Jonas Houben
    • 29. März 2013 um 15:34

    Hallo liebe Community,
    Ich habe ein Problem und zwar mit der TCP.au3 UDF aus dem englischem Forum http://www.autoitscript.com/forum/topic/74…f-event-driven/

    Ich habe ein kleinen Chatserver und einen Clienten geschrieben, ich habe mir ein bisschen Code aus dem AutoIT Chat von Protex herausgeschrieben(wenn auch nur den Recieve Befehl)
    Leider funktioniert der Server nicht wie ich ihn mir vorgestellt habe.
    Der Netzwerkverkehr wird aus irgendeinem Grund abgebrochen.
    (Funktionsweise steht als Kommentar in den Au3 Dateien)

    Server:

    Spoiler anzeigen
    [autoit]

    ;Includes
    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GUIListBox.au3>
    #include <WindowsConstants.au3>
    #include <File.au3>
    #include <Array.au3>
    #include <TCP.au3>
    #include <Inet.au3>
    ;Includes END
    ;Cleanup
    OnAutoItExitRegister("_End")
    ;Cleanup END
    ;Variablen und Arrays
    Global $BanList[1] ;Ban Liste
    Global $NameArray[1] ;Namens Liste
    Global $ClientArray[5] ;Socket/Client Liste
    Global $ip = @IPAddress1 ;IP
    Global $port = 3333 ;Port
    Global $state = False ;Erfolgreich?
    Global $block = False ;5 User erreicht?
    $hServer = _TCP_Server_Create($port, $ip) ;Server erstellen
    _TCP_RegisterEvent($hServer, $TCP_RECEIVE, "Receive") ;Funktion wenn empfangen
    _TCP_RegisterEvent($hServer, $TCP_NEWCLIENT, "NewClient") ;Neuer Client
    _TCP_RegisterEvent($hServer, $TCP_DISCONNECT, "Disconnect") ;Client Disconnected
    ;GUI
    Opt("GUIOnEventMode", 1)
    #region ### START Koda GUI section ### Form=
    Global $Form1 = GUICreate("Form1", 615, 438, 192, 124)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    Global $List1 = GUICtrlCreateList("", 24, 72, 201, 253)
    Global $Button1 = GUICtrlCreateButton("Ban", 232, 72, 75, 25)
    GUICtrlSetOnEvent(-1, "Button1Click")
    Global $Button2 = GUICtrlCreateButton("Unban", 232, 104, 75, 25)
    GUICtrlSetOnEvent(-1, "Button2Click")
    Global $Button3 = GUICtrlCreateButton("Senden", 232, 136, 75, 25)
    GUICtrlSetOnEvent(-1, "Button3Click")
    Global $Input1 = GUICtrlCreateInput("...", 232, 168, 121, 21)
    GUISetState(@SW_SHOW)
    #endregion ### END Koda GUI section ###
    ;Main While Schleife
    While 1
    Sleep(100)
    WEnd
    ;GUI END
    Func NewClient($hSocket, $iError) ;Neuer Client
    ;MsgBox(0, "SERVER", "NewClient") MSGBOX für Debug
    Global $hClient = $hSocket ;Eigentlich sinnlos...
    Global $hClientIP = _TCP_Server_ClientIP($hClient) ;IP des Clienten
    Global $hClientName = _TCPIpToName($hClientIP) ;Netzwerkname
    ;Bann Abfrage
    If _ArraySearch($BanList, $hClientIP) <> -1 Then ;Wenn die IP in der Banliste steht dann schicke zum Client:
    _TCP_Send($hClient, "##banned~1") ;##banned~1
    Else ;Wenn nicht dann:
    _TCP_Send($hClient, "##banned~0") ;##banned~0
    EndIf
    ;END
    ;Clienten Abfrage
    If $block = True Then ;Wenn 5 Clienten verbunden sind und ein neuer kommt dann:
    _TCP_Send($hClient, "##block~1") ;##block~1
    EndIf
    ;END
    Select ;Clienten Freie Array Plätze zuweisen
    Case $ClientArray[0] = "" And $state = False And $block = False
    $ClientArray[0] = $hClient & "|" & $hClientName
    Global $state = True
    Case $ClientArray[1] = "" And $state = False And $block = False
    $ClientArray[1] = $hClient & "|" & $hClientName
    Global $state = True
    Case $ClientArray[2] = "" And $state = False And $block = False
    $ClientArray[2] = $hClient & "|" & $hClientName
    Global $state = True
    Case $ClientArray[3] = "" And $state = False And $block = False
    $ClientArray[3] = $hClient & "|" & $hClientName
    Global $state = True
    Case $ClientArray[4] = "" And $state = False And $block = False
    $ClientArray[4] = $hClient & "|" & $hClientName
    Global $state = True
    Global $block = True
    EndSelect
    ;END
    If $state = True Then ;Wenn alles erfolgreich war dann:
    _TCP_Send($hClient, "##accepted~" & $hClient) ;##accepted~($hclient)
    Call("Chat", "Client: " & $hClientName & " has joined!") ;Schreibe in den Chat: "Client: " & $hClientName & " has joined!"
    EndIf
    ;END
    Global $state = False ;Abschluss
    FileDelete("client.txt") ;Dateien löschen
    FileDelete("ban.txt")
    FileDelete("clientnames.txt")
    ;END
    _FileWriteFromArray("clientnames.txt", $NameArray) ;Arrays in Dateien schreiben
    _FileWriteFromArray("client.txt", $ClientArray)
    _FileWriteFromArray("ban.txt", $BanList)
    ;END
    _TCP_Server_Broadcast("##name~" & $hClientIP) ;Nickname Abfrage
    ;END
    EndFunc ;==>NewClient
    Func Disconnect($hSocket, $iError) ;WEnn jemand disconnectet dann:
    $search = _ArraySearch($NameArray, $hSocket) ;Suche in Nickname Array nach dem Socket
    _ArrayDelete($NameArray, $search) ;Lösche den Eintrag
    $search = _ArraySearch($ClientArray, $hSocket) ;Suche in Clienten Liste nach dem Socket
    _ArrayDelete($ClientArray, $search) ;Lösche den Eintrag
    ;END
    FileDelete("client.txt") ;Lösche Dateien
    FileDelete("ban.txt")
    FileDelete("clientnames.txt")
    ;END
    _FileWriteFromArray("clientnames.txt", $NameArray) ;Array neuschreiben
    _FileWriteFromArray("client.txt", $ClientArray)
    _FileWriteFromArray("ban.txt", $BanList)
    ;END
    ToolTip("SERVER:Client disconnected:" & $hSocket) ;Tooltip
    EndFunc ;==>Disconnect
    Func Received($hSocket, $sReceived, $iError) ;Wenn etwas empfangen wurde:
    $split = StringSplit($sReceived, "~") ;Teile auf: vor und nach "~"
    Select
    Case $split[0] = "##useradd"
    If _ArraySearch($NameArray, $split[1]) <> -1 Then ;Wenn der Name schon gefunden wurde
    _TCP_Send($hSocket, "##userblock") ;Sende ##userblock
    Else ;Wenn nicht:
    _ArrayAdd($NameArray, $hSocket & "|" & $split[1]) ;Den Socket und den Namen dem Array hinzufügen
    _TCP_Server_Broadcast("##usersuc~" & $split[1]) ;Allen Clienten das schicken ##usersuc~&$split[1]
    EndIf
    EndSelect
    ;END
    EndFunc ;==>Received
    Func Kick($ClientName) ;Funktion KICK
    _TCP_Server_Broadcast("##kick~" & $ClientName) ;An Alle Clienten: ##kick~$ClientName
    EndFunc ;==>Kick
    Func Chat($hMessage) ;Funktion Chat
    _TCP_Server_Broadcast("##chat~" & $hMessage) ;Sende ##chat~$hMessage
    EndFunc ;==>Chat
    Func Ban($hSocket) ;Bann Funktion
    $hIP = _TCP_Server_ClientIP($hSocket) ;IP herausfinden
    _ArrayAdd($BanList, $hIP) ;Füge dem Array die IP hinzu
    ToolTip("IP:" & $hIP & " banned.") ;ToolTip
    ;Array neu schreiben
    FileDelete("client.txt")
    FileDelete("ban.txt")
    FileDelete("clientnames.txt")
    _FileWriteFromArray("clientnames.txt", $NameArray)
    _FileWriteFromArray("client.txt", $ClientArray)
    _FileWriteFromArray("ban.txt", $BanList)
    EndFunc ;==>Ban
    Func UnBan($hSocket) ;Funktion UnBan
    $search = _ArraySearch($BanList, $hSocket)
    _ArrayDelete($BanList, $search)
    ToolTip("IP:" & $hSocket & " unbanned.") ;ToolTip
    FileDelete("client.txt") ;Array neuschreiben
    FileDelete("ban.txt")
    FileDelete("clientnames.txt")
    _FileWriteFromArray("clientnames.txt", $NameArray)
    _FileWriteFromArray("client.txt", $ClientArray)
    _FileWriteFromArray("ban.txt", $BanList)
    EndFunc ;==>UnBan
    Func _End() ;Ende
    _TCP_Server_Stop()
    FileDelete("client.txt")
    FileDelete("ban.txt")
    FileDelete("clientnames.txt")
    EndFunc ;==>_End ;###GUI
    Func Button1Click()
    $input = GUICtrlRead($Input1)
    Call("Ban", $input)
    EndFunc ;==>Button1Click
    Func Button2Click()
    $input = GUICtrlRead($Input1)
    Call("UnBan", $input)
    EndFunc ;==>Button2Click
    Func Button3Click()
    $input = GUICtrlRead($Input1)
    Call("Chat", $input)
    EndFunc ;==>Button3Click
    Func Form1Close()
    Exit
    EndFunc ;==>Form1Close
    ;###GUI END

    [/autoit]

    Client:

    Spoiler anzeigen
    [autoit]

    #include <TCP.au3>
    Global $ip = TCPNameToIP("jonas-laptop") ;IP
    Global Const $port = 3333 ;Port
    Global $accepted = False ;Angenommen?
    Global $blocked = False ;Blocked?
    Global $nick = InputBox("Bitte Nicknamen eingeben...", "") ;Nickname?
    Global $ClientName = $nick ;ClientNAme
    $socket = _TCP_Client_Create($ip, $port) ;Client erstellen
    _TCP_RegisterEvent($socket, $TCP_RECEIVE, "Receive")
    _TCP_RegisterEvent($socket, $TCP_DISCONNECT, "Disconnect")
    _TCP_RegisterEvent($socket, $TCP_CONNECT, "Connected")
    While 1 ;Mainwhile
    Sleep(100)
    WEnd
    Func Receive($hSocket, $sReceived, $iError)
    $split = StringSplit( $sReceived , "~" , 2)
    Select
    Case $split[0] = "##accepted"
    ToolTip("CLIENT:Connected")
    Global $accepted = True
    Global $blocked = False
    Case $split[0] = "##kick"
    If $split[1] = $ClientName Then
    MsgBox(0, "CLIENT", "KICKED")
    Exit
    Else
    MsgBox(0 , "CLIENT", "USER: "&$split[1]&" was kicked" )
    EndIf
    Case $split[0] = "##block"
    MsgBox(0, "CLIENT", "BLOCKED")
    Global $accepted = False
    Global $blocked = True
    Case $split[0] = "##chat"
    MsgBox(0, "Chat", $split[1])
    Case $split[0] = "##banned"
    If $split[1] = 1 Then
    MsgBox(0, "Banned", "You are banned from this Server")
    Exit
    EndIf
    Case $split[0] = "##usersuc"
    If $split[1] = $ClientName Then
    MsgBox( 0 , "CLIENT" , "Name accepted" )
    EndIf
    Case $split[0] = "##userblock"
    MsgBox( 0 ,"", "Name already online" )
    Exit
    Case $split[0] = "##name"
    If $split[1] = @IPAddress1 Then
    Sleep(100)
    _TCP_Send($socket,"##useradd~"&$ClientName )
    EndIf
    EndSelect
    EndFunc ;==>Receive
    Func Disconnect($hSocket, $iError)
    MsgBox(0, "CLIENT", "Disconnected.")
    Exit
    EndFunc ;==>Disconnect
    Func _Connected()

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

    EndFunc

    [/autoit]

    Schon mal Vielen Dank im Vorraus

    Liebe Grüße
    Jonas

    Dateien

    Server.au3 6,89 kB – 383 Downloads Client.au3 1,8 kB – 364 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™