Перейти к публикации

Запуск разных версий Pro/ENGINEER на одной машине


brigval

Рекомендованные сообщения

Создал тему, чтоб выделить вопрос из другой темы.

Пока данной программой не пользуюсь

жду версию 1,08

интересует такой факт.

Сам прое у меня запускается через настроенный bat файл.

Если эти переменные забить в нем, как поведет себя программа.

Не охота на каждой новой машине делать эту процедуру.

а через батник будет удобней.

Проверьте пожалуйста.

С батниками не очень дружен пока. Если дадите свой батник, проверю.

Вот пример моего батника.

Насчет передачи переменных должно получится

сам для toolkita пользовал

SET PATH=%PATH%;F:\ptc\proeWildfire5\bin

set PRO_DIRECTORY=F:\ptc\proeWildfire5

SET TEMP=G:\work\wildfire5\TEMP

SET PROSTD=F:\ptc\pro_stds_wildfire5

SET MCDATA=%PROSTD%\modchk\mcdata

SET PRO_LANG=russian

SET LANG=russian

SET PRO_MACHINE_TYPE=x86e_win64



SET HOME=G:\work\wildfire5

REM cd /D %HOME%

create_search_pro.exe 

F:\ptc\proeWildfire5\bin\proeWildfire5.bat %1 %2 %3 %4 %5 %6 %7 %8 %9

После запуска батника PRO_DIRECTORY не появилась среди переменных окружения

Предлагаю продолжить эту тему в новой теме, если захотите.

Она и не должна там появлятся.

Она объявляется только на время сеанса работы запущенного приложения в памяти.

после закрытия унижтожается.

1

В предлагаемом Вами батнике присутствует только одна переменная PRO_DIRECTORY.

Из рекомендаций для программирования следует, что должны быть еще

PFCLS_START_DIR

и

PRO_COMM_MSG_EXE

У меня нет файла create_search_pro.exe. Который, вероятно, нужен. В общем, если подготовите файл, в котором надо только поменять пути или сделать какие-то настройки, давайте его попробую. Предоставленный батник, видимо, не годен для нужного Вам эксперимента на моей машине. И я до конца не понял, что я должен наблюдать после запуска батника.

2

Попутно уточню свою задачу

Задача состоит в том, что б при загрузке программы она смогла сама добавить нужные переменные окружения так, чтоб произошло подключение этой программы к текущему, уже существующему, процессу Pro/ENGINEER (xtop.exe).

Я написал код, который определяет открытое окно Pro/ENGINEER и по нему вычисляет директорию установки загруженной версии Pro/ENGINEER. То есть, программа при запуске определяет необходимые значения для

PRO_DIRECTORY,

PFCLS_START_DIR и

PRO_COMM_MSG_EXE.

Эти переменные до момента подключения программы к Pro/ENGINEER, уже должны быть увидены Pro/ENGINEER.

Программа изменяет реестр. Судя по описанию, функция

SendMessage(HWND_BROADCAST, WM_SETTINGCHANGE, 0, "Environment")
должна оповестить все окна, в том числе и Pro/ENGINEER, о сделанных в реестре изменениях.

Идею проверить не удалось, так как функция SendMassage зависает.

Не исключено, что обсуждаемые переменные уже должны быть в реестре до запуска Pro/ENGINEER (но этого я не знаю наверняка). Тогда вопрос снимается. Так как программно определить директорию установки до запуска Pro/ENGINEER не представляется возможным.

Ссылка на сообщение
Поделиться на других сайтах


прочитал, ничего не понял. Из чего вывод: пользоваться программой, которую не понятно как запустить, не могу.

Предположение. Если программа должна сама запускать тот или иной ПроЕ, то надо просто сделать для каждого варианта свою иконку (как для каждого ПроЕ своя иконка).

Кроме того, абсолютно не согласен с подписью топикстартера. Вероятно, у него проблемы именно из-за "любого" решения.

Ссылка на сообщение
Поделиться на других сайтах

прочитал, ничего не понял. Из чего вывод: пользоваться программой, которую не понятно как запустить, не могу.

Предположение. Если программа должна сама запускать тот или иной ПроЕ, то надо просто сделать для каждого варианта свою иконку (как для каждого ПроЕ своя иконка).

Кроме того, абсолютно не согласен с подписью топикстартера. Вероятно, у него проблемы именно из-за "любого" решения.

