Hiding a process is a very complicated task. The easiest solution is to make your task a system service, since that will prevent the task manager from seeing your process. However, then your process can be seen from the service manager. The only other ways I know how are through brute force interception of the relevant APIs (toolhelp, PSAPI, NtQuerySystemProcess, etc.) and just not return the information about your process. For info to get you started on the latter, check out Ivo Ivanov's article in the System section of Codeguru.
*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
"It's hard to believe in something you don't understand." -- the sidhi X-files episode
galathaea: prankster, fablist, magician, liar