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 ... 97, 98, 99 ... 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
MVV



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

Post (Separately) Posted: Wed Mar 11, 2015 23:04    Post subject: Reply with quote

Полностью согласен с Flasher. Если всё, что описывается во внутренних командах в конфиге, впихнуть в кнопку, она лопнет. Very Happy

В самой утилите содержатся ровно те функции, что описаны в Readme. Это чтение и запись конфигурационных файлов, работа с окнами, отправка нажатий клавиш, смена каталога и т.п. Включать в неё полный перечень опций тотала никогда не было целью, наоборот была цель сделать её максимально гибкой, чтобы её можно было подстроить под любую версию тотала без перекомпиляции. Поэтому всё, что может быть описано прямым текстом, вынесено в конфиг, а сама утилита является его парсером. И командная строка тоже читается аналогично строкам конфига (параметры после /ef обрабатываются как правые части команд, /ei - как правые части действий).

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



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Tue Apr 07, 2015 04:04    Post subject: Reply with quote

MVV
создал в контекстном меню папок через внутренние ассоциации пункт "Изменить атрибуты", командой для которого является:
Code:
"%commander_path%\Programm\TCFS2\TCFS2.exe" /u- /ef tcm(502)

Всё отлично, появляется нужное окошечко, но хотелось бы, что бы процесс TCFS2.exe завершался сразу после того, как вызовет это окно, а не после его закрытия.
Это возможно? Или может есть более простой способ решить мою задачу с контекстным меню...
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2599

Post (Separately) Posted: Tue Apr 07, 2015 08:09    Post subject: Reply with quote

HA3APET
Не так
tcm(502, 1)
?
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Tue Apr 07, 2015 11:22    Post subject: Reply with quote

sa,
Строки с пробелами - обязательно в кавычки. И возможны два варианта асинхронной посылки:
Code:
TCFS2.exe /u- /ef "tcm(502, 1)"

Code:
TCFS2.exe /u- /ef "tcm(502, -1)"


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



Joined: 29 Apr 2009
Posts: 2599

Post (Separately) Posted: Tue Apr 07, 2015 11:46    Post subject: Reply with quote

MVV wrote:
обязательно в кавычки
Упустил: проверял без пробела, а потом добавил его в посте для красоты.

Quote:
возможны два варианта
При -1 процесс TCFS2.exe завершается как-то не сразу...
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Tue Apr 07, 2015 12:41    Post subject: Reply with quote

sa wrote:
При -1 процесс TCFS2.exe завершается как-то не сразу...

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



Joined: 22 Feb 2010
Posts: 151

Post (Separately) Posted: Tue Apr 07, 2015 15:09    Post subject: Reply with quote

MVV
sa
Спасибо, здорово.
Да, немного не удобно, что TC не объединяет пункты из разных шаблонов, но пока удаётся это обходить.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Apr 24, 2015 21:54    Post subject: Reply with quote

Зашёл тут за сортировку по количеству файлов в папке, попробовал посылать
Code:
cm_SwitchDirSort: Сортировать каталоги: по имени/как файлы
cm_SrcCustomView5: Переключаем на пользовательский набор колонок номер 5
cm_SrcSortByCol3: Сортировать по третьей колонке в активной панели

Code:
%COMMANDER_PATH%\Utilities\TCFS2\TCFS2.exe
/ef "msg($0B,0) tcm(2012) tcm(275) tcm(6003) msg($0B,1) redraw()"

Крайняя команда ТС то срабатывает, то нет. Почему?

Добавлено:
DirSizeCalc не самый шустрый плаг, считать количество файлов - процесс небыстрый, сделал ход конём: убрал tcm(6003) Smile
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2599

Post (Separately) Posted: Fri Apr 24, 2015 22:54    Post subject: Reply with quote

Skif_off
Для себя назвал эту команду (cm_SwitchDirSort) немного по-другому:
Всегда сортировать каталоги по имени: вкл/выкл.
То есть эта команда из разряда переключателей. Поэтому, наверное и кажется: то сработает, то нет.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Apr 25, 2015 00:31    Post subject: Reply with quote

sa
О, спасибо, так и есть по-ходу: этот момент вообще упустил из виду.
Наверное, придётся переделывать, скриптом скорее всего - сортировка каталогов как файлов не нужна постоянно.

MVV
Что-то я немного затупил: tcm(xxx) посылают ТС SendMessage или PostMessage? И проверяется ли как-то результат?
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Apr 25, 2015 02:18    Post subject: Reply with quote

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



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Apr 25, 2015 03:06    Post subject: Reply with quote

Flasher
В курсе, что можно и так и сяк, но не понял, как по умолчанию. Вот, допустим:
Code:
TOTALCMD#BAR#DATA
%COMMANDER_PATH%\*\TCFS2.exe
/ef tcm(2400)
wcmicons.dll,83
Пример


-1

Здесь что?

Пока писал, сообразил заглянуть в историю:
Quote:
2010-06-11 v1.2
+ parameter added for msg function to send message using PostMessage instead of SendMessage

Получается, по умолчанию - SendMessage?

Я как Буриданов осёл, никак не решу, что правильнее использовать для встроенных команд ТС Smile) Для пользовательских команд и WM_COPYDATA с 'G'+256*'W' в AutoIt использую SendMessageW, для встроенных - PostMessage, но периодически выношу мозг сомнениями (хотя пока и не сталкивался с какими-то проблемами). Для некоторых (открывающих окна, например) PostMessage, кажется, будет правильнее.


Last edited by Skif_off on Sat Apr 25, 2015 03:46; edited 1 time in total
Back to top
View user's profile Send private message
Flasher



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

Post (Separately) Posted: Sat Apr 25, 2015 03:21    Post subject: Reply with quote

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



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Sat Apr 25, 2015 03:54    Post subject: Reply with quote

Flasher wrote:
При вызове окон - PostMessage, в остальных случаях - зависит от ситуации.

Да, с окнами PostMessage разумнее, что-то я поторопился, исправил пост, а с критериями выбора проблема. В общем, оставлю пока PostMessage дефолтным, пусть ТС сам разбирается с очередью.
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Sat Apr 25, 2015 22:03    Post subject: Reply with quote

Вообще, по идее правильнее SendMessage, но тотал обрабатывает и PostMessage. Иногда PostMessage приводит к неправильным результатам. Собственно, если асинхронность не нужна, лучше SendMessage (режим 0 для tcm), если нужна, то сначала попробовать PostMessage (режим 1 для tcm), а если работает плохо - то SendMessage в фоне (режим -1 для tcm).

А для переключателя сортировки каталогов по имени можно делать проверку значения в wincmd.ini, чтобы не вызывать команду, если режим уже в нужном положении, как это сделано с кучей других ключей:
Code:
[Macros]
areDirsSortedByName=tcini(Configuration, SortDirsByName, 1, 1)

И тогда гарантированно отключать сортировку по имени так:
Code:
TCFS2 /ef "if(areDirsSortedByName, tcm(2012))"

Ну или раскрыть макрос, чтобы не надо было вписывать его в конфиг:
Code:
TCFS2 /ef "if(tcini(Configuration, SortDirsByName, 1, 1), tcm(2012))"

_________________
TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
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 ... 97, 98, 99 ... 128, 129, 130  Next
Page 98 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