Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: dark_soul en 10 Mayo 2006, 22:32 pm



Título: Problema cliente / servidor ; procesos del sistema
Publicado por: dark_soul en 10 Mayo 2006, 22:32 pm
 Wenas , lo primero describire el programa ;en una aplicacion cliente / servidor . Quiero que en el server se listen todos los procesos del sistema  y despues se envien al cliente y se copien en un list. Dejo el codigo a ver si me podeis decir que falla:


SERVER:

Dim ListaProcesos As Object
Dim ObjetoWMI As Object

Private Sub Listar()
Set ObjetoWMI = GetObject("winmgmts:")
If IsNull(ObjetoWMI) = False Then
Set ListaProcesos = ObjetoWMI.InstancesOf("win32_process")
'Recorremos toda las coleccion en lista de procesos y la añadimos al list
For Each ProcesoACerrar In ListaProcesos
List1.AddItem LCase$(ProcesoACerrar.Name)
Next
End If

'Eliminamos las variables de objeto

Set ListaProcesos = Nothing
Set ObjetoWMI = Nothing

End Sub

Private Sub Command1_Click()
ws.SendData Text2.Text
End Sub


Private Sub Command2_Click()
ws.SendData Text2 '
List1.AddItem Text2
End Sub

Private Sub Command3_Click()
List1.Clear
Listar
End Sub

Private Sub Form_Load()
ws.LocalPort = 1001
ws.Listen
End Sub

Private Sub ws_ConnectionRequest(ByVal requestID As Long)
If ws.State <> sckClosed Then _
 ws.Close
ws.Accept requestID
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
Dim datos As String
ws.GetData datos
Text1.Text = datos
End Sub

Y EN EL CLIENTE :

Private Sub Command1_Click()
On Error Resume Next
ws.Connect
End Sub

Private Sub Command2_Click()
On Error Resume Next
ws.SendData Text2.Text
End Sub



Private Sub Form_Load()
ws.RemoteHost = "127.0.0.1"
  ws.RemotePort = 1001
End Sub

Private Sub ws_DataArrival(ByVal bytesTotal As Long)
On Error Resume Next
Dim datos As String

  ws.GetData datos
  Text1.Text = datos
  List1.AddItem datos
End Sub


El problema es que si mando una palabra solamente funciona bien , pero si listo los procesos en el server y le doy a enviar al cliente no funciona.. Alguien sabe que puede pasar ???

gracias de antemano salu2


Título: Re: Problema cliente / servidor ; procesos del sistema
Publicado por: <--v1c1ous--> en 11 Mayo 2006, 04:48 am
Buenas.
Solo por concejo:
Lee la funcion antes de cuestionarte cuarquier cosa y entendela.
hace una que otra prueba antes de cuestioanrte tambien, por ej logra listar los procesos en un listbox dentro del server y hacelo precionando f8, asi vas a ver como funciona y despues trata de pasarlos al cliente, si no lo logras, ahi cuentionate.


Ahora te explico, al pedirle al server la lista nos interesa esta parte:

Citar
For Each ProcesoACerrar In ListaProcesos
List1.AddItem LCase$(ProcesoACerrar.Name)
Next

Agrega al listbox los prosesos uno por uno hasta terminar, vos queres pasar cada uno de esos procesos listados a tu cliente.

Facil, en cada vez que tu server liste un proceso lo sumas a un buffer y despues mandas todo junto a tu cliente ¿Como?
SERVER:
A la hora de listar cada proceso a su vez lo agregas a un buffer
Citar
buffer = buffer & Proceso & "|"
CLIENTE:
El cliente recibe los procesos delimitados por "|" y los va agregando al listbox
Citar
proceso() = Split(DATA,"|")
For i = 0 to proceso
listbox.additem proceso(i)
next

Sobreentiendo que sabes usas variables :)

Saludos.