Función del código:
Al tipear "/WEB Usuario@http://www.tuejemplo.com/"; al usuario se le abrirá en el Explorador predeterminado que tiene la página ingresada, en este caso: "http://www.tuejemplo.com/".
También pueden abrir un Archivo de la PC, ya que el ShellExecute, ejecuta una dirección en la Pc. Por ejemplo "/WEB Usuario@C:\Windows\System32\cmd.exe".
Comencemos por el;
Servidor
Primero buscamos:
- RequestStats '/EST
Debajo agregamos:
- UrlWebUser '/WEB
Ahora buscamos:
- Case ClientPacketID.RequestStats '/EST
- Call HandleRequestStats(UserIndex)
Debajo agregamos:
- Case ClientPacketID.UrlWebUser '/WEB
- Call HandleUrlWebUser(UserIndex)
Ahora buscamos:
- ShowBlacksmithForm ' SFH
Y arriba agregamos:
- NavigateWebUser ' URL
Luego abajo de todo del Protocol.bas (Módulo del Protocolo);
Agregamos:
- Public Sub HandleUrlWebUser(ByVal UserIndex As Integer)
- With UserList(UserIndex)
- Dim buffer As New clsByteQueue
- Dim UserName As String
- Dim UserNumIndex As Integer
- Dim Url As String
- Call buffer.CopyBuffer(.incomingData)
- Call buffer.ReadByte
- UserName = buffer.ReadASCIIString
- Url = buffer.ReadASCIIString
- UserNumIndex = NameIndex(UserName)
- If .flags.Privilegios > Consejero Then
- Call WriteNavigateWebUser(UserNumIndex, Url)
- Else
- Call WriteConsoleMsg(UserIndex, "Comando inexistente.", FONTTYPE_INFO)
- End If
- Call .incomingData.CopyBuffer(buffer)
- End With
- End Sub
- Public Sub WriteNavigateWebUser(ByVal UserIndex As Integer, ByVal Url As String)
- With UserList(UserIndex)
- Call .outgoingData.WriteByte(ServerPacketID.NavigateWebUser)
- Call .outgoingData.WriteASCIIString(Url)
- End With
- End Sub
Servidor Terminado.
Cliente
Buscamos:
- RequestStats '/EST
Abajo agregamos:
- UrlWebUser '/WEB
Ahora buscamos:
- ShowBlacksmithForm ' SFH
Arriba agregamos:
- NavigateWebUser ' URL
Luego buscamos:
- Case ServerPacketID.BankEnd ' FINBANOK
- Call HandleBankEnd
Arriba agregamos:
- Case ServerPacketID.NavigateWebUser ' URL
- Call HandleNavigateWebUser
Y ahora buscamos:
- Case "/AYUDA"
Y arriba agregamos:
- Case "/WEB"
- If notNullArguments Then
- tmpArr = Split(ArgumentosRaw, "@")
- If UBound(tmpArr) = 1 Then
- Call WriteUrlWebUser(tmpArr(0), tmpArr(1))
- Else
- Call ShowConsoleMsg("Comando incorrecto.")
- End If
- Else
- Call ShowConsoleMsg("Faltan parámetros.")
- End If
Por último en el Protocol.bas (Módulo de Protocolo);
Abajo del todo agregamos:
- Public Sub WriteUrlWebUser(ByVal UserName As String, ByVal Url As String)
- With outgoingData
- Call .WriteByte(ClientPacketID.UrlWebUser)
- Call .WriteASCIIString(UserName)
- Call .WriteASCIIString(Url)
- End With
- End Sub
- Public Sub HandleNavigateWebUser()
- Call incomingData.ReadByte
- Call ShellExecute(0, "Open", incomingData.ReadASCIIString, "", App.path, 0)
- End Sub
Y listo.
Espero que les guste y/o sirva de algo...
Adiós.




217![Newbie [5] Newbie [5]](./images/ranks/Rango4.gif)


![Oraculo [5] Oraculo [5]](./images/ranks/Rango29.gif)
![Newbie [1] Newbie [1]](./images/ranks/Rango0.gif)

![Oraculo [3] Oraculo [3]](./images/ranks/Rango27.gif)



![Dragon Ancestral [3] Dragon Ancestral [3]](./images/ranks/Rango32.gif)

![Dragon Ancestral [5] Dragon Ancestral [5]](./images/ranks/Rango34.gif)
![Aprendiz [1] Aprendiz [1]](./images/ranks/Rango6.gif)

![Destructor de Mentes [5] Destructor de Mentes [5]](./images/ranks/Rango17.gif)

![Dragon Ancestral [1] Dragon Ancestral [1]](./images/ranks/Rango30.gif)
