Как найти путь к установленной определенной версии Компас 3D?

Автор feron, 27.10.20, 13:35:56

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

feron

Приветствую,
не как не могу найти путь к установленной определенной версии Компас 3D программно..
Рассматриваемый случай такой: В системе установлены несколько версий Компаса (какая установлена последней не известно). Установка может быть в любую папку.

1) Сделал снимки реестра при различных порядков установок увидел что конечная установка затирает все предыдущие записи. но есть не тронутые ключи
в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\
в ней есть все, кроме строки "InstallLocation"="" - почему то пустая и все, других строк нет с путями.
(есть путь инсталлеру "C:\\Windows\\Installer\\cDa8d4.msi")

2) WinApi тоже вернул пустую строку MsiEnumProducts/MsiGetProductInfo/INSTALLLOCATION/INSTALLPROPERTY_INSTALLLOCATION

Решил поэкспериментировать и запустил инсталлер предыдущей установки - он без проблем нашел путь к установленной программе, как он нашел его?


feron

попадаются такие организации где в одной системе стоят более 1 версии часто встречается 12LT и она почему то запускается https://forum.ascon.ru/index.php?topic=35074.0

12LT - не для предприятий и организаций.
Должна стоять одна версия, тогда и проблем будет меньше, несколько версий внештатная работа КОМПАС-3D.
Пути возвращает функция ksSystemPathW.

feron

Цитата: Sabahs от 27.10.20, 13:54:1112LT - не для предприятий и организаций.
наверно в качестве учебной версии стоит не знаю(с универов приходят)

Цитата: Sabahs от 27.10.20, 13:54:11Должна стоять одна версия, тогда и проблем будет меньше, несколько версий внештатная работа КОМПАС-3D.
да, об этом выводит соответствующее предупреждающее окно, моя задача - написать программу и адаптировать ее под всевозможный случай.
заметил что если запустить исполняемый файл и подключится к нему - то работает без каких либо ошибок
но путь не получается найти.

p3452

- Непосредственным поиском имен исполняемых файлов по дискам;
- Поиском по основным разделам реестра маски с именем:
  - программы заданной версии,
  - исполняемого файла,
  - ассоциированных, с программой, файлов.

При поиске в реестре надо помнить, что работать с реестром надо как с "деревом" используя рекурсию для вложенных веток.

feron

 p3452, спасибо. поиск - долго, хотя можно один раз запустить и сделать соответствующий конфиг файл. Или проще сделать диалоговое окно(OpenFileDialog) - выбор исполняемого файла.

решил через объект - WMI/Win32_Product - там 2 пути.