Reputation: 33918
I'm trying to reverse engineer (OllyDbg) an application (game) that disables (captures/intercepts/blocks) all global hot keys while its window (D3D) is active (except Ctrl-Alt-Del).
My question is in which ways could such application capture/disable global hot keys (including the winkey, CTRL+Esc, and global hotkeys set in other applications) while its window is active?
It seems to use DirectInput (if that matters). I see that it doesn't set any low level hooks (SetWindowsHookEx
). In which other ways could such a thing it be done?
Observations made:
RegisterHotKey
, but does not disable any hotkeys made with help of a hook (SetWindowsHookEx
).The experiment above seems to indicate that it's some setting related to the window, that works even tho the app is suspended. Could it be some kind of DirectInput setting? (Altho the only DINPUT API function call I see is DINPUT8.DirectInput8Create
.)
I'm doing this in hope of changing this behavior to make the hot keys from other applications work as usual while the games window is focused. Any ideas and tips appreciated.
Upvotes: 4
Views: 784
Reputation: 33918
Exactly as Hans Passant suggested in the comments, it was DirectInput causing this behavior, due to the DISCL_EXCLUSIVE
flag set with IDirectInputDevice8::SetCooperativeLevel
.
Upvotes: 1