Autorun

Обсуждение только плагинов и утилит для Total Commander.

Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер

Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Loopback
Там дальше у меня была позднейшая дописка, когда заработало, а когда нет. Так что готов к дальнейшему обсуждению.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Но в любом случае, если включить сохранение позиций, оно будет перекрывать эту настройку. И это последнее
Я было подумал, что с /SAVE:4/8/12 центрирование будет происходить само собой, но что-то у меня вообще ничего не подхватывается:

Код: Выделить всё

# Сохранение высоты "Определить цвета для типов файлов":
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 "Информационные плагины"
Что делаю не так?
Насчёт "последнее" — а больше и не надо. И так выше крыши. :D
Главное, чтобы работало.
Loopback писал(а):Там класс "TCheckBox", а не "TMyCheckBox" должен быть.
Точно. Я наивно скопипастил класс у первого чекбокса. ) Спасибо. Исправил в сообщении — теперь порядок.
Add: Хотя нет... На относительно голом ТС работает, а на моём — нет, + отламывается TGroupBox. :(
Loopback писал(а):Попробую поставить ожидание комбобокса вместо чекбокса.
ОК.
Loopback писал(а):все равно хотелось бы понять, почему вообще такая проблема возникает, когда Autorun запускается, но не загружает подплагин.
С этой проблемой сталкивался ещё в далёком 2011 и даже не надеялся, что без полноценного закрытия ТС это возможно исправить.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Avada писал(а):Но, что интересно, с тестовой версией Autorun появляются только сообщения о загрузке библиотек, ошибки не выводятся, диалог копирования изменяется правильно.
Причем в сообщениях, как я понимаю, правильные полные пути?

Такое впечатление, что сообщение создает задержку из-за которой начинает все работать. Но инициализация функций плагинов происходит последовательно, и пока они все не загрузятся, скрипт Autorun дальше не пойдет.

Похоже, проблема возникает, если еще до конца не выгрузилась предыдущая версия TC, но я не понимаю, как это может влиять, особенно учитывая то, что версии разной битности и загружают свои версии плагина.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Loopback
Да, в сообщениях абсолютно правильные и полные пути. А идея о задержке приходила в голову и мне. Что, в скрипте для перезапуска надо задержку где-то попробовать увеличить? И почему эта карусель зависит от местоположения?

Со скриптом уже поигрался. Sleep(100) — нормально проходит первое переключение на x64 с 32-битного TC, но вылезают ошибки при возврате к прежней битности. Sleep(120) — вроде теперь всё нормально. Но буду ещё смотреть, в том числе на другой машине.
Последний раз редактировалось Avada Вт мар 05, 2019 12:30, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Я было подумал, что с /SAVE:4/8/12 центрирование будет происходить само собой
Нет, такого не предполагалось.
Flasher писал(а):Что делаю не так?
Ну как минимум, неправильно используешь функцию AddCondition :)

Код: Выделить всё

AddCondition /TEXT /VISIBLE:1 "Определить цвета для типов файлов" 
Во-первых, /TEXT и /VISIBLE: - вместе не используются. VISIBLE - это видимость контрола. Во-вторых, где класс/экземпляр контрола, для которого создается условие? Я так понимаю, ты здесь хочешь сравнить с текстом заголовка, тогда надо делать так:

Код: Выделить всё

AddCondition /TEXT "TDlgCustomColors" 0 "Определить цвета для типов файлов" 
На самом деле, должно работать и с пустым именем класса:

Код: Выделить всё

AddCondition /TEXT "" 0 "Определить цвета для типов файлов" 
Это надо документировать. Но "" 0 в любом случае останется, т.к. последовательность параметров.
Flasher писал(а):С этой проблемой сталкивался ещё в далёком 2011 и даже не надеялся, что без полноценного закрытия ТС это возможно исправить.
Даже так. Ну я пока тоже не надеюсь, пока не смогу повторить у себя. Даже дебажку сделать сложно, пока не понимаешь где хоть примерно может быть проблема.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Loopback
Тут у меня опять существенное дополнение было...
Даже самая богатая фантазия
Не представит себе наши безобразия.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

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

Дополнение видел, скорее всего да, зависимость от полной выгрузки (закрытие окна не означает полной выгрузки процесса).
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Нет, такого не предполагалось.
Ясно. Жду опции.
Loopback писал(а):/TEXT и /VISIBLE: - вместе не используются.
ОК. Убрал везде /VISIBLE:1. Не обратил внимания на '|' в синтаксисе.
Loopback писал(а):Во-вторых, где класс/экземпляр контрола, для которого создается условие?
Посчитал, раз он задан в AddDialog, то повторно его писать не требуется в отличии от /PARENT.
Loopback писал(а):На самом деле, должно работать и с пустым именем класса:
Всюду добавил "" 0 после /TEXT — по нулям.
Loopback писал(а):Ну как минимум, неправильно используешь функцию AddCondition
Так в командах и твои примеры с TASSOCIATEDLG есть — не работает.
Loopback писал(а):Это надо документировать.
Это точно. Без подсказки бы не разобрался.
Loopback писал(а):закрытие окна не означает полной выгрузки процесса
Верно. Там нужен ProcessWaitClose. Вот упрощённый вариант.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Посчитал, раз он задан в AddDialog, то повторно его писать не требуется в отличии от /PARENT.
В принципе правильно посчитал, но были недокументированные нюансы.
Flasher писал(а):Всюду добавил "" 0 после /TEXT — по нулям.
Да, тут была ошибка, причем в самом Autorun, из плагина не работали пустые параметры "" (до этого, похоже, такие нигде в плагинах не встречались). Так что выложу и исправленную версию Autorun.
Flasher писал(а):Так в командах и твои примеры с TASSOCIATEDLG есть — не работает.
У меня работали, но тут в перечислении диалогов была одна глупая ошибка, думаю после исправления все будет ок.
Flasher писал(а): Вот упрощённый вариант.
Примерно то, что и я бы написал. Хорошо, тогда я этим не занимаюсь.