Здесь речь идет о том, чтоб программа Тпро без учатия пользователя смогла работать с WF4, если загружен WF4 или с WF5, если загружен WF5. Сейчас, при смене версии, необходимо вручную преписывать значения системных переменных.
Ссылка на сообщение
Поделиться на других сайтах

а если у меня одновременно запущены и WF4, и WF5 ? бывает и такое.

С разными иконками для каждой версии проще. А уж лезть в системные переменные - это вообще выше моего понимания. ИМХО такого не должно быть в принципе. Ведь для разных версий ПроЕ мне никаких переменных менять не надо (как и для разных версий любых других программ), почему же Ваша "примочка" такая привередливая? Вопрос риторический, ответ не требуется. Просто так не должно быть в принципе.

Ссылка на сообщение
Поделиться на других сайтах

brigval

Зачем вам вообще эти переменные и залезание в реестр? Мне очень нравятся реестро независимые программы.

Использовать ini файлы например.

Ссылка на сообщение
Поделиться на других сайтах

Проверил сейчас в Delphi - SendMessage прошел без зависаний.

Но с точки зрения программирования как-то действительно нехорошо по окну искать путь установки. Да и редко у кого наверное стоит 2 версии WF (которые активно используются)

Ссылка на сообщение
Поделиться на других сайтах

Да и редко у кого наверное стоит 2 версии WF (которые активно используются)

Активно, да. А так все начиная с 2001 ПроЕ. Причем некоторые вовсе не прописаны в Windows, хоть и работают. Я обычно при перестановки системы, ПроЕ не переустанавливаю.
Ссылка на сообщение
Поделиться на других сайтах

Проверил сейчас в Delphi - SendMessage прошел без зависаний.

Но с точки зрения программирования как-то действительно нехорошо по окну искать путь установки. Да и редко у кого наверное стоит 2 версии WF (которые активно используются)

Если нет записей в реестре и программа не запущена, как бы Вы искали папку установки?
Ссылка на сообщение
Поделиться на других сайтах

brigval

Зачем вам вообще эти переменные и залезание в реестр? Мне очень нравятся реестро независимые программы.

Использовать ini файлы например.

Не соблюдение инструкций из руководства пользователя по программированию приведет к неработоспособности нашего приложения. А нам это надо? :smile:
Ссылка на сообщение
Поделиться на других сайтах

к неработоспособности нашего приложения

Интересно, почему. Какая разница, где брать значение переменной? Да и надежнее будет.

Ссылка на сообщение
Поделиться на других сайтах

Интересно, почему. Какая разница, где брать значение переменной? Да и надежнее будет.

Мы только выполняем инструкции разработчиков Pro/ENGINEER, чтоб наше приложение работало. Вероятно, у них были основания, чтоб сделать именно так, а не иначе.
Ссылка на сообщение
Поделиться на других сайтах

Если нет записей в реестре и программа не запущена, как бы Вы искали папку установки?

Поскольку в Windows действительно может не быть никаких ссылок в реестре на установленный WF (как в случае у Ruslan-а или просто скопирован с другой машины), то в данном случае целесообразнее наверное всё-таки не искать путь к WF самому, а заставить пользователя программы один раз настроить путь в каком-нибудь конфиге программы (через ini или в реестре - неважно) - как делают во множестве софта. Это не считается плохим тоном.

Ссылка на сообщение
Поделиться на других сайтах

Поскольку в Windows действительно может не быть никаких ссылок в реестре на установленный WF (как в случае у Ruslan-а или просто скопирован с другой машины), то в данном случае целесообразнее наверное всё-таки не искать путь к WF самому, а заставить пользователя программы один раз настроить путь в каком-нибудь конфиге программы (через ini или в реестре - неважно) - как делают во множестве софта. Это не считается плохим тоном.

Похоже, Вы правы. Думаю рассмотреть возможность сделать запуск ProE через два батника. Один, например, запускает WF4, другой - WF5. Причем каждый батник выполняет следующие операции

1

устанавливает соответствующие значения переменных окуружения, например, запуском своего REG файла

2

делает акивной нужную директорию

3

запускает ProE

В результате получаем загруженную версию ProE с ее натройками переменных окружения. А у пользователя так и так должны быть две иконки для запуска двух версий ProE.

При одновременном запуске двух версий, актуальной для внешенго приложения будет последняя запущенная.

