EnumProcesses(DWORD* pProcessIds, DWORD cb, DWORD* pBytesReturned);
Returns a list of processes running on a system. The you can use OpenProcess to open the process object and call various functions to tell you some things about it -- depending on your security context, of course. Chek the MSDN documentation for those functions and they should point you in the right direction -- you might also want to check out some of the freely available source-code at http://www.sysinternals.com/
-- they have a lot of tools and utilities for doing low level types of things with system objects: processes, files, reg keys and the like. They make a lot of their source code available and have some relatively simple apps that provide great proof-of-concepts.