Creating a Remote Desktop Application in VB.NET

Remote Desktop Protocol

RDP (Remote Desktop Protocol) is a protocol developed by Microsoft that provides a user with a graphical interface to connect to another computer over a network connection. Windows Remote Desktop Services is a server-based presentation virtualization component that allows a user to access applications and data hosted on a remote computer over a network.

Desktop Virtualization

Desktop virtualization is a software technology that can separate the desktop environment and its associated applications from the physical client that is used to access it. Desktop virtualization can be used together with application virtualization and user virtualization to provide a complete desktop environment management system. In Desktop virtualization, all the components of the desktop are virtualized, which allows for a flexible and more secure desktop delivery model.

Application Virtualization

Application virtualization is a software technology that envelops programs from the underlying operating system. A virtualized application behaves at runtime as if it is directly interfacing with the original operating system.

User Virtualization

User virtualization separates all of the software aspects that define a user's personality from the operating system.

Our Project

Today, you will create an application in Visual Basic.NET capable of making Remote Desktop Connections. Start Visual Basic and create a new Windows Forms project. When the project has finished loading, add three textboxes and two buttons onto it. The textboxes will be used to enter the Server name, User name, and Password. The two buttons will be used to Connect and Disconnect.

Make your form much bigger than the default size.

Use the following steps to add a reference to Microsoft Terminal Services Active Client:

  1. Click Project.
  2. Click Add Reference.
  3. On the COM tab, scroll down until you find Microsoft Terminal Services Active Client and tick it (see Figure 1).

Add a Reference
Figure 1: Add a Reference

Use the following steps to add the Microsoft Terminal Services Client Control to your Toolbox:

  1. Right-click your Toolbox.
  2. Click Choose Items.
  3. Select the COM Components tab.
  4. Scroll down until you find Microsoft Terminal Services Client and tick it, as shown in Figure 2.
  5. Click OK.

Toolbox Items
Figure 2: Toolbox Items

Your Toolbox should show two new controls inside (see Figure 3).

New tools
Figure 3: New tools

Add the Terminal Services Client Control to your form. Your form's final design should resemble Figure 4.

Figure 4: Design

The design is set up nicely now. You have to add the reference to get the Toolbox items so that we can add them onto the form.


Import the Microsoft Terminal Services Client Library namespace:

Imports MSTSCLib

Add the following code behind the 'Connect' button:

   Private Sub btnConnect_Click(sender As Object, e As EventArgs) _
         Handles btnConnect.Click


         rdpView.Server = txtServer.Text
         rdpView.UserName = txtUserName.Text

         Dim isSecured As IMsTscNonScriptable = _
            DirectCast(rdpView.GetOcx(), IMsTscNonScriptable)

         isSecured.ClearTextPassword = txtPassword.Text


      Catch ex As Exception

         MessageBox.Show("Cannot Connect", "Cannot Connect to: " _
            + txtServer.Text + " Reason:  " + ex.Message, _
            MessageBoxButtons.OK, MessageBoxIcon.Error)

      End Try

   End Sub

The Username and Server details get supplied. The IMsTscNonScriptable interface configures automatic password logon access to Remote Desktop Session Host servers. if all details are correct, rdpView will connect to the remote server and establish a connection. If anything fails, the Try and Catch block will produce the necessary exception output.

Add the next code behind the 'Disconnect' button:

   Private Sub btnDisconnect_Click(sender As Object, e -
         As EventArgs) Handles btnDisconnect.Click


         If rdpView.Connected.ToString() = "1" Then


         End If

      Catch ex As Exception

         MessageBox.Show("Cannot Disconnect", _
            "Cannot Disconnect from: " _
            + txtServer.Text + " Reason: " + ex.Message, _
            MessageBoxButtons.OK, MessageBoxIcon.Error)

      End Try

   End Sub

If connected, disconnect.

Please feel free to download RemoteDesktop_Ex, the program to accompany this article. It's found below.


Being able to create an application that can connect remotely to other users can provide you with another option to do proper application and desktop support.

This article was originally published on August 2nd, 2017

About the Author

Hannes DuPreez

Hannes du Preez is a self-taught developer who started learning to program in the days of QBasic. He has written several articles over the years detailing his programming quests and adventures. .NET is his second love, just after his wife and kid. He has always been an avid supporter of .NET since the beginning and is an expert in VB and C#. He was given the Microsoft Most Valuable Professional Award for .NET (2008–2017). He has worked as a moderator and an article reviewer on online forums and currently works as a C# developer and writes articles for CodeGuru.com, Developer.com, DevX.com, and the Database journal.
His first book Visual Studio 2019 In Depth is currently on sale on Amazon and Bpb Publications.

You could reach him at: ojdupreez1978[at]gmail[dot]com

Related Articles


Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date