Если такой вариант заработает, то он меня полностью устроит.

Кажется, задача свелась к батникам zeppelin :smile:

Правда, есть еще один момент. Для каждой версии должен быть запущен свой vb_api_register.bat...

Ссылка на сообщение
Поделиться на других сайтах

Что-то вроде этого. Я сам тоже Proe через бат-файл запускаю ) Только пару комментариев:

... устанавливает соответствующие значения переменных окружения, например, запуском своего REG файла

Зачем же Reg файл, если при использовании батника можно юзать SET ПЕРЕМЕННАЯ= перед запуском Proe

... А у пользователя так и так должны быть две иконки для запуска двух версий ProE.

Зачем же обижать Ruslan-а, у которого 5 версий Proe? )) Возможно по-русски будет сделать выпадающий список с версиями, при выборе из которого генерить соответствующий батник? Впрочем это уже частности.

Ссылка на сообщение
Поделиться на других сайтах

Зачем же Reg файл, если при использовании батника можно юзать SET ПЕРЕМЕННАЯ= перед запуском Proe

Откровенно говоря, с батниками не работал. Как-то не пришлось. Конечно, лучше заложить установку значений переменных в сам батник.

Возможно по-русски будет сделать выпадающий список с версиями, при выборе из которого генерить соответствующий батник? Впрочем это уже частности.

Тоже вариант... )

До кучи. Еще можно добавить поиск всех версий установленных на машине. Только времени может занимать много.

Ссылка на сообщение
Поделиться на других сайтах

Еще можно добавить поиск всех версий установленных на машине. Только времени может занимать много.

А на что собираетесь ориентироваться при поиске всех версий?

Ссылка на сообщение
Поделиться на других сайтах

А на что собираетесь ориентироваться при поиске всех версий?

На файл proe.exe можно. А от него все остальные пути найти.

Для запуска внешенего приложения на VB6 в папке obj должен быть файл pfclscom.exe. Можно и его искать...

Да я не собираюсь. Просто вариант.

Ссылка на сообщение
Поделиться на других сайтах

На файл proe.exe можно. А от него все остальные пути найти.

Для запуска внешенего приложения на VB6 в папке obj должен быть файл pfclscom.exe. Можно и его искать...

Да я не собираюсь. Просто вариант.

Да и я чисто теоретически. Просто интересно - ну найден допустим файл proe.exe (кстати в proe2001 его нет, лучше искать xtop.exe) в какой-то папке. От него нашли разумеется все пути. А вот как узнать к какой именно версии мы нашли пути - 3,4 или 5? Собственно можно из xtop.exe вытащить ProductVersion (PTC любезно его заполняет) - допустим "WildFire 5.0". Или есть способы полегче?

Ссылка на сообщение
Поделиться на других сайтах

Да и я чисто теоретически. Просто интересно - ну найден допустим файл proe.exe (кстати в proe2001 его нет, лучше искать xtop.exe) в какой-то папке. От него нашли разумеется все пути. А вот как узнать к какой именно версии мы нашли пути - 3,4 или 5? Собственно можно из xtop.exe вытащить ProductVersion (PTC любезно его заполняет) - допустим "WildFire 5.0". Или есть способы полегче?

Думаю, можно воспользоваться свойствами/именами файлов, в первую очередь. Многие пользователи указывают версию в именах папок. Тоже можно анализировать... или предписать...
Ссылка на сообщение
Поделиться на других сайтах

я, вообще-то, всегда считал, что приложение должно запускаться из уже работающей программы, а вовсе не наоборот (когда приложение запускает программу). Т.е. если хочешь в чертеже использовать эту "чертёжную примочку", то и запускать её надо при помощи иконки или команды из режима чертежа самого ПроЕ.

Всегда восхищает "логика" программеров!

При этом, "примочка" не должна затрагивать НИКАКИЕ настройки ПроЕ. Категорически! И не добавлять ничего нового - никакой отсебятины в настройки.

Также, как уже говорилось, всё, сделанное при помощи этой "примочки" должно быть доступно для редактирования штатными средствами ПроЕ без использования "пирмочки".

Иными словами, "пирмочка" должна быть автономной и никоим образом не влияющей на работу ПроЕ. Она должна только выполнять свои функции, не вмешиваясь в функции и настройки ПроЕ.

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...