Part two - source code - visual basic 6 / visual basic .net
Create a form with a text box.
Text box should be DISABLED. By disabled i mean you can't write in it.

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
Dim str As String
Dim a As String
a = ""
If Shift > 0 Then
If Shift = 1 Then
a = "shift"
ElseIf Shift = 2 Then
a = "control"
ElseIf Shift = 4 Then
a = "alt"
ElseIf Shift = 3 Then
a = "shift + control"
ElseIf Shift = 5 Then
a = "shift + alt"
ElseIf Shift = 6 Then
a = "control + alt"
End If

End If
If a <> "" Then
str = a & " + "
Else
str = ""
End If
str = str & Chr(KeyCode)
Text1.SelStart = 0
Text1.SelLength = 0
Text1.SelText = str & vbCrLf
End Sub

Private Sub Form_Load()
Text1.Top = 120
Text1.Left = 120
Me.Caption = Me.Caption & " v" & App.Major & "." & App.Minor & "." & App.Revision
Dim str As String
str = Trim(Command$)
If Len(str) > 0 Then
Me.Caption = str & " -- " & Me.Caption
End If
End Sub

Private Sub Form_Resize()
If Me.Height > 2000 Then
Text1.Height = Me.Height - 600
End If
If Me.Width > 2000 Then
Text1.Width = Me.Width - 300
End If
End Sub