Click here to Skip to main content
11,408,708 members (66,013 online)
Click here to Skip to main content

Terminal Control Project (C# VT100 SSH Telnet)

, 14 Mar 2006
Rate this:
Please Sign up or sign in to vote.
An article on implementing Telnet and SSH, and displaying it on a VT100 Terminal Emulation control created using GDI+.

Sample Image


This article demonstrates how to implement SSH and Telnet through a VT100 Emulator designed using Microsoft GDI+ and Microsoft C#.


I'm *not* a professional programmer. I enjoy programming as a hobby. My trade is in Network Engineering. I use various tools, some I've written, some commercial. This project started when I wanted to integrate some SSH capabilities into a tool I had written. After struggling with SSH, I decided it was probably beyond my capacity to understand enough to write my own SSH library. I couldn't justify spending money on some of the commercially available SSH components, and I eventually found the Granados SSH library.

After implementing Granados SSH library into my application, I realized the need to interpret and emulate VT100. That... is immensely more difficult than you think. I discovered a project at SourceForge, called "Ackterm". The person who created the Ackterm project had mostly implemented VT100 with Telnet.

I combined Granados with Ackterm to a *.dll control that I could drag onto a Windows Form in Visual C# (or C++ or Visual Basic). It needs a *lot* of work still, such as finishing up the scrolling, text selection, implementing a clipboard copy, etc. Some control codes still aren't programmed in. But, it's basically functional enough that a moderately skilled C# programmer should be able to finish where I left off. Recently, I discovered that my company already has a license for one of the commercial Terminal Emulators, so I stopped work on this project. I would be thrilled if anyone finished it up, as I have no plans to do so. Maybe in the future I may have time, but it's not likely.

Using the code

When you download the project, you'll find two directories, "TerminalControl" and "TerminalControlTest". The Visual Studio Solution file is in the "TerminalControl" directory.

The "TerminalControl" project produces the DLL file. The "TerminalControlTest" is just a Windows form to use while developing the DLL.

You will need the .NET Framework v1.1, and Visual C# 2003. I guess you could use the free compiler, but I've not tried it. The source code will probably be really hard to navigate without Microsoft's IDE and intellisense.

Points of Interest


  • March 14th, uploaded the project.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author


United States United States
No Biography provided

Comments and Discussions

QuestionLove this! Would you be willing to add support for HTOP? PinmemberMember 1123666316-Nov-14 11:25 
GeneralAWESOME! Pinmembercavalin xucro12-Aug-13 9:55 
GeneralMy vote of 5 PinmemberMember 1002960720-Jun-13 1:20 
GeneralMy vote of 4 PinmemberMember 43208446-Jan-12 1:42 
NewsArticle outdated - See follow up for this article PinmemberElmue2-Nov-11 15:42 
GeneralRe: Article outdated - See follow up for this article PinmemberMember 440167615-Jan-13 11:01 
GeneralPoderosa full of bugs and misdesigns PinmemberElmue16-Jan-13 6:55 
QuestionSerial port connection Pinmemberfalander1-Sep-11 12:08 
AnswerRe: Serial port connection PinmemberColumbus-MCSD2-Sep-11 1:20 
GeneralMy vote of 5 Pinmember(BlackBox) Ethical Hacker31-Oct-10 6:37 
GeneralUser authentication failed Pinmembermk_bt6-Apr-10 11:42 
GeneralIs this source code freely available. PinmemberTimothy Scott Ayers2-Mar-10 14:49 
I want to take this control and embed it into my C# software application. I believe the source code is freely available. Is this correct?
GeneralSSH and telnet don't seem to be working :( Pinmembermacgeorge5-Nov-09 20:06 
QuestionRun Command Without UI Pinmembermahdavi26-Jun-09 5:26 
GeneralChar and unicode Pinmemberafterburn8-Jun-09 6:01 
GeneralRe: Char and unicode Pinmemberdiamond_delight22-Feb-10 6:20 
GeneralRe: Char and unicode Pinmemberafterburn22-Feb-10 7:54 
GeneralRemote Port PinmemberkayagG9-Mar-09 12:19 
GeneralRemote Port PinmemberMember 437021613-Apr-09 17:36 
GeneralRe: Remote Port PinmemberkayaG14-Apr-09 2:43 
QuestionHow to Upload/Download File for SFTP PinmemberGiri20013-Feb-09 11:11 
Generalworking with ssh programmatically Pinmembercaradri22-Sep-08 20:06 
GeneralClipboard request PinmemberRob Chartier10-Sep-08 14:27 
GeneralRe: Clipboard request PinmemberSardaan Frostreaver26-Dec-08 5:31 
Generalpass a command or parameter Pinmembershabonaa26-Apr-08 2:25 
Questionhow to use encoding,like utf-8,ISO8859-1... PinmemberNii Jyeni16-Nov-07 0:19 
AnswerRe: how to use encoding,like utf-8,ISO8859-1... PinmemberNii Jyeni24-Nov-07 2:19 
GeneralRe: how to use encoding,like utf-8,ISO8859-1... PinmemberSardaan Frostreaver26-Dec-08 5:31 
AnswerRe: how to use encoding,like utf-8,ISO8859-1... PinmemberRob Chartier10-Sep-08 14:26 
Questionssh command PinmemberTalc8013-Nov-07 21:58 
AnswerRe: ssh command PinmemberSardaan Frostreaver13-Nov-07 22:09 
GeneralError when trying to connect. PinmemberNathanG MG18-Oct-07 11:47 
GeneralRe: Error when trying to connect. PinmemberSardaan Frostreaver19-Oct-07 7:52 
GeneralRe: Error when trying to connect. PinmemberNathanG MG23-Oct-07 5:46 
GeneralUrgent Regarding telnet Pinmemberpraveenkumar palla18-Sep-07 21:00 
GeneralRe: Urgent Regarding telnet PinmemberSardaan Frostreaver18-Sep-07 21:24 
GeneralEnable Arrow Keys Pinmemberskirby5512-Mar-07 7:03 
GeneralRe: Enable Arrow Keys PinmemberSardaan Frostreaver13-Mar-07 7:29 
GeneralRe: Enable Arrow Keys Pinmemberskirby5513-Mar-07 7:38 
GeneralRe: Enable Arrow Keys Pinmemberskirby5513-Mar-07 13:13 
GeneralRe: Enable Arrow Keys PinmemberSardaan Frostreaver18-Sep-07 21:25 
QuestionHow to send / get command Pinmemberixpe6-Dec-06 1:29 
AnswerRe: How to send / get command Pinmemberflyers_pat6-Feb-07 10:00 
GeneralRe: How to send / get command Pinmembermichelle.mendes.almeida13-Nov-08 0:01 
QuestionRe: How to send / get command Pinmemberquadc9-Aug-10 1:55 
Generalgetting started Pinmemberajarrah20-Nov-06 7:45 
GeneralRe: getting started PinmemberSardaan Frostreaver20-Nov-06 8:17 
GeneralCompact Framework Pinmemberjgallen2327-Sep-06 20:50 
GeneralRe: Compact Framework PinmemberSardaan Frostreaver1-Nov-06 10:50 
GeneralAbout Copy & Paste.. Pinmemberckpj126-Jul-06 21:08 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150414.5 | Last Updated 14 Mar 2006
Article Copyright 2006 by Columbus-MCSD
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid