Es gäb noch ne mäglichkeit in der der Fokus egal ist:
Und zwar gibt es die Win32-API-Funktion "GetAsyncKeyState" mit der man jeder Zeit den Zustand einer Taste abfragen kann, man müsste dann im Hintergrund in einem extra Thread oder mit nem Timer immer die Tasten abfragen die in Frage kommen.
Deklaration:
Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer

[edit] Hier ein Beispiel: http://www.activevb.de/tipps/vb6tipps/tipp0070.html [/edit]

mfG
LowLeveL