I have two forms currently. One is "normal" and the other is set to topmost and invisible. I want the topmost form to capture all keyboard input, but the form underneath should still be operational (have methods called, values changed, have it's buttons clicked etc)

That in itself I would be happy with.

But it would be really nice if after the top form handles th input, it still has a way to pass it to the "normal" form underneath.

Well thanks for reading. Hope you can think of something

You mean like a pretend keylogger?

Yeah that could work,

but more specifically, I'd want it to capture only input intended for my application (I guess I was misleading when I said "ALL").

still, either way, I'd take right now.