Просто фразы "открыть файл" и "запустить программу" разные, вы спрашивали об открытии файла, я и дал ответ =)
Для запуска других программ используйте вызов функции из длл, вот пример подключения длл и вызова функции:
	Код:
	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.