Добавлено спустя 1 час 26 минут:

Сегодняшняя версия.

+ добавлено центрирование диалогов
- исправил ошибку в коде различения диалогов
- определение нажатия на Опции путем обнаружения появления 3 экземпляра комбобокса, возможно, это улучшит стабильность

Также обнаружилась ошибка в самом Autorun, поэтому для нормальной работы MoveButton желательно обновить и его.

- исправлена работа с пустыми параметрами из субплагинов
+ добавлены многострочные комментарии #[ .. #].
+ добавлена функция таймера для проверки производительности

Многострочных комментариев мне давно не хватало, особенно остро это встало когда появилась куча AddDialog и т.д. Что-то я обязательно добавлю, но вот с форматом не уверен. Сейчас сделал #[ .. #], но как-то вводится не очень интуитивно. Думаю еще про вариант #{ #}, мне кажется немного лучше. Хотя можно и как в Autoit #cs #ce.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback
Да, теперь всё заработало. Комбобокс теперь тоже не глючит. Проверил на нескольких диалогах с добавкой центрирования. Всё просто потрясно! :)
Кнопки в "Добавить выделение/Фильтр..." перемещу — и всё супер будет.
И всё-таки один диалог таки сбрасывается после использования Win+Left/Right:

Код: Выделить всё

# Сохранение размеров "Выбор команды":
AddDialog /CENTER:3 /SAVE:12 "TCmdSelForm"
И не очень понял:
Если окно открывается из главного окна Total Commander, то при использовании флага 4 диалог будет отцентрирован относительно «Рабочего стола».
Разве это логично? ТС же остаётся родителем. Просто интересуюсь, т.к. меня более чем устраивает центровка относительно главного окна по /CENTER:3.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Разве это логично?
В данной ситуации вполне. Без флага 4 центрирование выполняется всегда относительно относительно главного окна ТС. Если включить флаг, то родительским для окна диалога, запущенного из опций, будет окно опций, а родительским к главному окну - десктоп.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):а родительским к главному окну - десктоп.
Почему к главному-то, если должно быть к диалогу? Изображение

Что по глюку с "Выбор команды"?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Loopback
Сообщения: 1646
Зарегистрирован: Пн сен 07, 2009 09:29

Сообщение Loopback »

Flasher писал(а):Почему к главному-то, если должно быть к диалогу?
Ну ок, соглашусь, если смотреть чисто по структуре может не очень логично. Просто иначе использование 4 для диалогов из главного окна вообще ничего не дает. А так какая-то смысловая нагрузка. Могу и убрать.

Код: Выделить всё

Desktop
  - Total Commander
    - Dialog1
    - Options
      - Dialog2
Dialog1 без ключа 4 центрируется относительно Total Commander
Dialog1 с ключом 4 центрируется относительно Desktop
Dialog2 без ключа 4 центрируется относительно Total Commander
Dialog2 с ключом 4 центрируется относительно Options
Flasher писал(а):Что по глюку с "Выбор команды"?
Пропустил, слишком много сегодня писанины. Скорее всего потому, что его позиция сохраняется самим тоталом.

А Win+Left/Right у меня ничего не делают вообще.
rk2019
Сообщения: 16
Зарегистрирован: Чт фев 28, 2019 23:44
Откуда: Moskov

Сообщение rk2019 »

Loopback

Вроде говорили что все исправимо, а у меня получается криво.
Изображение

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 
Перечитал хелп, но нет основного - куда блин это вписать?
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Loopback писал(а):Просто иначе использование 4 для диалогов из главного окна вообще ничего не дает.
Как же не даёт? Оно будет сохранять, что важно, привязку к окнам ТС:

Код: Выделить всё

Dialog1/2 без ключа 4 центрируется относительно Total Commander

Dialog1 с ключом 4 центрируется относительно Total Commander
Dialog2 с ключом 4 центрируется относительно Options
Loopback писал(а):Скорее всего потому, что его позиция сохраняется самим тоталом.
И это не обойти (ожиданием отрисовки, например)? Дело в том, что ТС сам не запоминает размер и позицию с флагом развёрнутости.
Loopback писал(а):А Win+Left/Right у меня ничего не делают вообще.
А должны, если у тебя Win7+, и ты их в реестре не заблокировал параметром:

Код: Выделить всё

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\DisabledHotkeys
По умолчанию с данными хоткеями активное окно заполняет левую/правую половину экрана. В системной справке это именуется как "Развертывание окна до левого/правого края экрана". С "Выбор команды" это иногда удобно, так как при достаточности ширины ты можешь наблюдать за интересующими объектами в видимой панели.

rk2019 писал(а):Вроде говорили что все исправимо, а у меня получается криво.
Разве мой пример с учётом всех последних правок плагина даёт такой результат? Очевидно, что нет.
rk2019 писал(а):Я понимаю что 2 человека в этой ветке понимают, но может и остальным расскажите в какой файл эти строки ложить надо??
Ну, как минимум, 3, и то, потому, что обсуждают. Остальные смыслящие тихо, как это чаще бывает, ждут развязки.
В справке "help_ru.chm" на странице "Установка" (не говоря уж про десятки страниц топика) о каком файле идёт речь?
Вы как пришли к результату на скриншоте без правки этого файла? А других файлов настройки у плагина Autorun нет.
И надо понимать, что ценность имеют не только приведённые строки.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить