View previous topic :: View next topic |
Author |
Message |
jackhab
Joined: 18 Mar 2008 Posts: 5
|
(Separately) Posted: Mon Aug 16, 2021 10:48 Post subject: Как узнать директории панелей? |
|
|
Если ли какой-нибудь способ узнать какие директории открыты в правой и левой панелях не прибегая к написанию плагина? |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10315 Location: Россия, Саратов
|
(Separately) Posted: Mon Aug 16, 2021 11:05 Post subject: |
|
|
jackhab
Во-первых, плагины TC этим не занимаются — нет там такой функции. Во-вторых, не очень понятна сама постановка вопроса. Узнать — откуда, в каком виде и, главное, для чего? А то текущие каталоги и в главном окне в разных местах отображаются, и в wincmd.ini при необходимости принудительно сохранены могут быть в секциях [left] и [right] как значение ключа Path (пока это не сделано, вся информация о свежеоткрытых каталогах хранится только в памяти). В общем, пояснение задачи очень желательно. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
jackhab
Joined: 18 Mar 2008 Posts: 5
|
(Separately) Posted: Mon Aug 16, 2021 15:23 Post subject: |
|
|
Avada wrote: | jackhab
Во-первых, плагины TC этим не занимаются — нет там такой функции. Во-вторых, не очень понятна сама постановка вопроса. Узнать — откуда, в каком виде и, главное, для чего? А то текущие каталоги и в главном окне в разных местах отображаются, и в wincmd.ini при необходимости принудительно сохранены могут быть в секциях [left] и [right] как значение ключа Path (пока это не сделано, вся информация о свежеоткрытых каталогах хранится только в памяти). В общем, пояснение задачи очень желательно. |
Извиняюсь за непонятность постановки вопроса.
Допустим есть скрипт PowerShell или Autoit, который хочет узнать какие панели открыты в данный момент в активных табах.
wincmd.ini это отлично, только как принудить сохранение, так чтобы сохранялось при каждом переходе директории и переключении активных табов?
Last edited by jackhab on Sun Sep 05, 2021 10:37; edited 1 time in total |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2624
|
(Separately) Posted: Mon Aug 16, 2021 16:10 Post subject: |
|
|
jackhab
Параметры командной строки %P (исходный каталог) и %T (каталог назначения) вкупе с %X (трактует последующие параметры как относящиеся к левой/правой панелям вместо исходной/целевой) не подойдут? |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Mon Aug 16, 2021 18:10 Post subject: |
|
|
sa wrote: | Параметры командной строки %P (исходный каталог) и %T (каталог назначения) вкупе с %X (трактует последующие параметры как относящиеся к левой/правой панелям вместо исходной/целевой) не подойдут? | Либо в скрипте sendmessage с параметром WM_USER+50. Подробнее см. history.txt от 08.06.16. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
jackhab
Joined: 18 Mar 2008 Posts: 5
|
(Separately) Posted: Tue Aug 17, 2021 09:19 Post subject: |
|
|
Вахмурка wrote: | sa wrote: | Параметры командной строки %P (исходный каталог) и %T (каталог назначения) вкупе с %X (трактует последующие параметры как относящиеся к левой/правой панелям вместо исходной/целевой) не подойдут? | Либо в скрипте sendmessage с параметром WM_USER+50. Подробнее см. history.txt от 08.06.16. |
Спасибо. Похоже, что sendmessage это как раз то, что я искал (забыл упомянуть, что скрипт внешний, не запущенный из ТС). |
|
Back to top |
|
|
mf-zl
Joined: 21 Aug 2005 Posts: 71 Location: BLR
|
(Separately) Posted: Tue May 17, 2022 17:22 Post subject: |
|
|
Немного кода на Autohotkey по данному вопросу
Code: |
msgbox, % "Left: " TC_WM("LP") "`nRight: " TC_WM("RP")
/*
Get info
Supported commands A: Active side (returns L or R), or two byte command:
1st byte: L=left, R=right, S=source, T=target.
2nd byte: P=current path, C=list count, I=caret index, N=name of file under caret.
*/
TC_WM(cmd) {
Global CopyOfData
OnMessage(0x4a, "Receive_WM_COPYDATA")
len := StrLen(cmd) + 1
If A_IsUnicode
{ cmdStr := cmd
VarSetCapacity(cmd, StrPut(cmd, "cp0"))
Loop, % len
NumPut(Asc(SubStr(cmdStr, A_Index, 1)), cmd, A_Index - 1, "Char")
}
VarSetCapacity(CopyDataStruct, A_PtrSize * 3)
NumPut(Asc("G") + 256 * Asc(A_IsUnicode ? "W" : "A"), CopyDataStruct)
NumPut(len, CopyDataStruct, A_PtrSize)
NumPut(&cmd, CopyDataStruct, A_PtrSize * 2)
SendMessage, 0x4A, % A_ScriptHwnd, &CopyDataStruct,, % "ahk_id " WinExist("ahk_class TTOTAL_CMD")
Return, CopyOfData
}
Receive_WM_COPYDATA(wParam, lParam, msg, hwnd) {
Global CopyOfData := StrGet(NumGet(lParam + 8))
}
|
|
|
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
|