View previous topic :: View next topic |
Author |
Message |
rust
Joined: 27 Dec 2013 Posts: 8
|
(Separately) Posted: Mon Dec 30, 2013 09:39 Post subject: |
|
|
Quote: | Этими вашими автохоткеями можно решить вопрос: по нажатию Вниз посылаешь панели сообщение LB_GETCOUNT (wParam=lParam=0), затем LB_GETCARETINDEX (wParam=lParam=0), и если ... |
MVV, а нельзя это сделать с помощью TCFS2? "sendmsg(findwnd(`TTotal_cmd`), LB_GETXXX, 0, 0, 1)" похоже всегда возвращает либо 1, либо 0, причем без разницы отправляешь окну TTotal_cmd или TMyListbox. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Dec 30, 2013 12:52 Post subject: |
|
|
Сообщения необходимо посылать именно панелям, т.к. они являются представителями класса окон-списков и реагируют на эти сообщения, возвращая информацию о себе. А из TCFS2 получить дескрипторы окон панелей не получится.
Говоря об "автохоткеях", я подразумевал именно перехват нажатий клавиш с соответствующей обработкой, TCSF2 этим не занимается.
Я пробовал отправлять панелям указанные сообщения (из InqSoft Window Scanner), возвращаемые значения соответствуют действительности. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
rust
Joined: 27 Dec 2013 Posts: 8
|
(Separately) Posted: Mon Dec 30, 2013 15:01 Post subject: |
|
|
А вот если через TCFS2 отправить сообщение на TTotal_cmd, равно как напрямую на $10320 (в данную минуту это TMyListbox), то TMyListbox возвращает корректное значение например lb_getcaretindex, но либо до TCFS2 оно не доходит, либо TCFS2 интерпретирует по-своему, либо до меня чего-то не доходит. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Mon Dec 30, 2013 21:38 Post subject: |
|
|
Имею левую панель с дескриптором окна $20462.
Выполняю в командной строке:
Code: | tcfs2 /ef "set_tcini(tcfs2, lpos, sendmsg($20462, $19f))" |
И в параметр lpos секции tcfs2 файла wincmd.ini записывается правильное значение текущей позиции ($19f - это LB_GETCARETINDEX).
Выполняю:
Code: | tcfs2 /ef "sendmsg($20462, $19e, sendmsg($20462, $19f)-1, 0)" |
И курсор сдвигается на 1 элемент вверх ($19e - это LB_SETCARETINDEX). _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
rust
Joined: 27 Dec 2013 Posts: 8
|
(Separately) Posted: Tue Dec 31, 2013 07:41 Post subject: |
|
|
дошло, я вешаю на кнопку "sendmsg(findwnd(`TTotal_cmd`), $19f)" и вижу в окне spy++ текущую позицию GetCaretIndex, затем вешаю на ту же кнопку cmd.exe и вижу то же самое, оказывается не я один хочу получить позицию курсора
Хотел красиво решить проблему потери индекса файла в панели ТС после multirename, если курсор находится среди выделенных файлов, не знаю сделает-ли это Гислер. Сейчас тупо повесил на ctrl+down
Code: | param=/ef "msg($0B, 0, 0) send(`{end}`) tcm(2054,1) send(`^(){down}`) msg($0B, 1, 0) tcm(2918)" |
позиционирует курсор на первом файле после выделенных, на нем и остается курсор после MRT.
{end} ушли в конец списка
2054 - cm_GotoPrevSelected попали на последний выделенный
^() перед {down} - как бы "ловушка" для ctrl, чтобы срабатывал down, а не циклился ctrl+down |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jan 18, 2014 13:10 Post subject: |
|
|
MVV
А ты можешь сделать, чтобы в tem запускались команды с параметрами, где задействован %A? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Sat Jan 18, 2014 18:50 Post subject: |
|
|
Они же и так запускаются. Или я чего-то не знаю? Для команды в tem можно указать параметры, и они будут подставлены тоталом вместо %A...
Например, юзер-команда em_Cd с командой cd и параметром %A. И можно делать так:
Code: | TCFS2 /ef "tem(`em_Cd c:\`)" |
Или юзер-команда em_Exec с командой Exec.exe (из Virtual Panel) и параметром %A, и можно из TCFS2 запускать любые программы:
Code: | TCFS2 /ef "tem(`em_Exec notepad.exe d:\1.txt`)" |
Аналогичным образом можно написать юзер-команды для смены набора колонок, загрузки шаблона синхронизации и т.п. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jan 18, 2014 19:07 Post subject: |
|
|
А если вместо notepad.exe указать полный путь до проги с пробелами в пути?
 Hidden text Кстати, а в чём прикол, что у тебя Exec занял ровно 1 Кб? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

Joined: 15 Oct 2009 Posts: 4815 Location: Ростов-Дон
|
(Separately) Posted: Sat Jan 18, 2014 19:44 Post subject: |
|
|
Там проблема с кавычками. Чтобы указывать полный путь с пробелами, надо этот путь в кавычки заключать. Но тогда это будет работать только из TCFS2.ini:
Code: | test=tem(`em_Exec "C:\Program Files (x86)\7-Zip\7zFM.exe" "F:\My Archive.7z"`) |
Я не придумал пока, как красиво добавить возможность вставки кавычек через командную строку.
Ещё тотал не поддерживает юникод в сообщениях вызова юзер-команд.
 Hidden text Да нет там прикола, всё нормально, минимум кода, точка входа переопределена, чтобы не включать CRT в файл, и секции кода и данных объединены.  Когда секция всего одна, на заголовок хватает 512 байт, и секция уложилась в 512. В 64-битном варианте есть ещё неотключаемая секция, поэтому заголовок 1024 байта плюс две секции. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Jan 18, 2014 20:09 Post subject: |
|
|
MVV wrote: | Но тогда это будет работать только из TCFS2.ini | Подобного как раз и требуется избежать, чтобы не плодить лишнего в конфигах (таких команд будет много). Хотя бы для начала без параметра к проге (аля notepad).
Отсутствие Юникода в данном случае совершенно не пугает.
 Hidden text Заголовок 512 + секция 512. Хм. Занятно. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2689
|
(Separately) Posted: Sat Jan 18, 2014 21:38 Post subject: |
|
|
MVV wrote: | добавить возможность вставки кавычек через командную строку. |
А нет возможности различать назначение кавычек в зависимости от того, содержатся ли они внутри косых кавычек или нет? |
|
Back to top |
|
 |
MVV

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

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 19, 2014 07:00 Post subject: |
|
|
MVV
Да нормально, пока подводных камней не вижу. Всё гуд. Спасибо. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
 |
MVV

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

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sun Jan 19, 2014 13:25 Post subject: |
|
|
Можно, конечно. Но не то чтобы очень нужно.  _________________ Автору сборки 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
|