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 

Как узнать директории панелей?

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  
Author Message
jackhab



Joined: 18 Mar 2008
Posts: 5

Post (Separately) Posted: Mon Aug 16, 2021 10:48    Post subject: Как узнать директории панелей? Reply with quote

Если ли какой-нибудь способ узнать какие директории открыты в правой и левой панелях не прибегая к написанию плагина?
Back to top
View user's profile Send private message
Avada



Joined: 01 Aug 2008
Posts: 10236
Location: Россия, Саратов

Post (Separately) Posted: Mon Aug 16, 2021 11:05    Post subject: Reply with quote

jackhab
Во-первых, плагины TC этим не занимаются — нет там такой функции. Во-вторых, не очень понятна сама постановка вопроса. Узнать — откуда, в каком виде и, главное, для чего? А то текущие каталоги и в главном окне в разных местах отображаются, и в wincmd.ini при необходимости принудительно сохранены могут быть в секциях [left] и [right] как значение ключа Path (пока это не сделано, вся информация о свежеоткрытых каталогах хранится только в памяти). В общем, пояснение задачи очень желательно.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
jackhab



Joined: 18 Mar 2008
Posts: 5

Post (Separately) Posted: Mon Aug 16, 2021 15:23    Post subject: Reply with quote

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



Joined: 29 Apr 2009
Posts: 2563

Post (Separately) Posted: Mon Aug 16, 2021 16:10    Post subject: Reply with quote

jackhab
Параметры командной строки %P (исходный каталог) и %T (каталог назначения) вкупе с %X (трактует последующие параметры как относящиеся к левой/правой панелям вместо исходной/целевой) не подойдут?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2584
Location: Большая деревня Москва

Post (Separately) Posted: Mon Aug 16, 2021 18:10    Post subject: Reply with quote

sa wrote:
Параметры командной строки %P (исходный каталог) и %T (каталог назначения) вкупе с %X (трактует последующие параметры как относящиеся к левой/правой панелям вместо исходной/целевой) не подойдут?
Либо в скрипте sendmessage с параметром WM_USER+50. Подробнее см. history.txt от 08.06.16.
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
jackhab



Joined: 18 Mar 2008
Posts: 5

Post (Separately) Posted: Tue Aug 17, 2021 09:19    Post subject: Reply with quote

Вахмурка wrote:
sa wrote:
Параметры командной строки %P (исходный каталог) и %T (каталог назначения) вкупе с %X (трактует последующие параметры как относящиеся к левой/правой панелям вместо исходной/целевой) не подойдут?
Либо в скрипте sendmessage с параметром WM_USER+50. Подробнее см. history.txt от 08.06.16.


Спасибо. Похоже, что sendmessage это как раз то, что я искал (забыл упомянуть, что скрипт внешний, не запущенный из ТС).
Back to top
View user's profile Send private message
mf-zl



Joined: 21 Aug 2005
Posts: 71
Location: BLR

Post (Separately) Posted: Tue May 17, 2022 17:22    Post subject: Reply with quote

Немного кода на 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
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
Page 1 of 1

 
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