Por que eu devo ler este artigo:A utilização de serviços de compartilhamento de tela e controle remoto é útil em situações onde é preciso automatizar uma tarefa que deve ser realizada diretamente na interface gráfica do sistema operacional. Esta automação pode ser realizada através do envio de comandos (teclas) e eventos do mouse para diversos computadores remotos que tiverem um servidor VNC instalado. Este artigo mostra exemplos de como enviar caracteres e eventos do mouse para um servidor VNC remoto através de uma aplicação cliente desenvolvida em linguagem C#.

A utilização de vários computadores conectados em rede acabou atraindo diversos novos serviços que auxiliam o compartilhamento e acesso a recursos. Um dos serviços mais populares é representado pela categoria de softwares que permite o compartilhamento da tela (screen sharing) e que possibilita o acesso e controle remoto da área de trabalho (desktop) de um computador.

As principais tecnologias para permitir o compartilhamento e acesso remoto à interface gráfica de um sistema operacional trabalham com o conceito de cliente/servidor, onde um computador servidor (o host) executa um serviço que permitirá clientes (clients) remotos acessarem o desktop. O compartilhamento e o acesso remoto são realizados através da transferência da imagem (tela) do host para o cliente e do envio das interações do mouse e teclado no cliente para o servidor.

Dentre os softwares existentes para trabalhar com estas tecnologias podemos destacar o VNC, que é a sigla utilizada para representar as implementações de código livre que se baseiam no uso do protocolo RFB.

A utilização de ferramentas de compartilhamento de desktop permite diversas aplicações, como a possibilidade de suporte remoto e resolução de problemas com o acompanhamento do usuário, facilitar o processo de deploy de componentes em servidores remotos, treinamento de usuários e monitoria de ações. Contudo, tais usos da tecnologia de compartilhamento de tela possuem implicações relevantes para a privacidade e segurança dos usuários.

Baseado nesse contexto, este artigo apresentará como construir uma aplicação console em C# que acessa remotamente um servidor VNC com a biblioteca VNCSharp. Esta aplicação pode ser utilizada para automatizar a execução de tarefas administrativas (aplicação de service pack, atualização de configurações, etc), treinamento de usuários, colaboração, captura de tela e outras.

A partir do projeto de exemplo descrito neste artigo o leitor poderá integrar as bibliotecas de acesso a um servidor VNC e montar suas próprias soluções que envolvam o acesso a computadores remotos através de um cliente VNC que permite o envio de teclas e eventos do mouse.

O VNC e tecnologias de compartilhamento de tela

As tecnologias para o compartilhamento de tela e o acesso remoto já existem há um bom tempo. Contudo, apenas recentemente estas ferramentas começaram a serem utilizadas em larga escala, principalmente devido ao aumento da largura de banda da conexão entre computadores.

Possuir uma largura de banda adequada é necessário para a utilização de tecnologias de compartilhamento de tela, uma vez que é necessário transmitir frequentemente uma grande quantidade de bytes associada à tela do servidor remoto para os clientes. Apesar de existirem técnicas de compactação e redução de informações necessárias para o compartilhamento de tela, ainda hoje esta tecnologia requer uma conexão confiável, constante e adequada entre o cliente e o servidor.

A definição de como a tela do servidor será transmitida para os clientes e como os eventos de mouse e teclado do cliente devem ser transmitidos para o servidor é detalhada no protocolo utilizado. Atualmente existem diversos protocolos empregados por servidores de compartilhamento de tela, como o protocolo RDP (Remote Desktop Connection), utilizado pelo serviço Terminal Services da Microsoft, e o protocolo RFB (Remote Framebuffer), que é empregado nos servidores de código livre representados pela sigla VNC (Virtual Network Connection). Este artigo se concentrará na utilização do VNC devido à facilidade de download, instalação e execução. Também se destaca a possibilidade de criação de clientes VNC graças às bibliotecas de código aberto em C# existentes.

Antes de começarmos a detalhar como vamos criar uma aplicação cliente que acessa remotamente um servidor VNC, é preciso fazer a instalação do servidor e testar a conexão. Dentre as opções gratuitas disponíveis recomenda-se o RealVNC ou o TightVNC (veja na seção Links). Estes dois softwares possuem pacotes para download que contêm tanto o servidor como ferramentas cliente para as plataformas Windows, ...

Fim do trecho gratuito • continue abaixo
CONTEÚDO EXCLUSIVO

Desbloqueie toda a DevMedia

  • +2000 artigos e vídeos
  • +40 trilhas sobre Front-end, Back-end, IA e muito mais
  • +5000 exercícios práticos
  • Mentorias ao vivo individuais
até 50% OFF
A partir de
R$ 79 /mês
Assinar agora