I want to know whenever any application starts. Is there a windows message that I can set a hook for to know exactly when that happens?
views:
53answers:
2
                +1 
                A: 
                
                
              The first message sent to new windows is WM_NCCREATE. But this has nothing to do with the process itself, which is what I suspect you're asking? By definition 'window messages' will start to arrive only after you create a window (using CreateWindowEx or whatever), but that can happen long after the process has started.
You don't say what language/framework you're using. In VC++ and the like you can just use whatever passes for the WinMain function. For VB it would be a Main function in a module.
                  kprobst
                   2010-01-21 23:58:32
                
              Thank you for yoru response. If I used WM_NCCREATE, would I be able to know which process was started? It sounds like I wouldn't, from your comment. I'll be using C++ for the hook. What difference would that make?
                  Mike Pateras
                   2010-01-22 01:04:26
                
                +2 
                A: 
                
                
              If polling is not a problem you could use one of the approaches described in the answers to a related question:
The suggested solutions use WMI or Windows audit process tracking mechanism.
                  0xA3
                   2010-01-22 00:15:12
                
              Wow, I think that can work really well for what I am trying to do. Great suggestion!
                  Mike Pateras
                   2010-01-22 01:01:58