Переход к "симметричному" файлу в противоположной панели

Обсуждение вопросов автоматизации Total Commander с помощью сторонних программ и скриптовых технологий.

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

Ответить
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Переход к "симметричному" файлу в противоположной панели

Сообщение LonerD »

Объединю в теме два похожих вопроса по навигации между панелями.
Метод реализации - скрипт (желательно портабельный), TCFS2, другие методы?

(в тексте под словом "объект" подразумевает непосредственно файл или папка/виртуальная папка/диск/сетевая папка... - в общем, то, на что можно поместить курсор).

1. Нужно перейти в противоположную панель на ту же позицию сверху, которая активна в текущей панели.
В активной панели курсор на третьем сверху объекте - переходим на противоположную панель тоже на третий сверху объект.
Если в противоположной панели меньше объектов, чем в текущей, и в текущей панели курсор находится на объекте, которому нет соответствия в противоположной панели, - то переход осуществляется на последний объект противоположной панели. То есть в активной панели десять объектов, и курсор на седьмом, а в неактивной всего пять объектов - то переходим на пятый (последний) объект неактивной панели.

2. Нужно переместить курсор в противоположную панель симметрично разделителю панелей. То есть примерно то, что в противоположном запросе, но учитываются только файлы, которые отображаются на панелях.
На скриншоте. Курсор на правой панели на файле Taskman.exe. После вызова команды (скрипта) / нажатия хоткея - курсор должен оказаться на правой панели на папке 1049
Изображение
У меня смутное подозрение, что такое можно решить только через AHK путём вычисления координат, но может есть и более простые решения.

[mod="Avada"]Тема перенесена из "Общих вопросов" в "Автоматизацию".[/mod]
Последний раз редактировалось LonerD Сб июл 28, 2012 19:46, всего редактировалось 2 раза.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD
Во-первых, какой в этом смысл?
Во-вторых, что тема делает в общих вопросах?

"переместить курсор ... параллельно разделителю панелей" - вообще не понял...

А делать по 1-му пункту можно только с прочтением списков в обеих панелях. Не знаю, как в на AutoIt, а в VBS такое осуществимо только Хелпером.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

Во-вторых, что тема делает в общих вопросах?
А в каких?
Это как бы и не автоматизация какой-то задачи, а навигация.
В запрос скриптов? А вдруг можно без скриптов сделать... через TCFS2 или батником...
вообще не понял...
Добавил скрин и пояснение к нему.
Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Сообщение Mellomann »

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

Сообщение Flasher »

LonerD писал(а):Это как бы и не автоматизация какой-то задачи, а навигация.
Сравнивать желаемое действие с реализацией этого действия некорректно. Ещё при том, что изначально был указан метод этой реализации.
LonerD писал(а):А вдруг можно без скриптов сделать... через TCFS2 или батником...
TCFS2 и батники - это та же автоматизация. TCFS2 тут никак не поможет. Батники (они же сценарии) без утилит и подавно.

По второму пункту ясно, тут да, пока только горизонтальным сдвигом мышиного указателя в другую панель на пиксел-два от разделителя. И, естественно, ни о какой параллельности с разделителем речи быть не может.

Ответа на первый вопрос так и не увидел..
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

А что стоит просто ткнуть мышкой?
Вот потому я и предполагаю, что решение второй задачи можно свести к эмуляции "тыканья" через AHK и повесить эту эмуляцию на хоткей.

