Как определить, видна ли экранная клавиатура
Вы можете использовать функцию WinAPI IsWindowVisible.
Для Visual Basic это выглядит так:
Dim hWnd As Long
hWnd = FindWindow("TMainKeyboardForm", vbNullString)
If (IsWindowVisible(hWnd)) Then ........