Редактирование параметров скрытых сообщений

Автор Тема: Редактирование параметров скрытых сообщений  (Прочитано 18149 раз)

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

Оффлайн Подшиваленко ДмитрийАвтор темы

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
создание dll поможет как мертвому припарки
Так я думал, что на C# как раз меняются настройки Автокада внутри самой среды, а уже потом при закрытии Автокада эти настройки сохраняются в FixedProfile.aws. Или не так?
Писать bat/cmd - это совсем на потом, сейчас на это пока нет времени.

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

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Если я правильно понимаю ситуацию, то: AutoCAD загружается сам, читает настройки (в т.ч. и из Profile.aws), потом загружает уже все дополнения (в т.ч. и твои .NET-dll). Срабатывает DLL, меняющая параметры в Profile.aws. Пользователь закрывает AutoCAD. Сначала срабатывает DLL, меняющая данные в Profile.aws, потом срабатывает закрытие AutoCAD, который снова записывает Profile.aws.
Подчеркиваю - если я не ошибаюсь,- то придется писать стороннее приложение, которое будет срабатывать хотя бы при авторизации пользователя в системе и которое будет менять все Profile.aws, какие только найдет. Ну или отлавливать старт приложения acad.exe.
Все, что сказано - личное мнение.

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

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

Оффлайн Подшиваленко ДмитрийАвтор темы

  • ADN Club
  • **
  • Сообщений: 64
  • Карма: 0
Алексей, что-то как-то сложно у тебя получается. Если на C# меняются настройки внутри среды AutoCAD, то, как я понимаю, можно сделать так:
1. Создаётся .dll с командой изменения параметра скрытых сообщений при большом количестве масштабов.
2. В файле acaddoc.lsp проверяется имя компа по списку, пишется "netload @@@.dll" и вызывается команда для изменения параметра, описанная в этом dll. И всё. При закрытии AutoCAD уже сам сохранит новый параметр в файл FixedProfile.aws. Файл acaddoc.lsp грузится у всех пользователей, так что не надо ничего отлавливать.
Если так не прокатит, то BAT с изменением файла FixedProfile.aws. (У всех пользователей на System Start стоит выполнение bat-файла, который я периодически правлю, туда можно дописать). Наковырял всяких xml-редакторов, надо с ними разобраться, и ещё писать функцию чтения списка компов из текстового файла.)
При этом есть ещё один момент. Как выяснилось (написал прогу для отчёта), у многих пользователей вообще не установлено значение параметра скрытых сообщений при большом количестве масштабов. То есть у них каждый раз выскакивает окошко с предложением очистить :)

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

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Да не, это я сложно написал :)
Если очень коротко и очень грубо, то ситуация в моем понимании такова:
1. Загрузка ACAD. Чтение параметров из profile.aws
2. Загрузка дополнения. Изменение profile.aws
3. Закрытие ACAD. Запись в profile.aws исходных значений.
Поэтому писать дополнение для AutoCAD, работающее на втором шаге, считаю бессмысленным. Проще нарисовать чуть ли не Windows-приложение, которое будет запускаться у определенных пользователей и менять profile.aws, вообще не привязываясь к AutoCAD.
P.S. XML-редакторы тут не нужны совсем. Создается на C# / VB.NET / F# / ... приложение, использующее достаточно стандартные средства xml-парсинга от MS, и все. Я в своих лиспах по редактированию / чтению xml никаких редакторов не использую - не нужны они ;)
P.P.S. Пользователь может сменить компьютер. А вот логин - уже тяжелее.
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Подчеркиваю - если я не ошибаюсь,- то придется писать стороннее приложение, которое будет срабатывать хотя бы при авторизации пользователя в системе и которое будет менять все Profile.aws, какие только найдет.
Зачем? Достаточно исправить FixedProfile.aws (это можно делать любыми средствами), а затем вызвать  AAIW.ProfileManager.LoadHideableDialogSettingsDictionary(); как они окажутся применёнными. Т.е. необходимости делать это во внешнем приложении нет.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

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

  • Administrator
  • *****
  • Сообщений: 1116
  • Карма: 173
Кого-кого вызвать? :) Лиспом-то? ;)
Все, что сказано - личное мнение.

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

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

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

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Кого-кого вызвать? :) Лиспом-то? ;)
Ну тут очевидно, что одним лиспом не отделаться.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение