View previous topic :: View next topic |
Author |
Message |
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Mon Jun 09, 2014 16:56 Post subject: Контролы файловых панелей (Autoit, AHK) |
|
|
Как известно, в зависимости от наличия открытых в сеансе работы фтп-соединений и "дерев каталогов в отдельных панелях" - имена контролов файловых панелей изменяются, и могут принимать значения от TMyListBox1 до TMyListBox5 (в 64-х битном Тотале - соответственно LCLListBox).
Зачастую нужно определить в данный конкретный момент времени имя контрола правой и левой файловых панелей (как один из примеров - для того, чтобы узнать в какой панели находится курсор).
Пока что я дошёл до единственного решения.
Считываем текст в контролах TMyListBox1 - TMyListBox3, и если он равен W_TreeList1, то значит открыто одно дерево в отдельной панели, если W_TreeList2 - то два дерева. Далее зная это можно сделать предположения об именах контролов файловых панелей, но приходится узнавать список контролов окна Тотала и перебирать их чтобы узнать - было ли в процессе работы открыто ftp-соединение.
Пример реализации этого варианта - в скрипте.
Второй вариант попроще, но менее элегантный - считать имя контролла активной панели, заморозить окно Тотала, поместить курсор в правую панель, считать имя контрола, потом поместить курсор в левую панель, считать имя контрола, вернуть всё как было, разморозить окно.
Может есть какой-то более простой вариант с запросом к окну или процессу Тотала? _________________ Win11 x64 Eng | TC DreamLair eternal pre-α
Last edited by LonerD on Mon Jun 09, 2014 19:11; edited 1 time in total |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1168 Location: Донецк
|
(Separately) Posted: Mon Jun 09, 2014 19:14 Post subject: |
|
|
MVV
Тоже вариант. Но это надо использовать плагин Autorun, подплагин к нему, плюс утилиту TCFS2... Да к тому же мы не получаем имя контрола, а только ответ правая/левая панель.
А каким образом TCFS2Tools получает информацию об активной панели - постоянно резидентно отслеживает активность?
Можно ли из TCFS2Tools напрямую (минуя TCFS2) непосредственно в скрипте получать информацию об активной панели (какими-то запросами к dll-библиотеке)? _________________ Win11 x64 Eng | TC DreamLair eternal pre-α |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Tue Jun 10, 2014 01:38 Post subject: |
|
|
Функция появилась в последней версии (билд 188), сообщение нужно отправить следующее:
Code: | SendMessage(hTcWnd, 0x0433, 65556, 1 или 2) |
Здесь выбираем 1 или 2 для левой или правой панели, функция вернёт дескриптор окна списка файлов.
Кстати, узнать, в какой панели курсор, можно только из контекста процесса тотала, т.к. извне эта информация недоступна. Но TCFS2Tools позволяет определять, какая из панелей активна, и обмен происходит также через сообщения. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
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
|