Страница 1 из 4

Как в действии по объекту анализировать документ архива

Добавлено: 27 ноя 2007, 14:37
gali
Задача такая. Из работы запускается действие. В него передается объект.
Надо узнать, есть ли у объекта файлы архива - 1.
Проанализировать, каким приложением файл сформирован - 2.
Отловить ошибку, возникающую в результате того, что требуемого для открытия приложения у юзера нет - 3.
Открыть таки файл совместимым приложением - 4.
проще: имя_файла.doc, у юзера MS офиса нет. надо открыть опенОфисом.

Это фантастика?

Добавлено: 28 ноя 2007, 12:33
Старик Крупский
Select'ом Gali, select'ом...

Добавлено: 28 ноя 2007, 13:21
gali
Вот так, да?!
Хорошенькое дело. Все сама и сама.
Ладно. файлы, приложение - достану. Как мне узнать, что у пользователя такого приложения нет? Я с реестром не дружу.

Добавлено: 29 ноя 2007, 13:49
Юрий
А придется. Эта информация 90% случаев находится в реестре.

Добавлено: 29 ноя 2007, 14:04
gali
злые вы :)

я уже поняла, что не отвертеться.
Вопрос в том, как реализовать.
Я бы хотела так: достаю приложение, запускаю что-то внешнее с этим приложением в параметре, получаю: есть/нет.
Чем и как сделать - не знаю.

Добавлено: 29 ноя 2007, 15:54
Александр
gali я не в теме но у нас есть функция f_RegistryGetString с одной стороны а с другой тот же самый автокад в зависимости от версии может лежать в ТРЕХ разных ветках
поэтому совет простой - лезем в интернет и пытаемся понять в какой ветке можно с достоверностью в 80% искать тот или иной ключ в зависимости от версии винды версии софта и остальных ловушек дяди Билла

Добавлено: 29 ноя 2007, 16:07
gali
пытаюсь переварить

Добавлено: 29 ноя 2007, 16:14
Александр
я имею в виду что функция определяющая есть ли программа на компьютере пользователя у нас есть - а вот что с ней делать - остается вопросом - поскольку разные разработчики -кидают свои записи в реестр в случайном порядке... на сколько я представляю эту ситуацию

Добавлено: 29 ноя 2007, 16:25
gali
начнем с того, что наличие такой функции для меня открытие (мне стыдно :oops: ). Спасибо за ликбез. Пойду смотреть, что можно сделать.

Добавлено: 29 ноя 2007, 16:36
Александр
gali - не все функции описаны в документации - новые лучше искать в сопроводительных *.doc'ах к обновлениям :wink: :wink: :wink: :wink:
эта шла к 4.20 Сборка 071023

Добавлено: 06 дек 2007, 15:49
gali
еще вопрос! (я как курица, дальше своего носа не вижу :) )

допустим, выяснила, что у пользователя не установлено приложение по умолчанию.
нашла совместимое.
А ДАЛЬШЕ ЧТО?
я не нашла функции, которая бы открывала файл задаваемым мною приложением. Может, опять плохо ищу?

Добавлено: 06 дек 2007, 16:24
Юрий
Для этого нужно писать программу, которая делает поиск и запускает другое приложение. И эту программу нужно указать как приложение для всех документов.
Программе при открытии документа передается в командной строке документ.
Неудобства такого рода решения - необходимо знать как работают
приложения. В процессе написания возникает масса нюансов.
Второе неудобство - в данном случае лоция будет отслеживать открытый документ по работе данной программы, а не открытом документе. И эта программа должна закрыться только в том случае, когда закрыт документ. Тут то-же возникает масса нюансов.

Добавлено: 06 дек 2007, 16:40
gali
чем дальше в лес, тем чудесатей и чудесатей

Добавлено: 07 дек 2007, 07:46
Александр
gali - выход очевиден - только принудительное лечение...
не твое - пользователей конечно :wink:
что вы там за зоопарк развели - у этого то у этого это - мы же работаем в едином информационном пространстве - поэтому - юзеры, дорогие, придется вам всем пользоваться едиными программами, или не пользоваться ими вообще :wink: :wink: :wink:
вот и весь выход, а про вариант предложенный Юрием можешь спросить Юшкова Александра из Инфарса, да ты же была на конференции и сама видела сколько 'положительных' эмоций вызвало подобное решение

Добавлено: 07 дек 2007, 08:03
gali
Видишь ли, Александр, проблема как раз в том, что зоопарк развели МЫ, а не юзвери. В борьбе за честную жизнь снесли все не честное, покупаем по мере возможности, а остальные пока пользуются дарованным. Вот такие дела.
Нет, я не собираюсь следовать совету Юрия, зачем мне лоция, если я все буду писать сама?
Но в самой лоции можно выбрать из контекстного меню открытие файла совместимым приложением. Я всего лишь хочу воспользоваться этим приемом. Почему нет?