Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Komunikator dla początkujących


tapne

Rekomendowane odpowiedzi

Opublikowano

Witam.

Dziś mam do zaprezentowania dla początkujących userów autoit'a prosty komuniaktorek zaspisujący wiadomości do pliku.

KOD


#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiToolbar.au3>
#include <ToolbarConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=C:\Documents and Settings\Mr. Emsi\Pulpit\Niezbednik\images\Form1.kxf
$Form1 = GUICreate("Komunikator by Mr. Emsi", 354, 646, 192, 124)
$Edit2 = GUICtrlCreateEdit("", 0, 504, 353, 89, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN,$WS_VSCROLL),$gui_disable)
$Edit1 = GUICtrlCreateEdit("", 0, 32, 353, 465, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL,$ES_WANTRETURN))
$Input1 = GUICtrlCreateInput("IP", 0, 3, 121, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
$input2 = GUICtrlCreateInput("PORT", 128, 3, 81, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_CENTER))
$Button1 = GUICtrlCreateButton("Łącz", 270, 3, 70, 25)
$button3 = GUICtrlCreateButton("Zapisz", 215, 3, 50, 25)
$Button2 = GUICtrlCreateButton("Wyslij", 16, 600, 313, 41)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
If FileExists("settings.ini")=1 Then
$kom1 = IniRead("settings.ini", "Kom", "ip", "")
GUICtrlSetData($input1, $kom1)
$kom2 = IniRead("settings.ini", "Kom", "port", "")
GUICtrlSetData($input2, $kom2)
EndIf
AdlibRegister("wyswietlacz", 1000)

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $button3
$port = GUICtrlRead($input2)
$ip = GUICtrlRead($Input1)
IniWrite("settings.ini", "Kom", "ip", $ip)
IniWrite("settings.ini", "Kom", "port", $port)
Case $Button1
$ipl = GUICtrlRead($input1)
$portl = GUICtrlRead($input2)
TCPStartup() ;start usługi TCP
$mainsocket = TCPListen("", $portl)
AdlibRegister("serwer", 1000)
Case $Button2
$port1 = GUICtrlRead($input2)
$ip1 = GUICtrlRead($Input1)
$wiadomosc = GUICtrlRead($Edit2)
FileWrite("wyslane.txt", $wiadomosc&@CRLF)
FileWrite("zapis.txt", $wiadomosc&@CRLF)
GUICtrlSetData($Edit2, "")
Sleep(2000)
klient()

EndSwitch
WEnd
Func serwer()
$acceptedSocket = TCPAccept($mainsocket)
If $acceptedSocket <> -1 Then
$receivedData = TCPRecv($acceptedSocket, 1024)
FileWrite("przychodzace.txt", $receivedData&@CRLF)
FileWrite("zapis.txt", $receivedData&@CRLF)
EndIf
EndFunc

Func klient()
TCPStartup()
$socket = TCPConnect($ip1, $port1)
If $socket = -1 Then
MsgBox(16, "Błąd:", "Połączenie z serwerem nie można ustalić!")
EndIf
$wys = FileRead("zapis.txt")
$sendedBytes = TCPSend($socket, $wys)
If $sendedBytes = 0 Then
MsgBox(16, "Error", "Pakiet nie może być wysłany.")
EndIf
TCPCloseSocket($socket)
TCPShutdown()
EndFunc
Func wyswietlacz()
If FileExists("zapis.txt")=1 Then
$wys = FileRead("zapis.txt")
GUICtrlSetData($Edit1, $wys)
EndIf
EndFunc


kod jest dość łatwy, komunikator testowałem i mi działał : )

jak zwykle zezwalam na edytowanie kodu oraz po edycji przypisanie sobie autorstwa ( niech się uczą

xD

(dodam tak od siebie że można zrobić np. kto przysłał wiadomość oraz godzinę)

taki mały druczek do zaawansowanych, dajcie szanse innym na naukę poprzez nieprzydatne oraz łatwe kody do nauki podstawowych komend różnorodnych innych rzeczy

Opublikowano

po co ci do tego poradnik ? xD to jest proste i logiczne, ale jak coś to pomogę na PW ; )

Opublikowano

FileWrite("przychodzace.txt", $receivedData*@CRLF) - czy tu nie powinno być & zamiast * ?

Pomysł fajny, ładnie wykonany.

Law of Revelation: The hidden flaw never remains hidden.

Opublikowano

Sprawdziłem jako "localhost" i działa.

Bardzo przydatny kod, nie tylko i wyłącznie do komunikatorów.

Można to wykorzystać do wielu rzeczy, np łączenie z botem tylko wtedy gdy jakiś internet

działa czy coś w tym stylu.

 

Brawo. Na 100% dzisiaj do czegoś wykorzystam. [dzisiaj - 10-20 ] xD

Opublikowano

chwila, sprawdzę i dam edita : )

 

głupie bbcode, już kod poprawiony : )

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...