Просто фразы "открыть файл" и "запустить программу" разные, вы спрашивали об открытии файла, я и дал ответ =)
Для запуска других программ используйте вызов функции из длл, вот пример подключения длл и вызова функции:
Код:
var
lib:Integer;
Res:variant;
begin
lib := loadLibrary('User32.dll');
Res := CallFunction(lib,'GetDC',1,[0]);
CallFunction(lib,'ReleaseDC',2,[0,Res]);
FreeLibrary(lib);
end.