При работе с клавиатурой - не хочется тянуться к мыши.
Я тут пытаюсь перейти от мышачества к клавожатию. Не надо переманивать меня обратно :) Мне и так многого не хватает (в частности есть ещё желание повесить на хоткей прокрутку активной панели без необходимости смещения курсора на последний файл панели, но это уже совсем другая история).
речи быть не может.
поправил заголовок и описание.
это та же автоматизация.
Ок. Тогда, думаю, Avada перенесёт тему в нужный раздел.
Батники (они же сценарии) без утилит и подавно.
Против задействования сторонних небольших утилит ничего не имею.
Не знаю, как в на AutoIt, а в VBS такое осуществимо только Хелпером.
Я не против Хэлпера, а если с поддержкой портабельности - ещё лучше.
Во-первых, какой в этом смысл?
Два каталога со схожими файлами. Имена файлов в двух панелях разные.
Простейшие примеры со смыслом:
- документы. В одной панели - отчёты за один год по месяцам, во второй панели - за другой год. Надо быстро перейти к аналогичному отчёту (за тот же месяц другого года) во второй панели. Нажать Tab и зажать стрелочку вниз, следя за тем, чтобы попасть именно на нужный файл - занимает время, тянуться к мыши - тоже. Хочется хоткеем.
- изображения. В одной панели оригиналы. Во второй - обработанные. Выбрать на одной панели изображение, посмотреть его, нажать хоткей - и перейти к такому же обработанному изображению на другой панели.
- электронные версии журналов. В одной панели открыты варианты в pdf, во второй - в djvu, или же разного качества сканы, или же за разные годы...
- иконки. В одном каталоге - несколько сот иконок 32х32, в другом - 24х24. Выбираем нужную иконку в одном каталоге, жмём хоткей - и переходим к такой же иконке во второй панели.
Аватара пользователя
Mellomann
Сообщения: 709
Зарегистрирован: Пн сен 07, 2009 00:44

Сообщение Mellomann »

LonerD писал(а):прокрутку активной панели без необходимости смещения курсора на последний файл панели
А ScrollLock тебе на что? По крайней мере в M$ Excel крутит на ура.
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD писал(а):Против задействования сторонних небольших утилит ничего не имею.
Всё равно делать это через консоль бессмысленно.

Приведённые примеры за исключением одного могут вполне сопоставляться по именам файлов, для этого вовсе не требуется сортировать аналогичным образом файлы в панелях и иметь аналогичное число элементов в обоих списках.

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

TOTALCMD#BAR#DATA
%COMMANDER_EXE% /O
/R=%T%N\' %Z /P=R
wcmicons.dll,48
Перейти на одноимённый файл в правую панель
в левую соотв. > /L=%T%N\' /P=L

Касаемо pdf/djvu и подобных случаев нужен скрипт.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

А ScrollLock тебе на что?

1. Это совсем другая история, в данной теме это уже офтоп. Конкретный запрос сформулировал тут, и не думаю, что его можно решить чем-то кроме AHK.
2. Про функционал ScrollLockа я не знал :) , да и в любом случае в панелях он не срабатывает тем же образом, что и в Excellе.
3. Даже если бы и срабатывал в панелях Тотала - это не выход, ибо его надо включать-выключать, и такой вариант на хоткей не повесить.
Аватара пользователя
LonerD
Сообщения: 1174
Зарегистрирован: Вт янв 04, 2011 03:56
Откуда: Макеевка
Контактная информация:

Сообщение LonerD »

вполне сопоставляться по именам файлов
Не всегда. Имена файлов, как правило, разные.

Приведённую тобой команду можно сделать чуть менее красивой, но более универсальной через TCFS2, получается одна команда для обеих панелей.

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

[em_SameName]
cmd=%commander_exe% /O /S
param=/L=%T%N\' %Z
[em_GoToSameName]
cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe /ef tem(em_SameName) "tcm(4002), eval(L_isActive) | tcm(4001)"
Аватара пользователя
Flasher
Сообщения: 14229
Зарегистрирован: Пт ноя 06, 2009 00:33
Откуда: Москва

Сообщение Flasher »

LonerD
Я это хотел предложить, но мысль в том, что лучше под эти команды иметь 2 хоткея со стрелочками, чтобы не путаться.
LonerD писал(а):Не всегда. Имена файлов, как правило, разные.
Если имена разные, то и сортироваться они будут по-разному, и, соответственно, располагаться относительно разделителя не всегда на одной линии.
Ответить