I am new to both window hooks and Windows 8 metro apps..
I would like to develop a background service/process that:
It is not possible to hook Windows or intercept the launching of a Metro style app from within a Metro style app itself. While it may be possible to do so with a service installed on the machine in a classic way, doing so would be totally undocumented and unsupported. You would have to reverse-engineer the app launching process to have any chance at making it work.
Check this out..
http://social.msdn.microsoft.com/Forums/en/wcf/thread/43df6c8f-f1e3-4aba-af0a-7c4e1db477b6
You can only write client applications using Metro, not server applications.
In your scenario, if you want inter-app communication, recommended way is to use 'Contracts' which are explicitly started by the user.
I'm taking a blind guess here using your 1 and 2 points. Do you intend to handle a specific file type ? say .txt or .wmv ? If this is your intention, please check here http://tozon.info/blog/post/2011/10/11/Windows-8-Metro-declarations-File-Type-Associations.aspx There's also a good set of MSDN documentation about this.
You may use API hooking. Check this thread: http://forum.nektra.com/forum/viewtopic.php?f=9&t=6228