Cum Sa Faci Botzi De Direct Conect In Visual Basic !
Acum va voi invata cum sa faceti botzii pentru Direct Conect.
Sa incepem:
Creati 3 butoane de comanda si le setati proprietatile asa:
- Code:
-
Command1 - Name = Command1 Caption="Conecteaza"
Command2 - Name = Command2 Caption="Deconecteaza"
Command3 - Name = Command3 Caption="Trimite Msg"
Apoi creati 4 textboxes si le setati proprietatile asa:
- Code:
-
Text1 - Name="txtAdresa"
Text1 - Text="Adresa" 'punem asa la text ca sa le putem deosebi pe forma ( aplicatie )
Text2 - Name=txtPort
Text2 - Text="411" ' asta este portul default pentru huburi ( il lasam asa ca sa le putem deosebi)
Text3 - Name=txtMesaj
Text3 - Text="Mesaj" ' mesajul care il trimite catre hub :-)
Text4 - Name=txtNick
Text4 - Text="Nickname"
Dupa ce ati facut pasii de mai sus...puneti pe forma si un timer
care sa aiba urmatoarele proprietati:
- Code:
-
Enabled=False
Interval=350
Dupa ce ati pus si timer-ul acum duceti-va la ToolBox (in stanga
de tot unde se afla obiectele (butoanele timere etc) )...acolo dati
click dreapta si alegeti Components.
Va aparea o fereastra...scroll down pana gasiti in lista de acolo
Microsoft Winsock Control 6.0 bifati-l apoi click pe Apply
si pe OK.
Dupa cum vedeti..in toolbox a aparut un nou obiect...puneti-l pe forma
si setatii proprietatile asa:
- Code:
-
Name=sock
Index=0
Acum dati dublu-click pe butonul Conecteaza !
Dupa cum vedeti..s-a deschis o noua fereastra...si au aparut 2
linii de cod:
- Code:
-
Private Sub Command1_Click()
End Sub
Intre cele doua linii de cod...copiati urmatorul cod:
- Code:
-
sock(0).RemoteHost = txtAdresa -winsock-ul care l-ati pus pe forma..apare cu numele sock
'cum v-am spus sa-l setati..apoi in paranteza este cifra "0"
' adica indexul...care v-am spus sa-l setati asa :-)
'remote host este egal cu txtAdresa adica se conecteaza la
' adresa pe care o scrieti voi in txtAdresa
sock(0).RemotePort = txtPort ' idem ca mai sus doar ca remote port=txtPort ..adica se conecteaza
' la adresa de mai sus la portul care il scrieti voi in txtPort
sock(0).Connect ' acum se conecteaza
Timer1.Enabled = True
Apoi reveniti la forma si dati dublu click pe butonul "Deconecteaza".
Dupa cum vedeti iar au aparut o fereastra si 2 noi linii de cod:
- Code:
-
Private Sub Command2_Click()
End Sub
Intre ele copiati urmatorul cod:
- Code:
-
On error Resume Next ' Error Handler
sock(0).close 'codul asta inchide conexiunea cu Remote Host-ul
Reveniti la forma si dati dublu-click pe butonul "Trimite Msg".
Dupa cum vedeti iar au aparut o fereastra si 2 noi linii de cod:
- Code:
-
Private Sub Command3_Click()
End Sub
Intre acestea copiati urmatorul cod:
- Code:
-
On Error Resume Next
sock(0).SendData "<" & txtNick & "> " & txtmess & "|" 'daca pui 500 de la fel :) trimite 500 mesaje..dar iei ban/kick imediat
sock(0).SendData "<" & txtNick & "> " & txtmess & "|" 'asta este exemplu
sock(0).SendData "<" & txtNick & "> " & txtmess & "|" 'si acesta :) deci botul acesta trimite pe hub 3 mesaje:)
Apoi din aceeasi fereastra...din dropdown-menu de sus...selectati general...si copiati urmatorul cod:
- Code:
-
Function Lock2Key(StrLock As String) As String ' asta e functia...trebuie copiata
Dim TLock2Key As String 'mereu ..nu e necesar sa o inveti pe de rost
Dim TChar As Integer
Dim rLock As String
If Len(StrLock) < 3 Then
Lock2Key = Left$("BROKENCLIENT", Len(StrLock))
Exit Function
End If
For I = 7 To Len(StrLock)
If Mid$(StrLock, I, 3) = " Pk" Then
I = Len(StrLock)
Else
rLock = rLock & Mid$(StrLock, I, 1)
End If
Next I
TLock2Key = Chr$(Asc(Left$(rLock, 1)) Xor Asc(Right$(rLock, 1)) Xor Asc(Mid$(rLock, Len(rLock) - 1, 1)) Xor 5)
For I = 2 To Len(rLock)
TLock2Key = TLock2Key & Chr$(Asc(Mid$(rLock, I, 1)) Xor Asc(Mid$(rLock, I - 1, 1)))
Next I
For I = 1 To Len(TLock2Key)
TChar = Asc(Mid$(TLock2Key, I, 1))
TChar = TChar * 16 + TChar \ 16 'Swap bits 11110000 -> 00001111
TChar = TChar Mod 256
If TChar = 0 Or TChar = 5 Or TChar = 36 Or TChar = 96 Or TChar = 124 Or TChar = 126 Then
Lock2Key = Lock2Key & "/%DCN" & Right$("000" & TChar, 3) & "%/"
Else
Lock2Key = Lock2Key & Chr$(TChar)
End If
Next I
End Function 'aici se termina functia :D
Apoi reveniti la forma..si dati dublu click pe Timer.
Dupa cum vedeti iar a aparut o fereastra si 2 noi linii de cod:
- Code:
-
Private Sub Timer_Timer()
End Sub
Intre ele copiati codul urmator:
- Code:
-
On Error Resume Next
Dim varkey As String
Dim rLock As String
Dim varlock As String
sock(0).GetData varlock, vbString
If InStr(varlock, "$Lock") Then
For I = 1 To Len(varlock)
If Mid(StrLock, I, 3) = " Pk" Then
I = Len(varlock)
Else
rLock = rLock & Mid(varlock, I, 1)
End If
Next I
varlock = rLock
varkey = Lock2Key(varlock)
sock(0).SendData "$Key " & varkey & "|" ' ce trimite catre hub
sock(0).SendData "$ValidateNick " & txtNick & "|" ' "valideaza" nick-ul
sock(0).SendData "$Version 1.0091|" ' ce trimite catre hub
sock(0).SendData "$MyINFO $ALL " & txtNick & " <oDC>$ $Cable$$9421036014$|" ' ce trimite catre hub
sock(0).SendData "$GetNickList|" ' ce trimite catre hub
sock(0).GetData varuser, vbString ' ce trimite catre hub
sock(0).SendData "$GetINFO " & txtNick & " " & txtNick & "|" ' ce trimite catre hub
End If
Timer1.Enabled = False
...cam asta