Попробуй ShellExecute(.....). По расширению функция сама смотрит каким приложением открывать (напрямую ты к реестрам не лезешь, функция сама ищет). Насчёт Handle - есть функция, которая просматривает все открытые приложения, но что за функция не помню. Легче будет зайти на
www.codenet.ru и в форуме по Builder посмотреть. Там такая задачка мелькала.