Добро пожаловать к нам в гости! Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Здравствуйте, решил привязать к проекту файл справки .pdf, не хочу трать время на создание .chm Сделал так: RAC_RegEnumKey "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Acrobat Reader" "1" IfEx "[RAC_Error]=1 or [RAC_Error]=-1" MessageBox "Ошибка" "Приложение Acrobat Reader не было найдено!|Данное приложение необходимо для просмотра|файлов помощи программы.|Перейти на официальный сайт Acrobat Reader?" "Да|Нет" "[ButMesBox]" If "[ButMesBox]" "=" "1" InternetLink "http://get.adobe.com/ru/reader" EndIf Else If "[RAC_Error]" "=" "0" Run "[PubDir]Руководство пользователя.pdf" "" "RunOnce" "" "" EndIf EndIf Первый кусок определяет, а есть ли у конечного пользователя Acrobat Reader - это все работает нормально. На компьютере с антивирусом плагин RAC считается трояном, не очень хорошо для репутации распространяемого ПО. Предложите замену команде RAC_RegEnumKey.
Я тут подумал, логичнее будет искать не установленное приложение в директории реестра HKEY_LOCAL_MACHINE, а в списке ассоциации расширений HKEY_CLASSES_ROOT. Мне нужно знать, есть ли у пользователя каталог .pdf Пробую: RegistryRead "HKEY_CLASSES_ROOT" "???" "[var]" ??? - что указать в секций, ".pdf" не работает.
Я не знаю точно. Нужно в интернете информацию искать, или просить что бы люди посмотрели, или устанавливать, удалять всякий разный софт и смотреть что и где какой оставляет.
Например у меня возвращает STDUViewerFile.PDF при обращении
Мне нужно знать, есть ли у пользователя каталог .pdf Пробую: RegistryRead "HKEY_CLASSES_ROOT" "???" "[var]" ??? - что указать в секций, ".pdf" не работает
Добавь в конец секции реестра слеш - \
Код
RegistryRead "HKEY_CLASSES_ROOT" ".pdf\" "[var]"
"Вы знаете, нам очень понравились все варианты, что вы прислали. Даже не знаем, что выбрать… А может попробуем объединить все три логотипа в один?"
Сообщение отредактировано anton - Вт, 24 Июня 2014, 19:58
Простенький итог выше изложенного: 1) поиск программы читалки pdf 2) запуск Руководство пользователя.pdf
Код
If "[pdf_app]" "<>" "" Return EndIf ClearVariables "LastError" RegistryRead "HKEY_CLASSES_ROOT" ".pdf\" "[pdf]" IfEx "[pdf] = [#34][#34] OR [LastError] <> [#34][#34]" MessageBox "Ошибка" "Приложение для чтения PDF-файлов не найдено!|Перейти на официальный сайт Acrobat Reader?" "Да|Нет" "[ButMesBox]" If "[ButMesBox]" "=" "1" InternetLink "http://get.adobe.com/ru/reader" EndIf Return EndIf ClearVariables "LastError" RegistryRead "HKEY_CLASSES_ROOT" "[pdf]\shell\open\command\" "[pdf_app]" IfEx "[pdf_app] = [#34][#34] OR [LastError] <> [#34][#34]" ...Приложение для чтения PDF-файлов не найдено Return EndIf StrReplace "[pdf_app]" "%1" "" "[pdf_app]" "" StrReplace "[pdf_app]" "[#34]" "" "[pdf_app]" "" FileExists "[pdf_app]" "[ok]" If "[ok]" "=" "False" ...Приложение для чтения PDF-файлов не найдено Return EndIf Run "[pdf_app]" "[PubDir]Руководство пользователя.pdf" "Normal" "" ""
Если программа нашлась, то [pdf_app] сохранить
Добавлено (25 Июня 2014, 00:33) --------------------------------------------- да кстати по поводу ассоциации расширений... Где то мельком читал, что в 8 винде не все гладко... То ли (.pdf) нет, то ли во всех (.*) такого(по умолчанию) вроде нет, и/или там всегда пусто Врать не буду, не помню точно, пишу чтоб был в курсе этого нюанса ну и в гугле уточни. Если найдешь, то ситуацию опиши тут --------------------------------------------- маленький пример)
Можете попробовать воспользоваться командой zmOpenWithDefault "" ""
Это самый удобный и корректный, на мой взгляд, вариант. Важно ведь еще, чтобы пользователю не навязывали какую-то конкретную программу для просмотра PDF. Например, у меня по умолчанию стоит SumatraPDF, я бы хотел, чтобы файл справки открывался именно с ее помощью. Либо, если без плагина, нужно проверять в реестре какая программа установлена по умолчанию и запускать именно ее. Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
Сообщение отредактировано Вадим - Ср, 25 Июня 2014, 08:42
Вспомнил тут про фичи - "диалоговое окно "Открыть с помощью..."" и "Открыть программой по умолчанию" Если все можно сделать средствами НБ, то плагин только ради этого, будет лишний))) Можно дополнить пример выше еще и этими командами 1) Открыть программой по умолчанию
Код
If "[file]" "<>" "" Run "Explorer.exe" "[#34][file][#34]" "Normal" "" "" EndIf
2)Вызвать диалоговое окно - "Открыть с помощью..."
Код
If "[file]" "<>" "" Run "rundll32.exe" "shell32.dll,OpenAs_RunDLL [file]" "Normal" "" "" EndIf
,
Для поиска: Тему может переименовать типа - открыть файл программой по умолчанию средствами НБ - ассоциация и открытие файла программой по умолчанию - и т.д. ... Тема как раз решает этот вопрос, а не - Работа с реестром (Проблемные плагины на которые ругаются антивирусники)
Сообщение отредактировано Сергей - Ср, 25 Июня 2014, 20:48
Ну так правильно, параметр запуска. False или нет, по факту должен запускаться. катился колобок по лесу пел песню он закрыв глаза а как с открытыми катиться когда ты катишься лицом