Как всегда - бываю редко, спрашиваю много

Итак несколько вопросов

1) Задача такая: у меня есть файл (или папка), мне нужно вывести меню Windows для этого файла (можно сказать эмуляция нажатия правой кнопки мыши на объекте - с выводом нужного меню).
2) Пишу свой компонент - что-то похожее на ListView, только под специализированные цели + дополнительные возможности. Вопрос такой - у меня есть большой модуль, в котором только одна большая функция (обработка массивов - сортировка, изменение, поиск и т.д.). Проблема в том, что если я ставлю On Error Resume Next - все работает как нужно (если компилировать в среде), но готовый EXE-шник вылетает (программа выполнила недопустимую операцию там то там то...). Убираю On error resume next и все работает... Но эту строчку убирать никак нельзя

3) Нужно работать с архивами через файлы pkunzip и др. Т.е. у меня есть такие старые досовые архиваторы, мне нужно получить из них данные - не запуская их. Возможно ли это?
Вот у Total Commander это как-то получается - ZIP архивы он открывает внутренним распковщиком, а ARJ и другие - внешним.
Понимаю, что нужно вытаскивать данные из консоли, что-то типа:
pkunzip extract \files\
Не получается

Надеюсь получить ответы хотя бы на первый и второй


С уважением.