I don't think that we can do this without an API call in .NET
Try the following
API is
Public Declare Function GetKeyState Lib "user32" Alias "GetKeyState" (ByVal nVirtKey As Long) As Integer
And use the following code to find out the status of each key
Dim icapslock, inumlock, iscroll, iinsert As Integer
Dim msgTxt As String
icapslock = GetKeyState(&H14)
inumlock = GetKeyState(&H90)
iscroll = GetKeyState(&H91)
iinsert = GetKeyState(&H2D)
msgTxt = "CapsLock is " & IIf(icapslock = 1, "ON", "OFF"

& vbCrLf
msgTxt += "NumLock is " & IIf(inumlock = 1, "ON", "OFF"

& vbCrLf
msgTxt += "ScrollLock is " & IIf(iscroll = 1, "ON", "OFF"

& vbCrLf
msgTxt += "Insert is " & IIf(iinsert = 1, "ON", "OFF"

& vbCrLf
MessageBox.Show(msgTxt)
-Kris