Click here to Skip to main content
13,195,026 members (89,817 online)
Click here to Skip to main content
Add your own
alternative version


78 bookmarked
Posted 14 Mar 2006

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

You may also be interested in...


Comments and Discussions

QuestionLicense Pin
Member 121168011-Dec-15 4:19
memberMember 121168011-Dec-15 4:19 
QuestionMay I know the about Licensing terms of this project ?? Is It Open Source ? Pin
Explicating1-Dec-15 3:37
memberExplicating1-Dec-15 3:37 
QuestionLove this! Would you be willing to add support for HTOP? Pin
Member 1123666316-Nov-14 10:25
memberMember 1123666316-Nov-14 10:25 
GeneralAWESOME! Pin
cavalin xucro12-Aug-13 8:55
membercavalin xucro12-Aug-13 8:55 
GeneralMy vote of 5 Pin
Member 1002960720-Jun-13 0:20
memberMember 1002960720-Jun-13 0:20 
GeneralMy vote of 4 Pin
Member 43208446-Jan-12 0:42
memberMember 43208446-Jan-12 0:42 
NewsArticle outdated - See follow up for this article Pin
Elmue2-Nov-11 14:42
memberElmue2-Nov-11 14:42 
Hello Columbus-MCSD

You wrote a follow-up to this article in 2007 and you forgot to put a link to your new work onto this page:
Terminal Control Library (C# VT100/ANSI/XTERM SSH Telnet)

You write there:
... This library is an attempt at creating a library based on the "Poderosa" project which IMO is the best terminal emulator.

So if you think Poderosa is better than AckTerm, why don't you inform the readers of this article about that?

But even your Poderosa article is meanwhile outdated today in 2011.

The latest version of Poderosa code can be found here:
Sourceforge Poderosa Project (latest Beta versions)
with extended functionality.

Nevertheless Poderosa is a huge project with nearly no documentation.
So it is worth studying your work too.

GeneralRe: Article outdated - See follow up for this article Pin
Member 440167615-Jan-13 10:01
memberMember 440167615-Jan-13 10:01 
GeneralPoderosa full of bugs and misdesigns Pin
Elmue16-Jan-13 5:55
memberElmue16-Jan-13 5:55 
QuestionSerial port connection Pin
falander1-Sep-11 11:08
memberfalander1-Sep-11 11:08 
AnswerRe: Serial port connection Pin
Columbus-MCSD2-Sep-11 0:20
memberColumbus-MCSD2-Sep-11 0:20 
GeneralMy vote of 5 Pin
(BlackBox) Ethical Hacker31-Oct-10 5:37
member(BlackBox) Ethical Hacker31-Oct-10 5:37 
GeneralUser authentication failed Pin
mk_bt6-Apr-10 10:42
membermk_bt6-Apr-10 10:42 
GeneralIs this source code freely available. Pin
Timothy Scott Ayers2-Mar-10 13:49
memberTimothy Scott Ayers2-Mar-10 13:49 
GeneralSSH and telnet don't seem to be working :( Pin
macgeorge5-Nov-09 19:06
membermacgeorge5-Nov-09 19:06 
QuestionRun Command Without UI Pin
mahdavi26-Jun-09 4:26
membermahdavi26-Jun-09 4:26 
GeneralChar and unicode Pin
afterburn8-Jun-09 5:01
memberafterburn8-Jun-09 5:01 
GeneralRe: Char and unicode Pin
diamond_delight22-Feb-10 5:20
memberdiamond_delight22-Feb-10 5:20 
GeneralRe: Char and unicode Pin
afterburn22-Feb-10 6:54
memberafterburn22-Feb-10 6:54 
GeneralRemote Port Pin
kayagG9-Mar-09 11:19
memberkayagG9-Mar-09 11:19 
GeneralRemote Port Pin
Member 437021613-Apr-09 16:36
memberMember 437021613-Apr-09 16:36 
GeneralRe: Remote Port Pin
kayaG14-Apr-09 1:43
memberkayaG14-Apr-09 1:43 
QuestionHow to Upload/Download File for SFTP Pin
Giri20013-Feb-09 10:11
memberGiri20013-Feb-09 10:11 
Generalworking with ssh programmatically Pin
caradri22-Sep-08 19:06
membercaradri22-Sep-08 19:06 
GeneralClipboard request Pin
Rob Chartier10-Sep-08 13:27
memberRob Chartier10-Sep-08 13:27 
GeneralRe: Clipboard request Pin
Sardaan Frostreaver26-Dec-08 4:31
memberSardaan Frostreaver26-Dec-08 4:31 
Generalpass a command or parameter Pin
shabonaa26-Apr-08 1:25
membershabonaa26-Apr-08 1:25 
Questionhow to use encoding,like utf-8,ISO8859-1... Pin
Nii Jyeni15-Nov-07 23:19
memberNii Jyeni15-Nov-07 23:19 
AnswerRe: how to use encoding,like utf-8,ISO8859-1... Pin
Nii Jyeni24-Nov-07 1:19
memberNii Jyeni24-Nov-07 1:19 
GeneralRe: how to use encoding,like utf-8,ISO8859-1... Pin
Sardaan Frostreaver26-Dec-08 4:31
memberSardaan Frostreaver26-Dec-08 4:31 
AnswerRe: how to use encoding,like utf-8,ISO8859-1... Pin
Rob Chartier10-Sep-08 13:26
memberRob Chartier10-Sep-08 13:26 
Questionssh command Pin
Talc8013-Nov-07 20:58
memberTalc8013-Nov-07 20:58 
AnswerRe: ssh command Pin
Sardaan Frostreaver13-Nov-07 21:09
memberSardaan Frostreaver13-Nov-07 21:09 
GeneralError when trying to connect. Pin
NathanG MG18-Oct-07 10:47
memberNathanG MG18-Oct-07 10:47 
GeneralRe: Error when trying to connect. Pin
Sardaan Frostreaver19-Oct-07 6:52
memberSardaan Frostreaver19-Oct-07 6:52 
GeneralRe: Error when trying to connect. Pin
NathanG MG23-Oct-07 4:46
memberNathanG MG23-Oct-07 4:46 
GeneralUrgent Regarding telnet Pin
praveenkumar palla18-Sep-07 20:00
memberpraveenkumar palla18-Sep-07 20:00 
GeneralRe: Urgent Regarding telnet Pin
Sardaan Frostreaver18-Sep-07 20:24
memberSardaan Frostreaver18-Sep-07 20:24 
GeneralEnable Arrow Keys Pin
skirby5512-Mar-07 6:03
memberskirby5512-Mar-07 6:03 
GeneralRe: Enable Arrow Keys Pin
Sardaan Frostreaver13-Mar-07 6:29
memberSardaan Frostreaver13-Mar-07 6:29 
GeneralRe: Enable Arrow Keys Pin
skirby5513-Mar-07 6:38
memberskirby5513-Mar-07 6:38 
GeneralRe: Enable Arrow Keys Pin
skirby5513-Mar-07 12:13
memberskirby5513-Mar-07 12:13 
GeneralRe: Enable Arrow Keys Pin
Sardaan Frostreaver18-Sep-07 20:25
memberSardaan Frostreaver18-Sep-07 20:25 
QuestionHow to send / get command Pin
ixpe6-Dec-06 0:29
memberixpe6-Dec-06 0:29 
AnswerRe: How to send / get command Pin
flyers_pat6-Feb-07 9:00
memberflyers_pat6-Feb-07 9:00 
GeneralRe: How to send / get command Pin
michelle.mendes.almeida12-Nov-08 23:01
membermichelle.mendes.almeida12-Nov-08 23:01 
QuestionRe: How to send / get command Pin
quadc9-Aug-10 0:55
memberquadc9-Aug-10 0:55 
Generalgetting started Pin
ajarrah20-Nov-06 6:45
memberajarrah20-Nov-06 6:45 
GeneralRe: getting started Pin
Sardaan Frostreaver20-Nov-06 7:17
memberSardaan Frostreaver20-Nov-06 7:17 
GeneralCompact Framework Pin
jgallen2327-Sep-06 19:50
memberjgallen2327-Sep-06 19:50 

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

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

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