Apprendre le Hack Index du Forum
Apprendre le Hack

 
Apprendre le Hack Index du ForumFAQRechercherS’enregistrerConnexion

:: [tuto]AlienIRC client IRC en visual basic :: ::

 
Poster un nouveau sujet   Répondre au sujet    Apprendre le Hack Index du Forum -> A trié
Sujet précédent :: Sujet suivant  
Auteur Message
Inf3rnus
Administrateur

Hors ligne

Inscrit le: 22 Aoû 2011
Messages: 196

MessagePosté le: Dim 11 Déc - 17:17 (2011)    Sujet du message: [tuto]AlienIRC client IRC en visual basic :: Répondre en citant

Un client IRC en Visual Basic est quelque chose de pas simple à créer, de plus il sera moins léger qu'un client codé dans un autre langage.

Mais pour le challenge voici comment coder un client IRC en Visual Basic.

Pour commencer créer un projet Windows Form.

Ajoutez:
Citation:
Un menustrip
Un timer
Un BackgroundWorker
Un ToolStrip
Un NotifyIcon
Un ContextMenuStrip


Donner comme nom au Timer "NoFlood"



Dans les propriété de Form1 mettez "IsMdicontainer" sur True
Dans "MainMenuStrip" mettez MenuStrip1
et "StartPosition" sur CenterScreen

Double cliquez sur Form1 et ajouter en haut du code ces import.
Import à ajouter:





  1. Imports System.IO  
  2. Imports System.Net.Sockets  
  3. Imports System.Text  




ensuite ajoutez ce code


Code source Form1



  1. Public Class Form1  
  2.     Public police As String = "Microsoft Sans Serif"  
  3.     Public tpolice As String = "1"  
  4.     Public nn As String = "AlienIRCnr"  
  5.     Public taille As Integer = 3  
  6.     Public phetr(2, 25)  
  7.     Public nb As Integer  
  8.     Public nick As String = ""  
  9.     Dim data As String = ""  
  10.     Public codes As String = ""  
  11.     Dim topic, etopic As String  
  12.     Dim couper() As String  
  13.     Dim qui As String = ""  
  14.     Dim lPV As Boolean = False  
  15.     Dim personne As String = ""  
  16.     Public soleil As String  
  17.     Dim emplacement As Integer  
  18.     Dim message As String = ""  
  19.     Dim estsalon As Boolean = False  
  20.     Public str As String  
  21.     Public qr() As String  
  22.     Dim verifquizz As String  
  23.     Public règlement As String  
  24.     Dim buf(1024) As Byte  
  25.     Public wsocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)  
  26.     Public WithEvents wwwsocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.IP)  
  27.     Dim bytes(1024) As Byte  
  28.     Dim bytesRec As Integer = 0  
  29.     Dim oqp As Boolean = False  
  30.     Dim temp As String = ""  
  31.     Public myASV As String  
  32.   
  33.     Private Sub Form1_HandleDestroyed(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.HandleDestroyed  
  34.   
  35.     End Sub  
  36.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load  
  37.         Me.WindowState = FormWindowState.Maximized  
  38.         If File.Exists(My.Computer.FileSystem.CurrentDirectory & "\Data\robot.ini") Then  
  39.             FileEdit.Button1_Click(Me, Nothing)  
  40.         End If  
  41.   
  42.         str = File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\Data\quizz.txt")  
  43.         qr = Split(str, vbCrLf)  
  44.         Randomize()  
  45.         If File.Exists(My.Computer.FileSystem.CurrentDirectory & "\Data\arcenciel.ini") Then  
  46.             Dim s() As String = Split(File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\Data\arcenciel.ini"), vbCrLf)  
  47.             Arcenciel.noir.Checked = s(0)  
  48.             Arcenciel.gris.Checked = s(1)  
  49.             Arcenciel.grisf.Checked = s(2)  
  50.             Arcenciel.violet.Checked = s(3)  
  51.             Arcenciel.rose.Checked = s(4)  
  52.             Arcenciel.bleuf.Checked = s(5)  
  53.             Arcenciel.bleuj.Checked = s(6)  
  54.             Arcenciel.blanc.Checked = s(7)  
  55.             Arcenciel.bleutf.Checked = s(8)  
  56.             Arcenciel.bleut.Checked = s(9)  
  57.             Arcenciel.vertf.Checked = s(10)  
  58.             Arcenciel.vertc.Checked = s(11)  
  59.             Arcenciel.marron.Checked = s(12)  
  60.             Arcenciel.jaune.Checked = s(13)  
  61.             Arcenciel.rougef.Checked = s(14)  
  62.             Arcenciel.rougec.Checked = s(15)  
  63.             Arcenciel.gras.Checked = s(16)  
  64.             Arcenciel.OK.Checked = s(17)  
  65.         End If  
  66.         If File.Exists(My.Computer.FileSystem.CurrentDirectory & "\Data\config.ini") Then  
  67.   
  68.             File.SetAttributes(My.Computer.FileSystem.CurrentDirectory & "\Data\config.ini", FileAttributes.Normal)  
  69.             Dim s As String = File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\Data\config.ini")  
  70.   
  71.             If s <> "" And s.Length = 14 Then  
  72.                 If s(1) = s(13) Then  
  73.                     If Val(s(7)) * Val(s(8)) = Val(s.Substring(10, 2)) Then  
  74.                         File.SetAttributes(My.Computer.FileSystem.CurrentDirectory & "\Data\config.ini", FileAttributes.Hidden)  
  75.                         nn = "AlienIRC"  
  76.                         Exit Sub  
  77.                     End If  
  78.                 End If  
  79.             End If  
  80.   
  81.         Else  
  82.             Activation.ShowDialog()  
  83.         End If  
  84.   
  85.     End Sub  
  86.     Function heure() As String  
  87.         Dim r As String = ""  
  88.         If Now.Hour.ToString.Length = 1 Then  
  89.             r &= "0" & Now.Hour  
  90.         Else  
  91.             r &= Now.Hour  
  92.         End If  
  93.         r &= ":"  
  94.         If Now.Minute.ToString.Length = 1 Then  
  95.             r &= "0" & Now.Minute  
  96.         Else  
  97.             r &= Now.Minute  
  98.         End If  
  99.         r &= ":"  
  100.         If Now.Second.ToString.Length = 1 Then  
  101.             r &= "0" & Now.Second  
  102.         Else  
  103.             r &= Now.Second  
  104.         End If  
  105.         Return r  
  106.     End Function  
  107.     Function vsalon(ByVal s As String)  
  108.         If s = "" Then Return "Aucun salon à afficher"  
  109.         Dim l As String() = Split(s, " ")  
  110.         Dim r As String = ""  
  111.         For i = 0 To l.Length - 1  
  112.             r &= l(i) & ","  
  113.         Next  
  114.         Return r.Substring(0, s.Length - 1)  
  115.     End Function  
  116.     Public Function Magie(ByVal fut As String) As String  
  117.         fut = Replace(fut, ">", "&gt;")  
  118.         fut = Replace(fut, "<", "&lt;")  
  119.         fut = Replace(fut, "Sad", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_sad.gif'>") '  
  120.         fut = Replace(fut, "Wink", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_wink.gif'>") '  
  121.         fut = Replace(fut, "Smile", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_smile.gif'>") '  
  122.         fut = Replace(fut, "(a)", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\ange.png'>") '  
  123.         fut = Replace(fut, "8)", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_cool.gif'>")  
  124.         fut = Replace(fut, "Confused", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\blink.gif'>") '  
  125.         fut = Replace(fut, ":'(", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_cry.gif'>") '  
  126.         fut = Replace(fut, ":sucre:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_sucreblanc.gif'>") '  
  127.         fut = Replace(fut, ":love:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_love.gif'>") '  
  128.         fut = Replace(fut, ":café:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_tasse.gif'>") '  
  129.         fut = Replace(fut, ":mail:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_mail.gif'>") '  
  130.         fut = Replace(fut, ":@", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\angry.gif'>") '  
  131.         fut = Replace(fut, "(i)", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_idea.gif'>") '  
  132.         fut = Replace(fut, ":mage:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\magicien.png'>") '  
  133.         fut = Replace(fut, "Evil or Very Mad", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\diable.png'>") '  
  134.         fut = Replace(fut, ":p", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_razz.gif'>") '  
  135.         fut = Replace(fut, ":-°", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\siffle.png'>") '  
  136.         fut = Replace(fut, "Very Happy", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\heureux.png'>") '  
  137.         fut = Replace(fut, ":_baleine_:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\baleine.gif'>") '  
  138.         fut = Replace(fut, ":X:", "<img src='" & My.Computer.FileSystem.CurrentDirectory & "\Smileys\icon_fight.gif'>") '  
  139.         If fut.Contains(Chr(3)) Then  
  140.             fut = Arcenciel.Tohtml(fut)  
  141.         End If  
  142.         Return "" & fut & ""  
  143.     End Function  
  144.   
  145.     Public q As Boolean  
  146.   
  147.     Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing  
  148.         On Error Resume Next  
  149.         e.Cancel = True  
  150.         Me.Visible = False  
  151.         q = True  
  152.   
  153.   
  154.     End Sub  







Ensuite dans Menustrip1 Mettez ce code après avoir créer les menus.



Code MenuStrip1



  1. Private Sub JoindreUnSalonToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles JoindreUnSalonToolStripMenuItem.Click  
  2.         Dim ib As String = InputBox("Entrez le ou les salons à rejoindre, avec # devant et séparés par une virgule (ex : #AlienIRC,#Aide ) : ", "AlienIRC", "#")  
  3.         If ib <> "" Then  
  4.             send("JOIN " & ib & vbCr)  
  5.         End If  
  6.     End Sub  
  7.     Private Sub ListeDesSmileysToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListeDesSmileysToolStripMenuItem.Click  
  8.         Smileys.Show()  
  9.     End Sub  
  10.     Private Sub ParlerEnPrivéAvecUnUtilisateurToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ParlerEnPrivéAvecUnUtilisateurToolStripMenuItem.Click  
  11.         Dim ib As String = InputBox("Entrez le pseudonyme de la personne avec laquelle vous voulez chatter : ", "AlienIRC")  
  12.         If ib <> "" Then  
  13.             For Each ff In Me.MdiChildren  
  14.                 If ff.Name = ib Then  
  15.                     lPV = True  
  16.                     ff.Focus()  
  17.                     Exit Sub  
  18.                 End If  
  19.             Next  
  20.             Dim NewMDIChild As New Salons  
  21.             NewMDIChild.MdiParent = Me  
  22.             With NewMDIChild  
  23.                 .Name = ib  
  24.                 .Text = ib ''''  
  25.                 .ListBox1.Visible = False  
  26.                 .WebBrowser1.Size = New Point(729, 401)  
  27.                 .TextBox1.MaxLength = 436  
  28.             End With  
  29.             NewMDIChild.WebBrowser1.DocumentText = "<html>< head >"  
  30.             NewMDIChild.WebBrowser1.Document.Write("<font size='" & tpolice & "' face='" & police & "'>
    ")  
  31.             NewMDIChild.Show()  
  32.             ToolStripLabel1.Text &= " " & ib & " "  
  33.             Navigo.ListBox1.Items.Add(ib)  
  34.         End If  
  35.     End Sub  
  36.     Private Sub ModeRobotEtSonsToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ModeRobotEtSonsToolStripMenuItem.Click  
  37.         Options.ShowDialog()  
  38.     End Sub  
  39.     Private Sub NoFlood_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NoFlood.Tick  
  40.         Dim ff As Salons  
  41.         For Each ff In Me.MdiChildren  
  42.             ff.Button1.Enabled = True  
  43.         Next  
  44.         NoFlood.Enabled = False  
  45.     End Sub  
  46.     Private Sub AfficherLeRèglementDuServeurToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AfficherLeRèglementDuServeurToolStripMenuItem.Click  
  47.         Rules.Show()  
  48.     End Sub  
  49.     Private Sub ChangerDePseudonymeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ChangerDePseudonymeToolStripMenuItem.Click  
  50.         Dim ib As String = InputBox("Entrez votre nouveau pseudonyme :")  
  51.         If ib <> "" Then  
  52.             send("NICK " & ib & vbCr)  
  53.         End If  
  54.     End Sub  







Puis double cliquez sur BackgroundWorker1 et mettez ce code.


Code BackGroundWorker1



  1. Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork  
  2. ecoute: If BackgroundWorker1.CancellationPending Then Exit Sub  
  3.         If wsocket.Connected Then  
  4.             Try  
  5.                 bytesRec = wsocket.Receive(bytes)  
  6.             Catch ex As Exception  
  7.                 Exit Sub  
  8.             End Try  
  9.             If bytesRec > 0 Then  
  10.                 oqp = True  
  11.                 BackgroundWorker1.ReportProgress(99)  
  12. oqqp:           If oqp Then GoTo oqqp  
  13.             End If  
  14.         End If  
  15.         GoTo ecoute  
  16.     End Sub  
  17.     Private Sub BackgroundWorker1_ProgressChanged(ByVal sender As Object, ByVal e As System.ComponentModel.ProgressChangedEventArgs) Handles BackgroundWorker1.ProgressChanged  
  18.         Dim data As String = System.Text.Encoding.Default.GetString(bytes, 0, bytesRec)  
  19.         For i = 0 To Len(data) - 1  
  20.             If data(i) = Chr(13) Then  
  21.                 Reception(temp)  
  22.                 temp = ""  
  23.                 i += 1  
  24.             Else  
  25.                 temp &= data(i)  
  26.             End If  
  27.         Next  
  28.         bytesRec = 0  
  29.         oqp = False  
  30.     End Sub  







À la suite du code de Form1 tout en bas rajouter le code d'envois de vos saisie de texte qui agira avec le socket.


Code Envois



  1. Public Sub send(ByVal datas As String)  
  2.         Dim Message As [Byte]() = System.Text.Encoding.Default.GetBytes(datas)  
  3.         If wsocket.Connected Then wsocket.Send(Message)  
  4.     End Sub  






Esuite mettez la suite du code du MenuStrip1


Suite Code Mnustrip1



  1. Private Sub EntrerSonMotDePasseToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EntrerSonMotDePasseToolStripMenuItem.Click  
  2.         IBPass.ShowDialog()  
  3.     End Sub  
  4.     Private Sub DemanderDesRensignementsSurUnUtilisateurToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DemanderDesRensignementsSurUnUtilisateurToolStripMenuItem.Click  
  5.         Dim ib As String = InputBox("Entrez le pseudonyme pour en obtenir des informations, elles seront affichée dans la fenêtre du serveur :")  
  6.         If ib <> "" Then  
  7.             send("WHOIS " & ib & vbCr)  
  8.         End If  
  9.     End Sub  
  10.     Private Sub Form1_Layout(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LayoutEventArgs) Handles MyBase.Layout  
  11.         If e.AffectedControl.ToString.Contains("ClientIRC.Form1") Then  
  12.             On Error Resume Next  
  13.             Dim ff As Salons  
  14.             For Each ff In Me.MdiChildren  
  15.                 ff.WebBrowser1.Document.Body.ScrollTop += 999999999  
  16.             Next  
  17.         End If  
  18.     End Sub  







Pour iconifier le client IRC dans le systray j'ai utilisé cette méthode ---> http://hack.xooit.com/t171-Reduire-une-application-dans-le-systray-VB-net.h…

Donc double cliquez sur NotifyIcon1 et Mettez ce code.



Code NotifyIcon



  1. Private Sub NotifyIcon1_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles NotifyIcon1.MouseDoubleClick  
  2.         Me.WindowState = FormWindowState.Normal  
  3.         q = False  
  4.         Me.Visible = True  
  5.   
  6.     End Sub  







Pour la fenêtre salon aller dans projet puis ajouter un nouvel élément et choisissez Windows Form que vous nommerez Salons, ensuite ajoutez ces éléments:

Citation:
Un WebBrowser
Un ListBox
Un TextBox
Un ContextMenuStrip




Appercu:


Il n'est pas fini mais c'est un bon début.

Je ferai un tutoriel sur la réalisation du client IRC une fois le client fini.

première constatation un client IRC en VB.net est assez lourd, il est donc pas conseiller de le coder ainsi.


Revenir en haut
Publicité






MessagePosté le: Dim 11 Déc - 17:17 (2011)    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Apprendre le Hack Index du Forum -> A trié Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  




Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com