net.exe bzw. Net Send Starten

  • Hi ich habe leider über die Sufu nichts gefunden und wollte deshalb mal fragen ob es eine Möglichkeit gibt den Nachrichten dienst zu Aktivieren (mit Autoit).

    MFG Cornfl4kes

  • Du kanst dir doch einfach was Programieren, einen Server und einen Client mit MSGBOX, und schon ist es fertig!

    tja dieses "einfach" möchte ich auch sagen können...
    ich raff des net^^

    Padmak

  • Also ich hab vor 4 tagen oder so damit angefangen, es geht eig. schon, also muss das nur noch ein Bischen verfeinern, aber nachrichten schiken funktioniert! Wenn du willst kann ich dir vieleicht helfen ;)

    mfg. Jam00

  • ich hatte mir ma eins geschrieben bei dem einfach alle in eine .txt datei schreiben und es bei allen ausgelesen wird, allerdings muss dann auch jeder zugriff auf diese dabei haben und das habe ich leider nicht bei allen Rechnern im Netzwerk hinbekommen, deswegen wollte ich einfach bei den Computern den Nachrichtendienst Aktivieren, da darüber auch der winchat läuft. Oder irre ich mich da?

  • Das mit dem Text hab ich auch gemacht also ich das mit dem Server noch nich konnte ;) Aber so schwierig sit es mit dem Server garnicht! Die Idee mit dem NAchrichtendienst hatte ich auh :D Aber ich hab das nocht hinbekommen! Und dann hab ich eben mit dem Server Probiert! Is garnicht so schwer musst es nur Probieren!

    mfg. Jam00

  • Hier ist was fertiges, und was ganz leichtes für den anfang ;)

    Client
    [autoit]

    #include <INet.au3>
    $IP = InputBox("INC", "Die IP des Servers", _GetIP())
    $Port = 31758
    $ConnectedSocket = TCPConnect($IP, $Port)
    If $ConnectedSocket = -1 Then
    MsgBox(16, "Error", "Es ist bei dem Verbindungsversuch ein Fehler aufgetreten, vermutlich ist kein Server gestartet!")
    Exit
    EndIf
    HotKeySet ("^s","_Senden")
    While 1
    $Empfang = TCPRecv($ConnectedSocket, 9999)
    If $Empfang <> "" Then
    MsgBox(0, "Nachricht", $Empfang)
    EndIf
    WEnd
    Func _Senden()
    $Nachricht = InputBox("Nachricht senden", "Schreibe deine Nachricht")
    If $Nachricht <> "" Then
    TCPSend($ConnectedSocket, $Nachricht)
    EndIf
    EndFunc

    [/autoit]
    Server
    [autoit]

    #include <INet.au3>
    $IP = _GetIP()
    Dim $ConnectedSocket[9999999]
    $zahl = -1
    $zahl1 = $zahl + 1
    $MainSocket = TCPListen($IP, 31758)
    If $MainSocket = -1 Then Exit
    While 1
    $ConnectedSocket[$zahl1] = TCPAccept($MainSocket)
    If $ConnectedSocket[$zahl1] >= 0 Then
    $zahl = $zahl + 1
    $zahl1 = $zahl + 1
    ;~ TCPSend ($ConnectedSocket[$zahl],"zahl" & "|" & $zahl)
    EndIf
    If $zahl >= 0 Then
    For $1 = 0 To $zahl
    $Empfang = TCPRecv($ConnectedSocket[$1], 9999)
    If $Empfang <> "" Then
    ;~ $sEmpfang = StringSplit($Empfang, "<>")
    For $2 = 0 To $zahl
    ;~ If $sEmpfang[1] <> $2 Then
    TCPSend($ConnectedSocket[$2], $Empfang)
    ;~ EndIf
    Next
    EndIf
    Next
    EndIf
    WEnd

    [/autoit]

    mfg. Jam00

  • wenn der dienst nicht deaktiviert ist, lässt sich der nachrichtendienst mit

    Code
    net start Messenger

    starten. Das funktioniert nicht, wenn er deaktiviert wurde.

    Das Spam Risiko des Nachrichtendienstes sollte keine Thema mehr sein, wenn man eine funktionierende Firewall hat :D

    Schöner ist natürlich eine Messenger in Autoit.. Wem dass zu viel arbeit ist, ich hatte auch den "Fomine Net Send GUI" eine Zeitlang für sowas verwendet.

    ---
    In "Independence Day" konnten die Windows-Erdcomputer problemlos mit denen der Außerirdischen kommunizieren. Was sagt uns das über unseren lieben Bill Gates? :D
    ---

  • Ich habe jetzt so ungefähr verstanden, wie ich etwas an den TCP Server schicke, aber wie können nun andere diese geschickte Nachricht sehen bzw. wie kann ich überprüfen ob sie angekommen ist?

    MFG

  • Die anderen müssen den Server starten damit sie die nachrichten sehen können, und wenn du willst das eine Rückmeldung kommt, wenn sie auf ok klicken muss du eine Rücksendung per TCPSend einbauen!

    mfg. Jam00

  • Bei mir ist wenn ich das Serverscript starte der Rückgabewert von $MainSocket immer -1 woran kann das liegen?

  • Bei mir ist wenn ich das Serverscript starte der Rückgabewert von $MainSocket immer -1 woran kann das liegen?

    bei mir auch ;(
    und das obwohl jam mir hilft...^^
    ich hab auch keinen plan

    Padmak

  • ja, das ist irgendwie komisch, bei mir geht er einbandfrei!

    Startet einfach mal das hier und sagt mir ob es da auch so ist!

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #include <GuiEdit.au3>
    Global $sNamen
    $IP = "http://www.incchat.no-ip.org"
    MsgBox (0,"",$IP)
    $zahl = -1
    $zahl1 = $zahl + 1
    $File = @ScriptDir & "\Server.ini"
    FileDelete($File)
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;~ Opt("TrayMenuMode",1)

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Serververlauf", 238, 201, 303, 219)
    $Edit1 = GUICtrlCreateEdit("", 3, 3, 232, 196, $ES_READONLY+$ES_AUTOHSCROLL)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    #EndRegion ### END Koda GUI section ###
    $Fenster = False
    Dim $ConnectedSocket[999999]
    Dim $Namen[999999]
    ; Startet den TCP Service
    ;==============================================
    TCPStartup()

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

    ; Erstellt einen lauschenden "SOCKET"
    ;==============================================
    $MainSocket = TCPListen($IP, 31758)
    If $MainSocket = -1 Then Exit
    HotKeySet("!{n}", "_Fenster")
    ; Warten auf eine Client-Verbindung
    ;--------------------

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE)
    EndSwitch
    $ConnectedSocket[$zahl1] = TCPAccept($MainSocket)
    If $ConnectedSocket[$zahl1] >= 0 Then
    $zahl = $zahl + 1
    $zahl1 = $zahl + 1
    ;~ MsgBox(0, "", "Mein Server - Client verbunden", 1)
    $Erhalten = TCPRecv($ConnectedSocket[$zahl], 2048)
    $sErhalten = StringSplit($Erhalten, ",")
    If $sErhalten[1] = "Name" Then
    $Namen[$zahl] = $sErhalten[2]
    ElseIf $sErhalten[1] = "NamenSenden" Then
    $zahl = $zahl - 1
    For $E = 0 To $sErhalten[2]
    $E1 = $E + 3
    $Namen[$E] = $sErhalten[$E1]
    Next
    $Status = False
    For $F = 0 To $sErhalten[2]
    $F1 = $sErhalten[2] + 1
    $F2 = $F - 1
    If $F = $sErhalten[$F1] Then $Status = True
    If $Status = True Then
    $ConnectedSocket[$F] = $ConnectedSocket[$F2]
    EndIf
    Next
    EndIf
    $sNamen = ""
    For $B = 0 To $zahl
    $sNamen = $sNamen & $Namen[$B] & "|"
    Next
    For $C = 0 To $zahl
    TCPSend($ConnectedSocket[$C], "Namen|" & $zahl & "|" & $sNamen)
    Next
    EndIf
    For $A = 0 To $zahl
    $Erhalten = TCPRecv($ConnectedSocket[$A], 9999)
    $sErhalten = StringSplit($Erhalten, ",")
    If $Erhalten <> "" Then
    $Edit1Read = GUICtrlRead($Edit1)
    GUICtrlSetData($Edit1, $Edit1Read & @CRLF & $Erhalten)
    $Lines = _GUICtrlEdit_GetLineCount($Edit1)
    _GUICtrlEdit_LineScroll($Edit1, 0, $Lines)
    For $D = 0 To $zahl
    If $sErhalten[1] = "Name" Then
    $Namen[$zahl] = $sErhalten[2]
    ElseIf $sErhalten[1] = "Nachricht" Then
    ;~ MsgBox (0,"",$Namen[$D] & "," & $sErhalten[3])
    If $Namen[$D] = $sErhalten[3] Then
    TCPSend($ConnectedSocket[$D], $Erhalten)
    EndIf
    EndIf
    Next
    EndIf
    Next
    WEnd
    Func _Fenster()
    If $Fenster = True Then
    GUISetState(@SW_HIDE)
    ElseIf $Fenster = False Then
    GUISetState(@SW_SHOW)
    EndIf
    EndFunc ;==>_Fenster

    [/autoit]

    mfg. Jam00

  • Oh, tschuldigung :huh: Das war eine Alte verson hier Probier die mal:

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #include <GuiEdit.au3>
    Global $sNamen
    $IP = _GetIP()
    MsgBox (0,"","Die Server-IP:" & $IP)
    $zahl = -1
    $zahl1 = $zahl + 1
    $File = @ScriptDir & "\Server.ini"
    FileDelete($File)
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    ;~ Opt("TrayMenuMode",1)

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

    #Region ### START Koda GUI section ### Form=
    $Form2 = GUICreate("Serververlauf", 238, 201, 303, 219)
    $Edit1 = GUICtrlCreateEdit("", 3, 3, 232, 196, $ES_READONLY+$ES_AUTOHSCROLL)
    GUICtrlSetBkColor(-1, 0xFFFFFF)
    #EndRegion ### END Koda GUI section ###
    $Fenster = False
    Dim $ConnectedSocket[999999]
    Dim $Namen[999999]
    ; Startet den TCP Service
    ;==============================================
    TCPStartup()

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

    ; Erstellt einen lauschenden "SOCKET"
    ;==============================================
    $MainSocket = TCPListen($IP, 31758)
    If $MainSocket = -1 Then Exit
    HotKeySet("!{n}", "_Fenster")
    ; Warten auf eine Client-Verbindung
    ;--------------------

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    GUISetState(@SW_HIDE)
    EndSwitch
    $ConnectedSocket[$zahl1] = TCPAccept($MainSocket)
    If $ConnectedSocket[$zahl1] >= 0 Then
    $zahl = $zahl + 1
    $zahl1 = $zahl + 1
    ;~ MsgBox(0, "", "Mein Server - Client verbunden", 1)
    $Erhalten = TCPRecv($ConnectedSocket[$zahl], 2048)
    $sErhalten = StringSplit($Erhalten, ",")
    If $sErhalten[1] = "Name" Then
    $Namen[$zahl] = $sErhalten[2]
    ElseIf $sErhalten[1] = "NamenSenden" Then
    $zahl = $zahl - 1
    For $E = 0 To $sErhalten[2]
    $E1 = $E + 3
    $Namen[$E] = $sErhalten[$E1]
    Next
    $Status = False
    For $F = 0 To $sErhalten[2]
    $F1 = $sErhalten[2] + 1
    $F2 = $F - 1
    If $F = $sErhalten[$F1] Then $Status = True
    If $Status = True Then
    $ConnectedSocket[$F] = $ConnectedSocket[$F2]
    EndIf
    Next
    EndIf
    $sNamen = ""
    For $B = 0 To $zahl
    $sNamen = $sNamen & $Namen[$B] & "|"
    Next
    For $C = 0 To $zahl
    TCPSend($ConnectedSocket[$C], "Namen|" & $zahl & "|" & $sNamen)
    Next
    EndIf
    For $A = 0 To $zahl
    $Erhalten = TCPRecv($ConnectedSocket[$A], 9999)
    $sErhalten = StringSplit($Erhalten, ",")
    If $Erhalten <> "" Then
    $Edit1Read = GUICtrlRead($Edit1)
    GUICtrlSetData($Edit1, $Edit1Read & @CRLF & $Erhalten)
    $Lines = _GUICtrlEdit_GetLineCount($Edit1)
    _GUICtrlEdit_LineScroll($Edit1, 0, $Lines)
    For $D = 0 To $zahl
    If $sErhalten[1] = "Name" Then
    $Namen[$zahl] = $sErhalten[2]
    ElseIf $sErhalten[1] = "Nachricht" Then
    ;~ MsgBox (0,"",$Namen[$D] & "," & $sErhalten[3])
    If $Namen[$D] = $sErhalten[3] Then
    TCPSend($ConnectedSocket[$D], $Erhalten)
    EndIf
    EndIf
    Next
    EndIf
    Next
    WEnd
    Func _Fenster()
    If $Fenster = True Then
    GUISetState(@SW_HIDE)
    ElseIf $Fenster = False Then
    GUISetState(@SW_SHOW)
    EndIf
    EndFunc ;==>_Fenster

    [/autoit]

    mfg. Jam00

  • Danke aufjedenfall schonmal für deine Hilfe nur leider bekome ich für den $MainSocket immer noch -1.

    Ports muss man nicht für diese Funktion freischalten oder?

    MFG

  • Ja, eigentlich, kommt da so ein Fenster von der FireWall, die dann frag ob das Geblockt werden soll! Kanst ja mal gucken welche ports alle freigegeben sind! Auch bei dem Neuen Server?
    Und guckt mal ob die IP stimmt!

    mfg. Jam00