Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое
Goto page Previous  1, 2, 3 ... 76, 77, 78 ... 128, 129, 130  Next
 
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
rust



Joined: 27 Dec 2013
Posts: 8

Post (Separately) Posted: Mon Dec 30, 2013 09:39    Post subject: Reply with quote

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
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Dec 30, 2013 12:52    Post subject: Reply with quote

Сообщения необходимо посылать именно панелям, т.к. они являются представителями класса окон-списков и реагируют на эти сообщения, возвращая информацию о себе. А из TCFS2 получить дескрипторы окон панелей не получится.

Говоря об "автохоткеях", я подразумевал именно перехват нажатий клавиш с соответствующей обработкой, TCSF2 этим не занимается.

Я пробовал отправлять панелям указанные сообщения (из InqSoft Window Scanner), возвращаемые значения соответствуют действительности.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
rust



Joined: 27 Dec 2013
Posts: 8

Post (Separately) Posted: Mon Dec 30, 2013 15:01    Post subject: Reply with quote

А вот если через TCFS2 отправить сообщение на TTotal_cmd, равно как напрямую на $10320 (в данную минуту это TMyListbox), то TMyListbox возвращает корректное значение например lb_getcaretindex, но либо до TCFS2 оно не доходит, либо TCFS2 интерпретирует по-своему, либо до меня чего-то не доходит.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Mon Dec 30, 2013 21:38    Post subject: Reply with quote

Имею левую панель с дескриптором окна $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
View user's profile Send private message
rust



Joined: 27 Dec 2013
Posts: 8

Post (Separately) Posted: Tue Dec 31, 2013 07:41    Post subject: Reply with quote

дошло, я вешаю на кнопку "sendmsg(findwnd(`TTotal_cmd`), $19f)" и вижу в окне spy++ текущую позицию GetCaretIndex, затем вешаю на ту же кнопку cmd.exe и вижу то же самое, оказывается не я один хочу получить позицию курсора Smile
Хотел красиво решить проблему потери индекса файла в панели ТС после 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 18, 2014 13:10    Post subject: Reply with quote

MVV
А ты можешь сделать, чтобы в tem запускались команды с параметрами, где задействован %A?
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sat Jan 18, 2014 18:50    Post subject: Reply with quote

Они же и так запускаются. Или я чего-то не знаю? Для команды в 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
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 18, 2014 19:07    Post subject: Reply with quote

А если вместо notepad.exe указать полный путь до проги с пробелами в пути?

 Hidden text

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sat Jan 18, 2014 19:44    Post subject: Reply with quote

Там проблема с кавычками. Чтобы указывать полный путь с пробелами, надо этот путь в кавычки заключать. Но тогда это будет работать только из TCFS2.ini:
Code:
test=tem(`em_Exec "C:\Program Files (x86)\7-Zip\7zFM.exe" "F:\My Archive.7z"`)

Code:
TCFS2 /ei test

Я не придумал пока, как красиво добавить возможность вставки кавычек через командную строку.

Ещё тотал не поддерживает юникод в сообщениях вызова юзер-команд.

 Hidden text

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sat Jan 18, 2014 20:09    Post subject: Reply with quote

MVV wrote:
Но тогда это будет работать только из TCFS2.ini
Подобного как раз и требуется избежать, чтобы не плодить лишнего в конфигах (таких команд будет много). Хотя бы для начала без параметра к проге (аля notepad).
Отсутствие Юникода в данном случае совершенно не пугает.

 Hidden text

_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2689

Post (Separately) Posted: Sat Jan 18, 2014 21:38    Post subject: Reply with quote

MVV wrote:
добавить возможность вставки кавычек через командную строку.

А нет возможности различать назначение кавычек в зависимости от того, содержатся ли они внутри косых кавычек или нет?
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sun Jan 19, 2014 01:44    Post subject: Reply with quote

Да всё возможно, но не знаю, насколько это правильно игнорировать двойные кавычки внутри косых.
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Jan 19, 2014 07:00    Post subject: Reply with quote

MVV
Да нормально, пока подводных камней не вижу. Всё гуд. Спасибо.
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
MVV



Joined: 15 Oct 2009
Posts: 4815
Location: Ростов-Дон

Post (Separately) Posted: Sun Jan 19, 2014 11:53    Post subject: Reply with quote

Одно знаю точно - если в именах папок или файлов есть эти самые обратные апострофы, будут проблемы.
Или их в свою очередь надо игнорировать внутри двойных кавычек, которые внутри косых? Laughing
_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Back to top
View user's profile Send private message
Flasher



Joined: 06 Nov 2009
Posts: 14229
Location: Москва

Post (Separately) Posted: Sun Jan 19, 2014 13:25    Post subject: Reply with quote

Можно, конечно. Но не то чтобы очень нужно. Wink
_________________
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Плагины Total Commander All times are GMT + 4 Hours
Goto page Previous  1, 2, 3 ... 76, 77, 78 ... 128, 129, 130  Next
Page 77 of 130

 
Jump to:  
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