Имя: Пароль:
1C
 
v8: Узнать путь к Acrobat Reader
0 Evil-Wisp
 
18.10.10
06:46
1. Однозначно решаемо 0% (0)
2. Не уверен 0% (0)
3. "Автор не умеет пользоваться поиском..." 0% (0)
Всего мнений: 0

Здравствуйте. Подскажите способ, как на машине, из которой открывается 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) Кстати Спасибо:) На вопрос темы ответ четкий и ясный.
Независимо от того, куда вы едете — это в гору и против ветра!