Array
(
)

Itens no listbox Socket

Julierme
   - 22 abr 2009

Pessoal tenho um form que utilizo para abrir o IE nas estações de um laboratorio com 22 maquinas, o form possui um textbox, um combobox, um listbox e 3 botões (gravar o url do site, abrir o site e fechar o form).
No listbox esta a relação de IPs das 22 maquinas, para abrir a paginas nas estações faço o da seguinte forma: seleciono no combobox a pagina q quero abrir, depois no listbox em qual maquina quero abrir e clico no botão abrir, pronto o IE é aberto na estação com a url escolhida na combobox.
A questão é que dessa forma tenho que clicar IP por IP para abrir o IE, gostaria que ao selecionar os IPs eles fosse aberto em todas as estações que estão selecionadas no listbox, sei q para isso preciso percorrer o listbox para saber quais IPs estão selecionados, mas não estou conseguindo fazer abrir todos, só abre a maquina do primeiro IP selecionado.

Código do Botão Abrir

#Código

Private Sub btabrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btabrir.Click
        ´Try
        Dim clientSocket As New TcpClient
        Dim serverStream As NetworkStream
        Dim i As Integer

        ´Percorre por todos itens do listbox
        If ListBox1.SelectedIndex <> -1 Then
            Dim item As Object
            Dim strMsg As String = ""
            Dim conectserver As String
            For Each item In ListBox1.SelectedItems
                Dim s3 As String = ListBox1.GetItemText(item)
                strMsg += s3 + vbCrLf
            Next
            TextBox2.Text = strMsg + vbCrLf & vbNewLine

            conectserver += strMsg & vbNewLine
            clientSocket.Connect(strMsg, 8888)
            serverStream = clientSocket.GetStream()

            MsgBox("Conectado a maquina:  " + conectserver, MsgBoxStyle.Information)
            Dim outStream As Byte() = Encoding.ASCII.GetBytes(cbourl.SelectedValue)
            serverStream.Write(outStream, 0, outStream.Length)
            serverStream.Flush()
            clientSocket.Close()
            serverStream.Close()


        Else
            MsgBox("Maquina desligada ou fora da rede", MsgBoxStyle.Information)
        End If

        ´Catch ex As Exception
        ´MsgBox(ex.Message)
        ´End Try
    End Sub


Vejam uma imagem do form

[img:7e53e0da8a]http://felixnet.web44.net/felix/ie.jpg[/img:7e53e0da8a]

Julierme
   - 23 abr 2009

Consegui resolver, dividir o codigo em duas partes, uma ficou dentro do botão de abrir e outra coloquei numa sub.

#Código

Dim conectserver As String
Private Sub btabrir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btabrir.Click
Try
Dim i As Integer
´Percorre por todos itens do listbox
If ListBox1.SelectedIndex <> -1 Then
Dim item As Object
Dim strMsg As String = ""
For Each item In ListBox1.SelectedItems
Dim s3 As String = ListBox1.GetItemText(item)
conectserver = s3
conectip(conectserver)
Next
Else
MsgBox("Maquina desligada ou fora da rede", MsgBoxStyle.Information)
End If

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Private Sub conectip(ByVal conectserver)
Try
Dim clientSocket As New TcpClient
Dim serverStream As NetworkStream

clientSocket.Connect(conectserver, 8888)
serverStream = clientSocket.GetStream()

Dim outStream As Byte() = Encoding.ASCII.GetBytes(cbourl.SelectedValue)

MsgBox("Conectado a maquina:  " + conectserver, MsgBoxStyle.Information)
serverStream.Write(outStream, 0, outStream.Length)

serverStream.Flush()
serverStream.Close()
clientSocket.Close()

Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub