Осмелюсь предположить, что прикручивать winapi придётся однозначно, далее перечисляешь всё окна в системе (EnumWindows), по идентификатору окна получаешь идентификатор процесса(GetWindowThreadProcessId), по идентификатору процесса смотришь какой процесс его породил(PROCESSENTRY32.th32ParentProcessID), и если среди родителей окажется твоя оболочка, получаешь все необходимые тебе сведения о окне/процессе, исходя из найденных идентификаторов
Это я рассматривал только тот случай, если твоя оболочка будет запускать gui приложения имеющие "реальные" вендовые окна. Но лучше конечно перечелять все процессы в системе.