Cómo detectar si el teclado en pantalla está visible
Puede utilizar la función de WinAPI IsWindowVisible.
Para Visual Basic, se ve así:
Dim hWnd As Long
hWnd = FindWindow("TMainKeyboardForm", vbNullString)
If (IsWindowVisible(hWnd)) Then ........