Autorun
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Я было подумал, что с /SAVE:4/8/12 центрирование будет происходить само собой, но что-то у меня вообще ничего не подхватывается:Loopback писал(а):Но в любом случае, если включить сохранение позиций, оно будет перекрывать эту настройку. И это последнее
Код: Выделить всё
# Сохранение высоты "Определить цвета для типов файлов":
AddDialog /SAVE:8 "TDlgCustomColors"
AddCondition /TEXT /VISIBLE:1 "Определить цвета для типов файлов"
# Сохранение размеров "Внутренние ассоциации":
AddDialog /SAVE:12 "TDlgCustomColors"
AddCondition /TEXT /VISIBLE:1 "Внутренние ассоциации"
# Увеличение и сохранение высоты "Добавить выделение":
AddDialog /H:200 /SAVE:8 "TCOMBOINPUT"
AddCondition /TEXT /VISIBLE:1 "Добавить выделение"
AddControl /H:200 "TMyListBox" 1
# Измение и сохранение высоты диалога "Фильтр...":
AddDialog /H:200 /SAVE:8 "TCOMBOINPUT"
AddCondition /TEXT /VISIBLE:1 "Total Commander"
AddControl /H:200 "TMyListBox" 1
# Сохранение размеров "Выбор команды":
AddDialog /SAVE:12 "TCmdSelForm"
# Сохранение размеров "Файловые ассоциации":
AddDialog /SAVE:12 "TASSOCIATEDLG"
AddCondition /TEXT /PARENT "TMyPanel" 1 "Плагины"
AddDialog /SAVE:12 "TASSOCIATEDLG"
AddCondition /TEXT /PARENT "TMyPanel" 1 "Правка/Просмотр"
AddDialog /SAVE:12 "TASSOCIATEDLG"
# Сохранение размеров "Плагины файловой системы"
AddDialog /SAVE:12 "TFsPluginConfigForm"
AddCondition /TEXT /VISIBLE:1 "Плагины файловой системы"
# Сохранение размеров "Плагины внутреннего просмотрщика"
AddDialog /SAVE:12 "TFsPluginConfigForm"
AddCondition /TEXT /VISIBLE:1 "Плагины внутреннего просмотрщика"
# Сохранение размеров "Информационные плагины"
AddDialog /SAVE:12 "TFsPluginConfigForm"
AddCondition /TEXT /VISIBLE:1 "Информационные плагины"Насчёт "последнее" — а больше и не надо. И так выше крыши.
Главное, чтобы работало.
Точно. Я наивно скопипастил класс у первого чекбокса. ) Спасибо. Исправил в сообщении — теперь порядок.Loopback писал(а):Там класс "TCheckBox", а не "TMyCheckBox" должен быть.
Add: Хотя нет... На относительно голом ТС работает, а на моём — нет, + отламывается TGroupBox.
ОК.Loopback писал(а):Попробую поставить ожидание комбобокса вместо чекбокса.
С этой проблемой сталкивался ещё в далёком 2011 и даже не надеялся, что без полноценного закрытия ТС это возможно исправить.Loopback писал(а):все равно хотелось бы понять, почему вообще такая проблема возникает, когда Autorun запускается, но не загружает подплагин.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Причем в сообщениях, как я понимаю, правильные полные пути?Avada писал(а):Но, что интересно, с тестовой версией Autorun появляются только сообщения о загрузке библиотек, ошибки не выводятся, диалог копирования изменяется правильно.
Такое впечатление, что сообщение создает задержку из-за которой начинает все работать. Но инициализация функций плагинов происходит последовательно, и пока они все не загрузятся, скрипт Autorun дальше не пойдет.
Похоже, проблема возникает, если еще до конца не выгрузилась предыдущая версия TC, но я не понимаю, как это может влиять, особенно учитывая то, что версии разной битности и загружают свои версии плагина.
Loopback
Да, в сообщениях абсолютно правильные и полные пути. А идея о задержке приходила в голову и мне. Что, в скрипте для перезапуска надо задержку где-то попробовать увеличить? И почему эта карусель зависит от местоположения?
Со скриптом уже поигрался. Sleep(100) — нормально проходит первое переключение на x64 с 32-битного TC, но вылезают ошибки при возврате к прежней битности. Sleep(120) — вроде теперь всё нормально. Но буду ещё смотреть, в том числе на другой машине.
Да, в сообщениях абсолютно правильные и полные пути. А идея о задержке приходила в голову и мне. Что, в скрипте для перезапуска надо задержку где-то попробовать увеличить? И почему эта карусель зависит от местоположения?
Со скриптом уже поигрался. Sleep(100) — нормально проходит первое переключение на x64 с 32-битного TC, но вылезают ошибки при возврате к прежней битности. Sleep(120) — вроде теперь всё нормально. Но буду ещё смотреть, в том числе на другой машине.
Последний раз редактировалось Avada Вт мар 05, 2019 12:30, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Не представит себе наши безобразия.
Нет, такого не предполагалось.Flasher писал(а):Я было подумал, что с /SAVE:4/8/12 центрирование будет происходить само собой
Ну как минимум, неправильно используешь функцию AddConditionFlasher писал(а):Что делаю не так?
Код: Выделить всё
AddCondition /TEXT /VISIBLE:1 "Определить цвета для типов файлов" Код: Выделить всё
AddCondition /TEXT "TDlgCustomColors" 0 "Определить цвета для типов файлов" Код: Выделить всё
AddCondition /TEXT "" 0 "Определить цвета для типов файлов"
Даже так. Ну я пока тоже не надеюсь, пока не смогу повторить у себя. Даже дебажку сделать сложно, пока не понимаешь где хоть примерно может быть проблема.Flasher писал(а):С этой проблемой сталкивался ещё в далёком 2011 и даже не надеялся, что без полноценного закрытия ТС это возможно исправить.
Если бы я это знал, то наверно уже мог бы приступить к исправлениюAvada писал(а):И почему эта карусель зависит от местоположения?
Вечером набросаю скриптик для перезапуска с ожиданием полного завершения процесса тотала. Чтобы хоть убедиться, что это действительно зависит от полной выгрузки процесса.Avada писал(а): Тогда прошу конкретных рекомендаций,
Дополнение видел, скорее всего да, зависимость от полной выгрузки (закрытие окна не означает полной выгрузки процесса).
Ясно. Жду опции.Loopback писал(а):Нет, такого не предполагалось.
ОК. Убрал везде /VISIBLE:1. Не обратил внимания на '|' в синтаксисе.Loopback писал(а):/TEXT и /VISIBLE: - вместе не используются.
Посчитал, раз он задан в AddDialog, то повторно его писать не требуется в отличии от /PARENT.Loopback писал(а):Во-вторых, где класс/экземпляр контрола, для которого создается условие?
Всюду добавил "" 0 после /TEXT — по нулям.Loopback писал(а):На самом деле, должно работать и с пустым именем класса:
Так в командах и твои примеры с TASSOCIATEDLG есть — не работает.Loopback писал(а):Ну как минимум, неправильно используешь функцию AddCondition
Это точно. Без подсказки бы не разобрался.Loopback писал(а):Это надо документировать.
Верно. Там нужен ProcessWaitClose. Вот упрощённый вариант.Loopback писал(а):закрытие окна не означает полной выгрузки процесса
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
В принципе правильно посчитал, но были недокументированные нюансы.Flasher писал(а):Посчитал, раз он задан в AddDialog, то повторно его писать не требуется в отличии от /PARENT.
Да, тут была ошибка, причем в самом Autorun, из плагина не работали пустые параметры "" (до этого, похоже, такие нигде в плагинах не встречались). Так что выложу и исправленную версию Autorun.Flasher писал(а):Всюду добавил "" 0 после /TEXT — по нулям.
У меня работали, но тут в перечислении диалогов была одна глупая ошибка, думаю после исправления все будет ок.Flasher писал(а):Так в командах и твои примеры с TASSOCIATEDLG есть — не работает.
Примерно то, что и я бы написал. Хорошо, тогда я этим не занимаюсь.Flasher писал(а): Вот упрощённый вариант.
Добавлено спустя 1 час 26 минут:
Сегодняшняя версия.
+ добавлено центрирование диалогов
- исправил ошибку в коде различения диалогов
- определение нажатия на Опции путем обнаружения появления 3 экземпляра комбобокса, возможно, это улучшит стабильность
Также обнаружилась ошибка в самом Autorun, поэтому для нормальной работы MoveButton желательно обновить и его.
- исправлена работа с пустыми параметрами из субплагинов
+ добавлены многострочные комментарии #[ .. #].
+ добавлена функция таймера для проверки производительности
Многострочных комментариев мне давно не хватало, особенно остро это встало когда появилась куча AddDialog и т.д. Что-то я обязательно добавлю, но вот с форматом не уверен. Сейчас сделал #[ .. #], но как-то вводится не очень интуитивно. Думаю еще про вариант #{ #}, мне кажется немного лучше. Хотя можно и как в Autoit #cs #ce.
Loopback
Да, теперь всё заработало. Комбобокс теперь тоже не глючит. Проверил на нескольких диалогах с добавкой центрирования. Всё просто потрясно!
Кнопки в "Добавить выделение/Фильтр..." перемещу — и всё супер будет.
И всё-таки один диалог таки сбрасывается после использования Win+Left/Right:
И не очень понял:
Да, теперь всё заработало. Комбобокс теперь тоже не глючит. Проверил на нескольких диалогах с добавкой центрирования. Всё просто потрясно!
Кнопки в "Добавить выделение/Фильтр..." перемещу — и всё супер будет.
И всё-таки один диалог таки сбрасывается после использования Win+Left/Right:
Код: Выделить всё
# Сохранение размеров "Выбор команды":
AddDialog /CENTER:3 /SAVE:12 "TCmdSelForm"Разве это логично? ТС же остаётся родителем. Просто интересуюсь, т.к. меня более чем устраивает центровка относительно главного окна по /CENTER:3.Если окно открывается из главного окна Total Commander, то при использовании флага 4 диалог будет отцентрирован относительно «Рабочего стола».
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Почему к главному-то, если должно быть к диалогу?Loopback писал(а):а родительским к главному окну - десктоп.

