View previous topic :: View next topic |
Author |
Message |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Thu Jan 23, 2014 10:12 Post subject: |
|
|
rust,
Религия не запрещает прописать в параметрах send_wait нужный тебе класс TDupeSelForm вместо TCOMBOINPUT, раз у тебя поиск с дубликатами, а не простой.
sa,
Не вижу проблем в использовании макроса. А усложнять функцию send не хочется. К тому же, в макросе третий параметр имеет значение по умолчанию 5 секунд, чего я точно не сделаю для функции. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
rust
Joined: 27 Dec 2013 Posts: 8
|
(Separately) Posted: Thu Jan 23, 2014 14:33 Post subject: |
|
|
Да не стал заморачиваться, оставил send с задержкой работает стабильно. Кстати, победил-таки puntoswitcher - это ^ перед %~n1 Code: | start "" "%COMMANDER_PATH%\addons\tcfs2.exe" /ef "tcm(3312,1) delay(100) send(`+(){DQ}^~(%~n1){BS 2}*{DQ}{ENTER}`)" | иначе вместо "абв где" подставляет "пить где" не помню на какой раскладке.
Гислер пишет что параметр %P в Search панели намеренно пустой, из спортивного интереса попробовал Code: | /ef "if(null(%P), do_something, do_something_else)" | работает, как раз можно выбрать отправлять на TDupeSelForm или TCOMBOINPUT, может кому пригодится |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
oshizelly

