Как не запоминать профиль, переданный ключом /p по завершению сеанса?

Автор Тема: Как не запоминать профиль, переданный ключом /p по завершению сеанса?  (Прочитано 8928 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
BAT-файл последовательно выполняет Unit Tests в нужных мне версиях AutoCAD и в специальном каталоге сохраняет отчёты по результатам тестов (по каждому AutoCAD свой HTML-отчёт). Во время работы происходит запуск каждого AutoCAD следующим образом:
call "%ProgramFiles%\Autodesk\AutoCAD 2015\acad.exe" /b startup-2015.scr  /p ".\acad-test-profile.arg" /nologoВ подключаемом профиле переменная NEXTFIBERWORLD установлена в 0 (это необходимо для возможности запуска тестов NUnit в AutoCAD 2011-2014; тесты Gallio обходятся без этого).

Мне нужно, чтобы AutoCAD не сохранял обозначенный профиль текущим по завершению сеанса работы. Сейчас, если я открываю AutoCAD, то текущим является acad-test-profile. Насколько я понимаю, иного способа заблаговременно изменить переменную NEXTFIBERWORLD нет (разве что в реестр лезть)...

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Единстаенный вариант - сохранять "до" и восстанавливать "после" соответствующую ветку реестра.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Ветку? По-моему, достаточно значения ветки HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\RXX.X\ACAD-YYYY:YYYProfiles ; ключ "@" - вроде бы там записывается имя последнего активированного профиля. Правда, читать его лучше перед запуском ACAD'a, а менять обратно уже после закрытия процесса acad.exe.
NEXTFIBERWORLD, насколько я помню, хранится в профиле, так что тут будет проще.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Дима_

  • ADN Club
  • ****
  • Сообщений: 473
  • Карма: 66
Еще возможно подойдет консоль.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Неа. Консоль исползует профиль AutoCAD.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Я в курсе про вариант с реестром. Однако это ещё тот костыль.

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Подозреваю, что иного пути нет.
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
В AutoCAD (а не в AcCoreConsole) можно переключать профиль через ActiveX (если не изменяет память, а проверить сейчас не могу).
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей Кулик

  • Administrator
  • *****
  • Сообщений: 1115
  • Карма: 173
Все, что сказано - личное мнение.

Правила форума существуют не просто так!

Приводя в сообщении код, не забывайте про его форматирование!

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
В AutoCAD (а не в AcCoreConsole) можно переключать профиль через ActiveX.
Проблема в том, что запуская acad.exe с ключом /p я не имею возможности узнать, какой профиль был текущим до этого, дабы при завершении сеанса сделать его текущим снова. Чтобы узнать это придётся предварительно (до запуска acad.exe) лезть в реестр и запоминать имя текущего профиля - очень не хотелось бы из кода BAT-файла лезть в реестр. Переключить профиль из кода .net-расширения - не проблема, главное знать, на какой переключать.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Проблема в том, что запуская acad.exe с ключом /p я не имею возможности узнать, какой профиль был текущим до этого
Именно. Внутри AutoCAD ты это не узнаешь.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Напиши консольную утилиту, которая запускает AutoCAD, предварительно сохранив активный профиль, а по завершении восстановив его. Это будет самое надежное решение.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей БушманАвтор темы

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Напиши консольную утилиту, которая запускает AutoCAD, предварительно сохранив активный профиль, а по завершении восстановив его. Это будет самое надежное решение.
это и так понятно. я уточнял, дабы не изобретать велосипед.