Hi Yuri,
One way is to hook the WindowProc for a particular window and then monitor window messages like
WM_SYSKEYDOWN
WM_SYSCHAR
WM_KEYDOWN
...
blocking those messages from passing to the original windows procedure. It can be done with an external library (FLL, DLL, ActiveX) only.
After that I would look into SetWindowLong API function. May be setting window attributes can do the trick.