Keyboard events are delivered to the window with input focus. That's never going to be your hidden window.
if you want to catch input events the cleanest way is to use the OnMessage
event of the global Application
object. All queued messages pass through this event handler. Subscribe to it using a TApplicationEvents
instance.