Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Julierme Felix

[Resolvido] Itens No listbox + Socket

Recommended Posts

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

 

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

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você fez apenas um IF, você deve fazer um for para percorrer os itens selecionados da sua combo.

 

Abraços...

Utilizo a combo só para selecionar o site que quero abrir nas estações, não preciso percorrer os itens da combo.

 

A questão é no listbox e não na combo.

 

'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

Compartilhar este post


Link para o post
Compartilhar em outros sites

E quando é pela segunda vez ele para em alguma parte do código, da algum erro?

 

Abraços...

Não da erro, somente não abre o IE nas outras maquinas selecionadas.

Penso que o problema é como passar cada IP selecionado para ser o conectserver, pelo jeito q esta passa só o primeiro, penso que teria q passar o primeiro, fechar e passar o outro, fechar, passar o outro fechar e assim por diante dependendo dos numero de IP selecionados, mas não sei como fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.