I should say that the first thing I considered was to use EnumProcesses or CreateToolhelp32Snapshot and enumerate all running processes.
Then see if there's processes running with the same path, but I also seem to recall you can only get that kind of information when you run elevated (have to verify to be sure).
Another side effect is that checking it this way might be more resource intensive then you'd want, it certainly is something to consider and investigate though.