Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Ricevere messaggi IRC e autorispondere
Forum - Visual Basic 6 - Ricevere messaggi IRC e autorispondere

Avatar
Pollon24 (Normal User)
Newbie


Messaggi: 9
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 8:11
Domenica, 08/02/2009
Ciao a tutti.
Starei facendo un bot in VB che si connette a IRC e joina un canale. Ora avrei la necessità che lui risponda con un notice a qualsiasi nick che scriva un dato messaggio. Ad esempio il nick risponde "Ciao" e il bot risponde "Benvenuto!". Come dovrei fare? Ecco ciò che ho già scritto:

Private Sub Form_Load()
Winsock1.Close
Winsock1.Connect "irc.oceanirc.net", 6667
End Sub

Private Sub Winsock1_Connect()
    With Winsock1
        .SendData "NICK mondoemule" & vbCrLf
        .SendData "USER Lx01" & vbCrLf
        .SendData "JOIN #oce@n" & vbCrLf
        End With
End Sub

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
    On Error Resume Next
    Dim sRecv As String

    Winsock1.GetData sRecv ' Put the data recieved into the string
    ' Play ping pong with the server
    If InStr(sRecv, "PING") = 1 Then
        Winsock1.SendData "PONG " & Split(sRecv, " ")(1)
    End If
End Sub

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 9:36
Domenica, 08/02/2009
quando un utente ti invia un messaggio in dataarrival penso ti arrivi il messaggio...ma può darsi ke arrivi anke con:
nomeuser: ciao
quindi prima dimmi cosa viene ricevuto effettua dei controlli con ad esempio delle msgbox sulla varianile sRecv quando un utente ti invia dei messaggi...

PM Quote
Avatar
Pollon24 (Normal User)
Newbie


Messaggi: 9
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 10:15
Domenica, 08/02/2009
Non avevo provato la conenssione a irc. Mi dava un errore. Ho quindi modificato il sorgente in

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Form_Load()
  2. Winsock1.Close
  3. Winsock1.Connect "irc.oceanirc.net", 6667
  4. End Sub
  5.  
  6. Private Sub Winsock1_Connect()
  7.     With Winsock1
  8.         .SendData "NICK yili" & vbCrLf
  9.         .SendData "USER mondoemule" & " " & GetPublicIP & " " & "irc.oceanirc.net" & " " & "mondoemule" & vbCrLf
  10.         .SendData "JOIN #oce@n" & vbCrLf
  11.         End With
  12. End Sub
  13.  
  14. Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  15.     On Error Resume Next
  16.     Dim sRecv As String
  17.     Winsock1.GetData sRecv ' Put the data recieved into the string
  18.     ' Play ping pong with the server
  19.     MsgBox sRecv
  20.     If InStr(sRecv, "PING") = 1 Then
  21.         Winsock1.SendData "PONG " & Split(sRecv, " ")(1)
  22.     End If
  23. End Sub


e aggiungendo dei moduli per ricavare l'ip pubblico.
Quando riceve un messaggio, esce così:



Pollon24 ha allegato un file: 2.JPG (10442 bytes)
Clicca qui per guardare l'immagine

Ultima modifica effettuata da Pollon24 il 08/02/2009 alle 10:24
PM Quote
Avatar
Pollon24 (Normal User)
Newbie


Messaggi: 9
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 14:54
Domenica, 08/02/2009
Qualcuno mi aiuta?

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 21:30
Domenica, 08/02/2009
1) non fare post inutili come quello di prima con i "..."

2) Non rikiamarmi con il triangolina perchè è per le urgenze...

3) il quadrato e i due zeri sono sempre fissi? se si con una instr li potresti cercare e poi con la funzione right ti prendi dal valore restituito fino alla fine della stringa....

PM Quote
Avatar
Pollon24 (Normal User)
Newbie


Messaggi: 9
Iscritto: 08/02/2009

Segnala al moderatore
Postato alle 21:33
Domenica, 08/02/2009
Scusa non avevo capito a che serviva il triangolino finchè non l'ho spinto :)
non ho capito il consiglio che mi hai dato...

PM Quote
Avatar
P4p3r0g4 (Member)
Guru


Messaggi: 1319
Iscritto: 29/12/2006

Segnala al moderatore
Postato alle 22:36
Domenica, 08/02/2009
metti dei doevents dopo ogni senddata.
non conosco il protocollo ma molti vogliono anche l'accapo.
prova a inviare insieme a(lla fine de)i messaggi il vbcrlf.

PM Quote