I am developing an utility which protects freshly activated windows and dialogs from accidental keystrokes/clicks. Like for running background administration tasks occasionally asking something and still being content to develop something in the foreground. A similar approach would be to have the background tasks running on a minimized virtual machine, another desktop or some other computer.
I am in the end phases of development and I'd like a clean solution before going public with it. Currently, I have a hybrid of event analysis from SetWinHookEvent and active monitoring - works fine. But I'd like a, as far as possible, passive-monitor solution - and I am missing the expertise for the events. I do not have confidence in their appearance "stability", time for log gathering and analysis, nor a multi-os environment.
The concept is, that I create a transparent overlay which needs unlocking, either explicitly or has a time-lock.
Here are the questions. EO and ES are the obvious shortcuts for EVENT_OBJECT/EVENT_SYSTEM prefixes. I hope I won't miss some point, please think along with me.
1. Is EO_CREATE enough to discover a new window?
1.1. What is ES_DIALOGSTART for?
2. Are EO_SHOW, EO_MINIMIZEEND enough to discover window getting focus? Maybe fortified by ES_SWITCHEND.
2.1. There is an EO_FOCUS event - is that one reliable? Would you recommend it or even consider necessary? Afaik, this happens on a control, not on a window so it makes the logic heavier.
2.2. I've never seen an ES_FOREGROUND happen?
2.3. Is ES_CAPTURESTART usable for mouse? +this always happens on a sub-hwnd, not directly on a window, right?
3. EO_DESTROY, EO_MINIMIZESTART - are enough to trigger cleaning up overlay?
3.1. How about EO_HIDE?
4. That was my trivial analysis for Win7. Any experiences with Win8? Is it consistent in usage?