Escritorio RemotoRemote Desktop RDP (en C#)
Fecha: 17/Feb/2006 (16-02-06)
|
Introducción
En esta ocasión vamos a comentar como usar o mejor dicho como aprovecharnos de una de las librerías bajo mi punto de vista mas interesantes que podemos encontrarnos para gestión de equipos esas librerías de las que hablo no son ni mas ni menos que las del Escritorio Remoto para implementar nuestro propio escritorio remoto en nuestras aplicaciones.
Estas librerías nos van a permitir gestionar, utilizar y conectarnos a un equipo remota como si estuviéramos realmente delante de el, de forma sencilla y rápida, podremos también especificar las características propias de la conexión tal y como si usáramos la herramientas que proporciona Microsoft de Conexión a Escritorio Remoto.
Empezando a conectar…
Básicamente existen dos formas de utilizar las librerías la primeras de ellas es agregando una referencia al componente COM, Microsoft Terminal Services Active Client 1.0 Type Library y realizar todo el proceso mediante código, pero por suerte existe otra forma gracias a que existe un componente grafico para Visual Studio que nos permitirá realizar todo el proceso de forma sencilla, para ello deberemos agregar en la ToolBox un COM Component llamado Microsoft RDP Client Control.
Una vez agregado el nuevo componente a la ToolBox veremos el nuevo componente Microsoft RDP Client Control, lo único que tendremos que hacer será arrastrar el componente al formulario, veremos que automáticamente se han agregado las referencias y contamos con un contenedor que es donde se iniciara la conexión remota.
Lo primero que haremos será acceder a las propiedades de conexión del contenedor, en el código siguiente podemos ver como modificar las credenciales de conexión y el equipo remoto al que nos queremos conectar:
private void Form1_Load(object sender, EventArgs e) { // Detalles de la conexion axMsRdpClient1.Name = “Conexión 1”; axMsRdpClient1.Server = “192.168.1.6”; // Datos de las credenciales axMsRdpClient1.UserName = “antonio”; axMsRdpClient1.Domain = “micasa”; axMsRdpClient1.AdvancedSettings2.ClearTextPassword = “secreto”; }
Una vez echo esto ya podríamos conectarnos pero vamos a seguir indicándole a nuestro contenedor de escritorio remoto mas características, ahora vamos a indicarle que características de pantalla queremos para nuestra conexión, el siguiente código muestra como hacerlo:
// Indicamos la profundidad de color, los valores numéricos // asignados son los siguientes:
//
// 8 – 256 Colores
// 15 – Alta Densidad: 15 bits
// 16 – Alta Densidad: 16 bits
// 24 – Color Verdadero: 24 bits
private void Form1_Load(object sender, EventArgs e) { . . . axMsRdpClient1.ColorDepth = 16; // Le indicamos que el tamaño de la ventana axMsRdpClient1.DesktopHeight=800; axMsRdpClient1.DesktopWidth=600; // Si lo quisieramos en pantalla completa //axMsRdpClient1.FullScren=true; }
Pero eso no es todo también podemos especificar características avanzadas, como el cacheo de las imágenes, si queremos que se conecte a la consola, el puerto de RDP, etc…, podemos ver como realizar estos cambios en el siguiente código:
private void Form1_Load(object sender, EventArgs e) { . . . . . // Habilitamos el acceso a la consola axMsRdpClient1.AdvancedSettings2.ConnectToServerConsole = true; // Puerto del RDP axMsRdpClient1.AdvancedSettings2.RDPPort = 3389; // Redirigimos las unidades axMsRdpClient1.AdvancedSettings2.RedirectDrives = true; // Redirigimos las impresoras axMsRdpClient1.AdvancedSettings2.RedirectPrinters = true; // Redirigimos los puertos axMsRdpClient1.AdvancedSettings2.RedirectPorts = true; }
Y lo ultimo que nos queda es decirle a nuestra aplicación que se conecte para ello nada mas fácil:
private void button1_Click(object sender, EventArgs e) { axMsRdpClient1.Connect(); }
Si todo ha ido bien obtendremos la típica pantalla de conexión al escritorio remoto de la aplicación. En la siguiente captura de pantalla podéis ver como queda nuestro propio escritorio remoto.
Como habéis podido ver es muy sencillo crear nuestra propia aplicación de escritorio remoto, comentar que existen muchas mas funcionalidades que podemos modificar y que me he dejado en el tintero, animo a los lectores a que investiguen y jueguen con ellas.
Espacios de nombres usados en el código de este artículo:
System
System.Windows.Forms
Fichero con el código de ejemplo: lightnon_rdp_cs.zip - 20 KB
(MD5 checksum: [A57BE94A6099FDEDFD87DBE1A0605C19])