![]() |
![]() |
![]() |
|
v8: Узнать путь к Acrobat Reader | ☑ | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0
Evil-Wisp
18.10.10
✎
06:46
|
Здравствуйте. Подскажите способ, как на машине, из которой открывается 1С (УТ) узнать установлен ли Acrobat Reader, если есть то версия 8 или больше, и путь к AcroRd32.exe.
Думаю нужно искать в рестре, но как и что? |
||||||||||
1
Tashiro
18.10.10
✎
07:18
|
Через VBS можно все
Однозначно решаемо |
||||||||||
2
miki
18.10.10
✎
07:18
|
Если чисто реестр, то можно глянуть тут:
[HKLM\SOFTWARE\Adobe\Acrobat Reader\9.0\Installer] Там есть "VersionMax" "VersionMin" "Path"= "InstallDate" "InstallTime" Но гникаких гарантий это не дает... Лучше попытаться заюзать какой-либо COM-объект. |
||||||||||
3
Tashiro
18.10.10
✎
07:22
|
+(2) Получаем Path из реестра и смотрим существование файла исполняемого, проблем то =)
|
||||||||||
4
Kolyasik
18.10.10
✎
07:24
|
регится в ком объектах... имя нада паискать...
Однозначно решаемо |
||||||||||
5
Evil-Wisp
18.10.10
✎
07:26
|
(2),(3) в папке [HKLM\SOFTWARE\Adobe\Acrobat Reader] нет пути к акробату, а есть папка 9.0 или 8.0 или т.д., То есть надо перебирать все версии, а не известно какая будет у клиента.
+ как получить Path из реестра в 1С |
||||||||||
6
miki
18.10.10
✎
07:26
|
вот какие слова выдал яндекс:
= CreateObject( "AcroExch.App" ) = CreateObject( "AcroExch.PDDoc" ) |
||||||||||
7
miki
18.10.10
✎
07:30
|
Вот ещё ключик:
[HKLM\SOFTWARE\Classes\acrobat\shell\open\command] |
||||||||||
8
miki
18.10.10
✎
07:31
|
Вот про версии:
[HKLM\SOFTWARE\Classes\AcroExch.FDFDoc\AcrobatVersion] |
||||||||||
9
Kolyasik
18.10.10
✎
07:34
|
если получишь ком объект, то там номер версии и найдешь...
хотя зачем номер версии если все равно откроется %) |
||||||||||
10
Evil-Wisp
18.10.10
✎
07:44
|
(7),(8) Это замечательно, но поделитесь умом, как из
Объект = новый COMОбъект("AcroExch.FDFDoc"); получить свойсво AcrobatVersion, ну а из другого путь соответственно. |
||||||||||
11
miki
18.10.10
✎
07:55
|
(10)это разные пути:
- пытаешься создать сомобъект - если успiх - акроридер установлен, если нет - то нет. или - читаешь инфу из реестра. |
||||||||||
12
Evil-Wisp
18.10.10
✎
07:58
|
(11)Я понимаю что разные. Мне нужен этот путь в строке из [HKLM\SOFTWARE\Classes\acrobat\shell\open\command] и номер версии из [HKLM\SOFTWARE\Classes\AcroExch.FDFDoc\AcrobatVersion].
|
||||||||||
13
smaharbA
18.10.10
✎
07:58
|
for /f "tokens=2 delims==" %i in ('assoc .pdf') do ftype %i
|
||||||||||
14
smaharbA
18.10.10
✎
07:59
|
+(13) если не накабузяканы асоциации и система
|
||||||||||
15
sapphire
18.10.10
✎
08:03
|
Нет нерешаемых задач
Однозначно решаемо |
||||||||||
16
sapphire
18.10.10
✎
08:04
|
а если другое установлено, не от Adobe, например Foxit или STDViewer?
|
||||||||||
17
Evil-Wisp
18.10.10
✎
08:08
|
(15) эт я знаю, голосовалка для привлечения внимания:)
Ребят:) подскажите как из реестра ключ считать в строку.. (16) Скажу что будет работать только под Acrobat:). Там все равно на форме элемент ActiveX "Adobe PDF Reader", который с версии 8.0 есть. |
||||||||||
18
Jstunner
18.10.10
✎
08:10
|
"Автор не умеет пользоваться поиском..." |
||||||||||
19
Tashiro
18.10.10
✎
08:34
|
WshShell = Новый COMОбъект("WScript.Shell");
Итог = WshShell.RegRead("Путь"); |
||||||||||
20
Evil-Wisp
18.10.10
✎
08:34
|
Shell = Новый COMОбъект("WScript.Shell");
ДанныеРеестра = Shell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Classes\acrobat\shell\open\command"); Выдает исключение, Неудается открыть для чтения раздер реестра. |
||||||||||
21
Tashiro
18.10.10
✎
08:36
|
попробуй HKLM вместо HKEY_LOCAL_MACHINE
|
||||||||||
22
Evil-Wisp
18.10.10
✎
08:42
|
(21) Одно и тоже. Ничего не открывает из реестра.
|
||||||||||
23
smaharbA
18.10.10
✎
08:52
|
автор пейсатель ?
|
||||||||||
24
smaharbA
18.10.10
✎
08:54
|
HKLM\SOFTWARE\Classes\acrobat\shell\open\command\
|
||||||||||
25
Evil-Wisp
18.10.10
✎
08:54
|
автор нуп, не работал с COM и реестром.
|
||||||||||
26
smaharbA
18.10.10
✎
08:57
|
(25) см (12) тама "без реестра" если чо
и см (24) внимательно |
||||||||||
27
Evil-Wisp
18.10.10
✎
08:57
|
(24) Плин спс:) открыл
|
||||||||||
28
smaharbA
18.10.10
✎
08:57
|
кстати и в (24) и тем более в (20) бредятина
|
||||||||||
29
Evil-Wisp
18.10.10
✎
09:00
|
(28) Ну там ест путь к AcroRd32.exe, отсечь параметры и надеяться что этот ключ есть во всех версиях ридера.
|
||||||||||
30
smaharbA
18.10.10
✎
09:07
|
(29) правильнее (но тоже совсем не обязательно)
ШелСкрипт = Новый COMОбъект("WScript.Shell"); КтоПДФ = ШелСкрипт.RegRead("HKCR\.pdf\"); ЧтоПДФ = ШелСкрипт.RegRead("HKCR\"+КтоПДФ+"\Shell\Open\Command\"); |
||||||||||
31
smaharbA
18.10.10
✎
09:09
|
а так mike сразу сказал, что и где
|
||||||||||
32
Evil-Wisp
18.10.10
✎
09:16
|
(30) Согласен. Но у меня на форме Есть объект Adobe PDF Reader, и когда я ставил клиенту с 7-м акробатом этот объект не захотел ПДФ отображать. Пришлось в конфигураторе создать оъект акробата из "Вставить ActiveX..." и заменить имеющийся.
То есть если пдф читается другой прогой, то смысла поиска пути к ней нет, так как все равно на форме не будет ничего отображаться. Возможно есть универсальный объект, или как нибудь создавать подходящий при запуске? |
||||||||||
33
Evil-Wisp
18.10.10
✎
09:40
|
(30),(7),(8) Кстати Спасибо:) На вопрос темы ответ четкий и ясный.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |