Click here to Skip to main content
15,881,715 members
Articles / Multimedia / GDI+
Article

Terminal Control Project (C# VT100 SSH Telnet)

Rate me:
Please Sign up or sign in to vote.
4.68/5 (25 votes)
14 Mar 20062 min read 321.1K   12.3K   79   68
An article on implementing Telnet and SSH, and displaying it on a VT100 Terminal Emulation control created using GDI+.

Sample Image

Introduction

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

Background

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

History

  • March 14th, uploaded the project.

License

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


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions

 
GeneralRe: getting started Pin
Columbus-MCSD20-Nov-06 7:17
Columbus-MCSD20-Nov-06 7:17 
GeneralCompact Framework Pin
jgallen2327-Sep-06 19:50
jgallen2327-Sep-06 19:50 
GeneralRe: Compact Framework Pin
Columbus-MCSD1-Nov-06 9:50
Columbus-MCSD1-Nov-06 9:50 
GeneralAbout Copy & Paste.. Pin
ckpj126-Jul-06 20:08
ckpj126-Jul-06 20:08 
GeneralRe: About Copy & Paste.. Pin
Columbus-MCSD1-Nov-06 9:48
Columbus-MCSD1-Nov-06 9:48 
GeneralGood one Pin
Geords26-May-06 1:38
Geords26-May-06 1:38 
GeneralRe: Good one Pin
Columbus-MCSD1-Nov-06 9:45
Columbus-MCSD1-Nov-06 9:45 
GeneralRe: Good one Pin
Jerry Sen28-Apr-11 0:20
Jerry Sen28-Apr-11 0:20 
Hi Sardaan & Geords,

Thanks for sharing "Terminal Control" and "Ackterm" components.

I need some precisions about the usage rights you could grant.

As no licence file is attached to your source package, I need your agreement to use or distribute "Terminal control" and "Ackterm".

Are you agree if your codes are used under LGPL, "Apache" or "Code Project" licence conditions ?

I know that a more recent version of "Terminal Control" was released under CPOL licence but, currently, I do not plan to redesign my software and I try to define and join a licence.

Thanks.
GeneralKudos Pin
cbanks777713-May-06 10:00
cbanks777713-May-06 10:00 
GeneralRe: Kudos Pin
Columbus-MCSD1-Nov-06 9:47
Columbus-MCSD1-Nov-06 9:47 
GeneralPutty and little fault Pin
Mig8909-Apr-06 21:07
Mig8909-Apr-06 21:07 
GeneralRe: Putty and little fault Pin
Columbus-MCSD10-Apr-06 5:28
Columbus-MCSD10-Apr-06 5:28 
GeneralCompile well in .Net Framework 2.0 and SharpDevelop 2.0 Pin
eridur2-Apr-06 13:20
eridur2-Apr-06 13:20 
GeneralRe: Compile well in .Net Framework 2.0 and SharpDevelop 2.0 Pin
Columbus-MCSD3-Apr-06 5:20
Columbus-MCSD3-Apr-06 5:20 
GeneralPuTTY already solves the problem Pin
GFeldman23-Mar-06 4:03
GFeldman23-Mar-06 4:03 
GeneralRe: PuTTY already solves the problem Pin
Columbus-MCSD23-Mar-06 5:56
Columbus-MCSD23-Mar-06 5:56 
GeneralRe: PuTTY already solves the problem Pin
normanr23-Mar-06 8:56
normanr23-Mar-06 8:56 
GeneralRe: PuTTY already solves the problem Pin
john_31616-Apr-07 6:27
john_31616-Apr-07 6:27 
GeneralRe: PuTTY already solves the problem Pin
normanr16-Apr-07 9:05
normanr16-Apr-07 9:05 

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.