Autorun

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

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

Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Flasher писал(а):Я понимаю (я взял лишь необходимую часть), но у тебя не так, ты заключаешь в кавычки обе команды.
В одном случае каждая команда обрабатывается как строчка конфига (выполняются одна за другой), в другом - обе обрабатываются как одна строчка (выполняются так же одна за другой), т.е. разницы по сути никакой.
Flasher писал(а):У меня с ActiveRight=1 всё чётко отрабатывает.
Я даже отключал ActiveRight для теста, тоже работает.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

Flasher писал(а):Какие у тебя открыты папки в момент закрытия ТС, и в каком состоянии активные вкладки?
Проверялось в единобразных условиях. Корневые папки дисков C: и D:. Они же, естественно, в активных вкладках.
Flasher писал(а):А ты ТС перезапускаешь (например, по скрипту) или закрываешь/открываешь?
Специально уточню, что при ActiveRight=0 проблем нет, всё обрабатывается нормально. Но у меня в норме значение этого ключа 1. И здесь при скриптовом перезапуске оказывается активна левая панель, там отображается корень диска C:, а справа открывается папка плагина без возврата в предыдущую папку. При любом другом варианте перезапуска или закрытия/открытия — видны две открытых папки плагина, активна правая панель.
MVV писал(а):Я даже отключал ActiveRight для теста, тоже работает.
Отключение ActiveRight — это ActiveRight=0 (активна левая панель). А у меня 1.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada
Пробовал и так, как ты описал, всё равно такого глюка с открытием одной и той же виртуальной папки в обеих панелях нет.
Хочу вернуться к этому фактору:
MVV писал(а):Возможно, проблема в том, что тотал активирует правую панель уже после того, как выполняет команду.
А если указать tcm(570,-1) ?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
MVV
Сообщения: 4815
Зарегистрирован: Чт окт 15, 2009 10:58
Откуда: Ростов-Дон

Сообщение MVV »

Avada писал(а):И здесь при скриптовом перезапуске оказывается активна левая панель, там отображается корень диска C:, а справа открывается папка плагина без возврата в предыдущую папку. При любом другом варианте перезапуска или закрытия/открытия — видны две открытых папки плагина, активна правая панель.
Я тоже думаю, что в твоем случае и с TCFS2 команда отправляется до того, как тотал активирует правую панель. Попробуй поставить задержку перед вызовом команды:

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

ShellExec '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe' '/ef delay(500) "tcd(`\\\Virtual Panel`,,S)" tcm(570,1)'
Flasher писал(а):А если указать tcm(570,-1) ?
Это не поможет. Если в случае с PostMessage тотал делает текущие дела (загрузку плагина) и потом обрабатывает очередь сообщений, куда попадает команда "Назад" (т.е. в аккурат когда плагин загрузится и вернет управление), то в случае с фоновым SendMessage тотал будет вынужден обработать её непосредственно в момент получения, и с большой степенью вероятности этот момент наступит раньше, чем нам нужно.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

MVV писал(а):Попробуй поставить задержку перед вызовом команды:
Ему не резон, первый предложенный вариант тоже может идти с задержкой (предложенной LonerD и меньшей в 10 раз, кстати, 50 против твоих 500). И раз виртуальная папка таки открывается в правой панели, то логично было бы задержку ставить между функциями, а не до.
MVV писал(а):в случае с фоновым SendMessage тотал будет вынужден обработать её непосредственно в момент получения, и с большой степенью вероятности этот момент наступит раньше, чем нам нужно.
Т.е. ожидания результата (как подразумевается в ReadMe) тут никакого не будет?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

MVV писал(а):Попробуй поставить задержку перед вызовом команды
Попробовал. И рад сообщить, что в таком виде всё работает нормально. Также выяснил, что при delay(380) глюки ещё есть, а при delay(390) — уже нет.
А в первом варианте (с /CD) задержка действительно гораздо меньше — однако же всё работает.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada
А если принудительно переходить в правую панель?:

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

ShellExec '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe' '/ef tcm(4002,0) "tcd(`\\\Virtual Panel`)" tcm(570,1)'
А вообще лучше даже так:

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

ShellExec '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe' '/ef "tcd(,`\\\Virtual Panel`)" "tcm(4002), eval(L_isActive)" tcm(570,1)'
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

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

Сообщение Flasher »

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

Сообщение Avada »

Flasher
Да, потом попробовал. Со второй всё работает.
Последний раз редактировалось Avada Вс авг 25, 2013 18:27, всего редактировалось 1 раз.
Даже самая богатая фантазия
Не представит себе наши безобразия.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

Avada писал(а):Со второй всё работает.
Ну вот и хорошо. И без задержки, что нам и требовалось получить. :wink:
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Аватара пользователя
Avada
Сообщения: 10541
Зарегистрирован: Пт авг 01, 2008 16:17
Откуда: Россия, Саратов

Сообщение Avada »

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

Сообщение Flasher »

Avada
А почему три?

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

Сообщение Avada »

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

Сообщение Flasher »

Avada
Понятно. А оптимальная история будет такая:

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

Set TCFS2 '%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe'
IniRead ACTIVE_RIGHT %COMMANDER_INI% Configuration ActiveRight
If %ACTIVE_RIGHT% = 1 Then
  ShellExec %TCFS2% '/ef "tcd(,`\\\Virtual Panel`)" "tcm(4002), eval(R_isActive == 0)" tcm(570,1)'
Else
  ShellExec %TCFS2% '/ef "tcd(`\\\Virtual Panel`)" tcm(570,1)'
EndIf
Последний раз редактировалось Flasher Вс авг 25, 2013 20:00, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Ответить