Not an answer, just throwing out a few ideas..
Not know what OS you are using (flavour of windows I should say, but its probably >16bit version), I don't know if there are differnt methods for different OS's.
Your idea of reading the system task list is close to as good as you get.
There is some example code in the Windows SDK that creates a list of currently running processes / tasks.
The only problem I could think of is that for the example of XP, the '16 Bit App' is run by another process (NTVDM ??) which then runs another process, which runs another process etc. I can't remember if the application name is even listed in the task list.
(Where is a 16 bit application when you need one...)
I can't actually check that at the moment (quickly).
If you have a c
opy of the lastest Windows SDK, do a search for "Introduction to Monitoring and Managing Windows Processes"
and that will take you to the link, (bypassing the 500 or so hits you get if you enter just Processes)
Hope this helps,
Regards
Chris