Joined: 04 Sep 2012 Posts: 52
|
(Separately) Posted: Mon Feb 10, 2014 01:05 Post subject: |
|
|
Всем доброго дня/ночи!
Есть такая проблема. В видимой части окна TC иногда умещается не больше 1/2 от общей ширины панели, так как дисплей узкий, а колонок много и они широкие. Для того, чтобы посмотреть содержимое колонок, скрытых за правой границей окна, приходится сдвигать панель вправо. А посмотрев, сдвигать ее обратно влево к началу.
Штатно для этого можно использовать стрелки навигации курсора Left/Right, но они двигают панель ну о-о-очень маленькими шажками.
Поэтому нужен хоткей, который выполнял бы ту же функцию, что во многих текстовых программах клавиши [End] и [Home] - переместить фокус ввода в конец/начало строки.
Также пригодилась бы команда для дискретного перемещения влево/вправо на ширину одной колонки (по аналогии с командой в текстовых редакторах "переместить фокус к следующему/предыдущему слову" (Ctrl+Left/Right).
Мне посоветовали попросить помощи здесь, поскольку штатный функционал TC, похоже, не позволяет этого сделать, хотя хотелка вроде бы не самая экзотическая А TCFS2 такое может?
Заранее спасибо! |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Feb 10, 2014 02:19 Post subject: |
|
|
oshizelly wrote: | хоткей, который выполнял бы ту же функцию, что во многих текстовых программах клавиши [End] и [Home] - переместить фокус ввода в конец/начало строки. | TCFS2 скроллбарами не управляет. Есть ScrollTC с горизонтальной прокруткой, но это уже мышиная история. А тут мы обходимся сдвигом сепаратора (ищем спецтему в Автоматизации).
oshizelly wrote: | команда для дискретного перемещения влево/вправо на ширину одной колонки | Текущие размеры колонок не поймать, поэтому пока не представляется возможным. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
oshizelly

Joined: 04 Sep 2012 Posts: 52
|
(Separately) Posted: Mon Feb 10, 2014 04:46 Post subject: |
|
|
Flasher
Quote: | А тут мы обходимся сдвигом сепаратора (ищем спецтему в Автоматизации). |
К сожалению, сдвиг сепаратора проблемы для меня не решает даже частично При описании задачи я забыл упомянуть (точнее, не посчитал существенным), что TC юзается в вертикальном режиме (панели одна над другой). Поэтому сдвиг сепаратора происходил бы в вертикальной плоскости вверх/вниз, никак не влияя на ширину панелей.
Неужели совсем ничего нельзя сделать
(Чтобы было понята моя ситуация: вертикальный режим использую не от хорошей жизни. Это вынужденная мера, так как дисплей монитора имеет разрешение 1200 x 1920, то есть, он высокий, но узкий. При горизонтальном расположении и разделителе на 50% панели TC имели бы ширину 1200/2 = 600 px, что уже совсем ни в какие ворота.)
Quote: | Текущие размеры колонок не поймать, поэтому пока не представляется возможным. |
Текущие, может, и не поймать. Но, к примеру, я (и, думаю, что большинство юзеров) очень редко меняю в течение сеанса TC ширину колонок вручную, после того, как режим просмотра настроен, так сказать, раз и навсегда (до следующего изменения А дефолтную ширину колонок для текущего набора колонок "поймать" нетрудно: она явным образом записана в файле wincmd.ini. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Feb 10, 2014 13:37 Post subject: |
|
|
Попробуй новую TCFS2, обновив также и TCFS2Tools отсюда же. Добавил возможность получать дескрипторы панелей, так что можно посылать им сообщения, в том числе для скроллинга.
Пример прокрутки списка в левой панели на 3 страницы вперёд (в любом режиме):
Code: | TCFS2 /ei "scroll_list(1, 3)" |
Пример горизонтальной прокрутки левой панели на 3 страницы вправо (в пользовательском режиме):
Code: | TCFS2 /ei "scroll_list_h(1, 3)" |
Для возврата нужно прокручивать назад. Можно на 2 хоткея (к примеру, на Ctrl+Shift+Влево/Вправо) повесить прокрутку влево/вправо.
Если поиграться с сообщением WM_HSCROLL, можно сразу прокручивать в начало или конец без цикла, а можно наоборот уменьшить шаг прокрутки, прокручивая на несколько "юнитов" вместо страницы (размер "юнита", видимо, соответствует тому, насколько тотал прокручивает список по клавишам Влево/Вправо). _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Fri Mar 21, 2014 10:13 Post subject: |
|
|
Имеется такая кнопка: Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "tcm(524) tcm(2017) send(`{TAB}`) delay(200) tcm(540) tcm(501,1) delay(200) send(`({BKSP}^V{ENTER})`, findwnd(`TFindFile`)) loop(if(findwnd(`TFindFile`)==0, 0, 0*sendmsg(findwnd(`TFindFile`), $104, $12, $1, 1)*sendmsg(findwnd(`TFindFile`), $104, $30, $1, 1)*delay(1000)+1)) if(findwnd(`TFindFile`)==0, tcm(3302) + send(`{TAB}`) + delay(200) + tcm(3101,1) + delay(200) + send(`%%о%%ц%%o%%p`, findwnd(`TInpComboDlg`)))"
WCMICONS.DLL,14
Копировать файл в папку/подпапки целевой панели с одноимённым файлом (вывод результатов поиска на панель по Alt-0 или "ручками")
-1
| Работает, но не устраивает, в частности, что портит буфер из-за использования cm_CopyNamesToClip (2017) с последующей вставкой по Ctrl+V. Как поизящней передать имя файла под курсором в поле “Искать файлы:” в диалоге поиска? |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Fri Mar 21, 2014 15:39 Post subject: |
|
|
MVV
При использовании %N возникают проблемы с файлами, содержащими в имени, например скобки () или знак + .
Quote: | Можно только второе слать. | Точно, учту.
Last edited by sa on Fri Mar 21, 2014 16:07; edited 1 time in total |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Fri Mar 21, 2014 16:06 Post subject: |
|
|
Да, точно, модификаторы и скобки всё портят. Возможно, надо ввести специальный режим для send, чтобы слать юникод как есть.
Как вариант, можешь создать шаблон поиска и из TCFS2 в конфиг вписывать имя файла в нужном месте, а затем загружать шаблон через LOADSEARCH. Понадобится юзер-команда em_LoadSearch с командой LOADSEARCH и параметром %A. Получится что-то вроде (я использовал шаблон с именем 0):
Code: | /ef "set_tcini(searches, 0_SearchFor, `%N`) tem(`em_LOADSEARCH 0`)" |
Кстати, даже если шаблона не было, всё работает. Плохо, если шаблон был, и был со специфическими параметрами.
Добавлено спустя 38 минут:
А вообще, попробуй этот билд, я добавил чисто юникодный режим отправки, когда все служебные символы игнорируются. Включается режим добавлением собаки перед строкой отправляемых символов (как в C#):
Code: | /ef "tcm(501,1) delay(200) send(@`%~%+-!:)%^&$% jgfj gGG приВет`, findwnd(`TFindFile`))" |
_________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Fri Mar 21, 2014 17:44 Post subject: |
|
|
С юникодным режимом лучше, чем с шаблоном поиска: и городить всего меньше и нет проблем с поиском только в выделенных файлах/каталогах, как в том случае.
Code: | TOTALCMD#BAR#DATA
%COMMANDER_PATH%\Utils\TCFS2\TCFS2.exe
/ef "send(`{TAB}`) delay(200) tcm(540) tcm(501,1) delay(200) send(`({BKSP})`, findwnd(`TFindFile`)) send(@`%N`, findwnd(`TFindFile`)) send(`({ENTER})`, findwnd(`TFindFile`)) loop(if(findwnd(`TFindFile`)==0, 0, 0*sendmsg(findwnd(`TFindFile`), $104, $30, $1, 1)*delay(1000)+1)) tem(em_SelTrgFile) delay(200) tcm(2023) send(`{TAB}`) delay(200) tcm(3101,1) delay(200) send(`%%о%%ц%%o%%p`, findwnd(`TInpComboDlg`))"
WCMICONS.DLL,14
Копировать в папку/подпапки целевой панели, содержащие файл одноимённый с файлом под курсором
-1
| Теперь и буфер цел, и в исходной панели (как и в целевой) можно сразу выделять несколько файлов/папок для копирования. Спасибо!
Last edited by sa on Sat Mar 22, 2014 01:09; edited 2 times in total |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2688
|
(Separately) Posted: Fri Mar 21, 2014 18:49 Post subject: |
|
|
Пожалуй да, подправил. Раньше при вставке из буфера таким образом затирался старый буфер, если курсор оказывался на [..]
Add
И всё-таки {BKSP} пригодится и теперь для случая с [..].
Убрал ещё лишний if в конце и заменил выделение всех найденных файлов на выделение по точному соответствию имени (потребуется пользовательская команда em_SelTrgFile с командой SELECTFILES и параметром "%M"). |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Apr 19, 2014 19:38 Post subject: |
|
|
MVV
Что там по старому?
tcd реально расширить до фильтрации? Или будем em_ плодить? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|