VB .NET - Capturando a tela e enviando remotamente (espião) - II |
Neste artigo eu vou mostrar como criar um programa para capturar a tela exibida do computador e enviar a imagem remotamente para outro programa. |
Teremos assim dois programas : um que seria o que envia as imagens e outro que recebe. É um programa bem simples mas que aborda conceitos importantes da linguagem VB .NET.
Na primeira parte do artigo criamos a aplicação que copia a tela, faz a conexão com a aplicação que vai receber a imagem e envia imagens a cada intervalo de tempo, que no exemplo foi definido como 2000 milisegundos ou 2 segundos.
Vamos criar agora a aplicação que vai receber e exibir as imagens.
Recursos usados:
Nota: Baixe e use a versão Community 2015 do VS ela é grátis e é equivalente a versão Professional.
Criando a aplicação que recebe as imagens
Abra o VS Community 2015 e clique em New Project;
Selecione a linguagem Visual Basic e o template Windows Forms Application;
Informe o nome VBNET_Remoto_Recebedor e clique no botão OK;
A partir da ToolBox inclua no formulário os seguintes controles:
1 PictureBox - PictureBox1, SizeMode = StretchImage, Dock=fill
1 Button - btnEscutar
1 Timer - Timer1 ; Interval = 2000
Disponha os controles no formulário conforme a figura abaixo:
A seguir declare os namespaces no formulário:
Imports
System.NetLogo a pós a declaração do formulário vamos definir as variáveis que vamos usar no projeto:
Dim client As New TcpClientObserve que criamos uma instância de TcpListener que esta escutando na porta 8085, a mesma porta na qual a aplicação que envia as imagens se conecta.
Usamos o
operador AddressOf que cria uma function delegate que aponta para a
função especificada por procedurename; no nosso caso : Escutar e
ReceberImagem.
Quando o procedimento especificado é um método de instância, então a função
delegada refere-se tanto à instância quanto ao método. Então, quando a função
delegada for invocada, o método especificado da instância é chamado.
Agora
vamos definir o código do método Escutar:
Private Sub Escutar() While client.Connected = False server.Start() client = server.AcceptTcpClient End While getImagem.Start() End Sub |
Obtém a imagem obtida do cliente.
A seguir temos o código do método ReceberImagem:
Private Sub ReceberImagem() Dim bf As New BinaryFormatter While client.Connected = True nstream = client.GetStream PictureBox1.Image = bf.Deserialize(nstream) End While End Sub |
Neste código criamos uma instância de BinaryFormatter, verificamos se a conexão com o cliente existe e obtemos o stream a partir do cliente exibindo a imagem no controle PictureBox após realizar a desserialização da mesma usando a classe BinaryFormatter.
No evento Click do botão Escutar inclua o código abaixo que
Private Sub btnEscutar_Click(sender As Object, e As EventArgs) Handles btnEscutar.Click listening.Start() End Sub |
Aqui estamos iniciando a thread usando o método Start().
Agora é só alegria...
Vamos testar as nossas aplicações:
1- Primeiro execute o projeto : VBNET_Remoto_Recebedor
Clique no botão - Escutar.
Após isso nossa aplicação estará escutando na porta 8085 aguardando mensagens.
2- A seguir execute o projeto - VBNET_VisualizadorRemoto
Clique no botão Conectar para se conectar à aplicação em localhost na porta 8085.
Clique a seguir no botão - Ativar Envio dos Dados - de forma a ativar o timer para que a cada 2s uma imagem da tela seja capturada e enviada para ser exibida na aplicação que esta escutando na porta.
O resultado pode ser visto abaixo:
Uma cópia da tela é enviada e exibida no controle PictureBox a cada 2 segundos.
O programa é muito simples, e, para tornar o entendimento das threads e dos delegates mais fácil, eu não utilizei outros recursos como verificar a conexão, tratar os dados recebidos, tratar adequadamente os erros, etc.
Então você pode incrementar e melhorar este programa para torná-lo realmente funcional.
Pegue o projeto completo aqui : VBNET_Remoto_Recebedor.zip
E esta é a mensagem que dele (Jesus)
ouvimos, e vos anunciamos: que Deus é luz, e não há nele trevas nenhumas.
Se dissermos que temos comunhão com ele, e andarmos em trevas, mentimos, e não
praticamos a verdade.
1 João 1:5,6
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
VB.NET - Programando Socket com Multithreads - Macoratti ...