4

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?

Mike Pateras
  • 14,715
  • 30
  • 97
  • 137

2 Answers2

2

If polling is not a problem you could use one of the approaches described in the answers to a related question:

C# Process Monitor

The suggested solutions use WMI or Windows audit process tracking mechanism.

Community
  • 1
  • 1
Dirk Vollmar
  • 172,527
  • 53
  • 255
  • 316
1

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
  • 16,165
  • 5
  • 32
  • 53
  • 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 Jan 22 '10 at 01:04