Что по глюку с "Выбор команды"?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ну ок, соглашусь, если смотреть чисто по структуре может не очень логично. Просто иначе использование 4 для диалогов из главного окна вообще ничего не дает. А так какая-то смысловая нагрузка. Могу и убрать.Flasher писал(а):Почему к главному-то, если должно быть к диалогу?
Код: Выделить всё
Desktop
- Total Commander
- Dialog1
- Options
- Dialog2
Dialog1 с ключом 4 центрируется относительно Desktop
Dialog2 без ключа 4 центрируется относительно Total Commander
Dialog2 с ключом 4 центрируется относительно Options
Пропустил, слишком много сегодня писанины. Скорее всего потому, что его позиция сохраняется самим тоталом.Flasher писал(а):Что по глюку с "Выбор команды"?
А Win+Left/Right у меня ничего не делают вообще.
Loopback
Вроде говорили что все исправимо, а у меня получается криво.

Posted after 15 minutes:
Я понимаю что 2 человека в этой ветке понимают, но может и остальным расскажите в какой файл эти строки ложить надо??
Перечитал хелп, но нет основного - куда блин это вписать?
Вроде говорили что все исправимо, а у меня получается криво.

Posted after 15 minutes:
Я понимаю что 2 человека в этой ветке понимают, но может и остальным расскажите в какой файл эти строки ложить надо??
Код: Выделить всё
AddDialog /W:-70 "DIALOG_COPYMOVE"
# Первый выпадающий список:
AddControl /W:-64 "TMyComboBox" 2
# Второй выпадающий список:
AddControl /W:-72 "TMyComboBox" 1
# Кнопка-флажок "С проверкой MD5":
AddControl /X:-67 "TMyCheckBox" 1 Как же не даёт? Оно будет сохранять, что важно, привязку к окнам ТС:Loopback писал(а):Просто иначе использование 4 для диалогов из главного окна вообще ничего не дает.
Код: Выделить всё
Dialog1/2 без ключа 4 центрируется относительно Total Commander
Dialog1 с ключом 4 центрируется относительно Total Commander
Dialog2 с ключом 4 центрируется относительно OptionsИ это не обойти (ожиданием отрисовки, например)? Дело в том, что ТС сам не запоминает размер и позицию с флагом развёрнутости.Loopback писал(а):Скорее всего потому, что его позиция сохраняется самим тоталом.
А должны, если у тебя Win7+, и ты их в реестре не заблокировал параметром:Loopback писал(а):А Win+Left/Right у меня ничего не делают вообще.
Код: Выделить всё
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DisabledHotkeysРазве мой пример с учётом всех последних правок плагина даёт такой результат? Очевидно, что нет.rk2019 писал(а):Вроде говорили что все исправимо, а у меня получается криво.
Ну, как минимум, 3, и то, потому, что обсуждают. Остальные смыслящие тихо, как это чаще бывает, ждут развязки.rk2019 писал(а):Я понимаю что 2 человека в этой ветке понимают, но может и остальным расскажите в какой файл эти строки ложить надо??
В справке "help_ru.chm" на странице "Установка" (не говоря уж про десятки страниц топика) о каком файле идёт речь?
Вы как пришли к результату на скриншоте без правки этого файла? А других файлов настройки у плагина Autorun нет.
И надо понимать, что ценность имеют не только приведённые строки.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.