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?
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.