|
Как наиболее универсально получить путь к 1cestart.exe? | ☑ | ||
---|---|---|---|---|
0
TormozIT
гуру
07.02.12
✎
02:54
|
Читал справку в конфигураторе
Читал тут http://infostart.ru/public/104469/ Читал партнерский форум Нужно получить путь к стартеру платформы (1cestart.exe) на любой ОС. Понял что вроде отсюда (на Windows 7) C:\Users\All Users\1C\1CEStart\1CEStart.cfg нужно читать (параметр InstalledLocation). Как этот путь получить? В коллекции Shell.Application.NameSpace не нашел ни C:\Users\All Users\ ни C:\Users\ |
|||
1
Дядя Васька
07.02.12
✎
03:00
|
HKEY_CLASSES_ROOT\Applications\1cestart.exe? :)
|
|||
2
TormozIT
гуру
07.02.12
✎
03:13
|
(1) Это имя ключа, а не значения системного реестра. Там нет пути к файлу.
|
|||
3
Дядя Васька
07.02.12
✎
03:17
|
[HKEY_CLASSES_ROOT\Applications\1cestart.exe\shell\open\command]
@="\"C:\\Program Files\\1cv82\\common\\1cestart.exe\" /RunShortcut \"%1\"" |
|||
4
TormozIT
гуру
07.02.12
✎
03:19
|
Вот рабочее решение (проверил на 2003 server, windows 7, windows 2008 server)
ShellApplication = Новый COMobject("Shell.Application"); ВсеЮзеры = ShellApplication.NameSpace(35).Self.Path; ИмяКонфигФайла = ВсеЮзеры + "\1C\1CEStart\1CEStart.cfg"; Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ИмяКонфигФайла); Путь = ""; Для Счетчик = 1 По СтрЧислоСтрок(Текст.ПолучитьТекст()) Цикл СтрокаТекста = СокрЛ(Текст.ПолучитьСтроку(Счетчик)); Если Найти(СтрокаТекста, "InstalledLocation") = 1 Тогда Путь = Сред(СтрокаТекста, Найти(СтрокаТекста, "=") + 1); Прервать; КонецЕсли; КонецЦикла; ИмяФайла = Путь + "\common\1cestart.exe"; Коллеги, если знаете способ короче или нашли в этом ошибку, то напишите сюда об этом |
|||
5
Дядя Васька
07.02.12
✎
03:21
|
(4) Те же яйца, только в профиль...
|
|||
6
Дядя Васька
07.02.12
✎
03:31
|
+(5) (3) Все же правильней наверное, если кому приспичит не Program Files поставить, а куда-нить в C:\1c например...
|
|||
7
TormozIT
гуру
07.02.12
✎
03:37
|
(3) Это как я понимаю для команды ОС "Open with". Если она по какой то причине не будет работать (ее кто то испортит/удалит), то платформа продолжает полноценно работать.
А вот если испортить значение параметра в указанном мной конфигурационном файле, то некоторые ее функции сломаются. На мой взгляд (3) проще и изящнее, а (4) надежнее, т.к. используется информация из документации по платформе. |
|||
8
TormozIT
гуру
07.02.12
✎
03:40
|
(3) + Есть вероятность, что другое приложение также назовет свой исполняемый файл и зарегистрирует его в этом ключе, перезаписав значение.
|
|||
9
Дядя Васька
07.02.12
✎
03:44
|
(8) Ну-ну... Примерно такая же, как если мама с папой запишут своему дитю в свидетельство о рождении имя TormozIT, ну или "дядя Вася"... А вот установить в нестандартное место могут запросто.
|
|||
10
TormozIT
гуру
07.02.12
✎
10:22
|
(9) При чем здесь нестандартное место? Оба способа устойчивы к изменению каталога установки. Еще раз хочу отметить, что платформа использует не ключ реестра из (3), а файл из (1) при определении каталога установки, правда в документации не указано для каких именно операций.
" Формат конфигурационного файла программы запуска Файл расположен в каталоге %APPDATA%\1C\1CEStart. ... InstalledLocation - содержит указание на каталог, в который выполнена установка 1С:Предприятие. По умолчанию это значение C:\Program Files\1Cv82. " |
|||
11
TormozIT
гуру
07.02.12
✎
10:28
|
(10) + Правда это другой (второй) конфигурационный файл, какой из (1) и (10) имеет больший приоритет пока не понял.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |