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 

Ограничения на число пунктов в главном меню
Goto page Previous  1, 2
 
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы printer-friendly view
View previous topic :: View next topic  
Author Message
Вахмурка



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

Post (Separately) Posted: Thu Oct 17, 2013 21:47    Post subject: Reply with quote

TWinKey установлен? Если да, то ноги растут, скорее всего, оттуда. Отключи и попробуй. Сейчас лень искать (если надо, то найду) мои диалоги с VadiMGP по этому поводу.
А вот такие аццкие цифры появляются по воле доброхотов типа Petermad, которые стряпают отличные расширенные меню и присобачивают в языковый файл хренову гору собственных em_ команд.
Сейчас подсчитал - у меня около сотни своих и около двухсот - от Petermad'а. Хотя триста - это не 2000... После того, как VadiMGP подрихтовал TWinKey, у меня глюки прекратились. Может, он просто расширил границы, не решив проблему принципиально?
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Maximus



Joined: 07 Apr 2005
Posts: 927
Location: Украина, Кировоградская обл., г. Знаменка

Post (Separately) Posted: Thu Oct 17, 2013 23:17    Post subject: Reply with quote

 LonerD

_________________
tcPhonebook|AppLoader|Українізація TC|Ultimate Calendar
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1169
Location: Макеевка

Post (Separately) Posted: Fri Oct 18, 2013 00:28    Post subject: Reply with quote

Maximus
відповів


Вахмурка
Спасибо, но причина не в TWinKey. Он действительно установлен, но проблема проявляется и после его отключения, и в 64-х битном Тотале.
_________________
Windows 11 | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1169
Location: Макеевка

Post (Separately) Posted: Fri Oct 18, 2013 05:22    Post subject: Reply with quote

Вот же, нашёл таки обсуждение. Утверждается про 2000 пользовательских команд.

Но у меня глюки начинаются раньше чем меню достигает этих команд.
Сократил количество пунктов меню.
Осталось 1899 em-команд и 99 cm-команд.
Не помогло.

Такс... Начали закрадываться сомнения. А ограничения ли это Тотала? Или всё же не совсем Тотала? Или совсем не Тотала?

MVV, у меня многие команды запускаются через TCFS2, фактически панели и построены на этой утилите. Так вот именно команды, вызываемые через TCFS2 и начинает колбасить. Причём команды на панели, которая вызывается первой, отрабатывают нормально, а дальше - чудеса в решете.
Провёл эксперимент. Поместил рядышком две команды:

em_Program
и
[em_Program_TCFS2]
cmd=%commander_path%\Plugins\exe\TCFS2\TCFS2.exe /ef tem(em_Program)

Если пунктов в меню указанное выше количество, то первая отрабатывает, вторая - нет.
Убираю часть пунктов из меню - вторая команда работает.
_________________
Windows 11 | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Avada



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

Post (Separately) Posted: Fri Oct 18, 2013 08:37    Post subject: Reply with quote

All
Во избежание ненужного дублирования темы объединены. Заголовок общей темы изменён на более универсальный.
_________________
Даже самая богатая фантазия
Не представит себе наши безобразия.
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 18, 2013 10:02    Post subject: Reply with quote

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



Joined: 04 Jan 2011
Posts: 1169
Location: Макеевка

Post (Separately) Posted: Fri Oct 18, 2013 14:38    Post subject: Reply with quote

MVV wrote:
LonerD,
Ну уж TCFS2 тут точно не при чем, она ж ничего сама не парсит, просто просит тотала выполнить команду...

Согласен.
Попробовал вызвать скрипт с той же пользовательской командой - получаю аналогичное сообщение "File not found" Neutral
Причём если вызывать скрипт с панели напрямую
%COMMANDER_PATH%\Utilities\AutoHotkey\AutoHotkey.exe %COMMANDER_PATH%\Scripts\SendTCUser.ahk
то он отрабатывает.
А если назначить этот же скрипт на em_-команду и сделать кнопку для этой команды и разместить её не на главной панели, то не отрабатывает. Если эту же кнопку перенести на ту панель, которая загружается по умолчанию - тогда кнопка отрабатывает.

Получается, дело не только в главном меню, но и в количестве em-команд на панелях. Question (у меня кнопки на панелях вызывают em-команды). Или даже в целом в общем количестве команд, которые видит Тотал.
На всякий случай проверил ещё одну теорию. Редактирование ini-файла с пользовательскими командами ничего не даёт, так что дело не в общем количестве прописанных команд, а в количестве так сказать загруженных в память.

Поправьте, плиз.
Я правильно понял принцип работы Тотала с командами?:
В памяти создаётся некий массив команд (всех или только em?). При загрузке Тотал вначале считывает файл главного меню и прописывает в этот массив все команды из меню. Также по мере выполнения прописываются все команды, вызванные в процессе работы другими средствами (через плагин autorun, через хоткеи, одна из другой и т.д...). При открытии панели инструментов Тотал перечитывает содержимое файла панели и тоже прописывает в массив все найденные на панели команды.
Размер массива с командами ограничен (сознательно Гислером или системные ограничения?). За один сеанс работы туда может быть прописано не более n-команд.
_________________
Windows 11 | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 18, 2013 15:03    Post subject: Reply with quote

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



Joined: 04 Jan 2011
Posts: 1169
Location: Макеевка

Post (Separately) Posted: Fri Oct 18, 2013 16:21    Post subject: Reply with quote

MVV
Смысл слов понял. Как проверить через Process Monitor - не понял
Проверил несколько другим способом.
Запустил Тотала, с помощью диспетчера задач сохранил дамп, перешёл в Тотале на вторую панель, сохранил дамп снова. Открыл дампы в гекс-редакторе. ЕМ-команды, прописанные на первой панели - встречаются в обоих дампах по два раза - один раз это фрагмент файла панели, а второй раз - это видимо загруженная в память команда. Прописанные на второй панели - встречаются в дампе только один раз как фрагмент файла панели.
Причём первые шесть команд второй панели - рабочие (и в дампе встречаются по два раза), а все команды что идут дальше - нет. То есть уже понятно, что Тотал прочитал файл панели, начал вносить встретившиеся em-команды в некий массив, но место в массиве закончилось.

Моя теория подтверждается. Чем больше em-команд встречает Тотал в процессе сеанса работы, тем больше переполняется его память, и начиная с некоторой встреченной команды все последующие встреченные команды уже не будут восприниматься.

Похоже, суммарно и получается лимит - 2000 пользовательских команд или около того.

Намеренное ли это ограничение для того, чтобы Тотал потреблял меньше памяти? Ненамеренные ограничения (Гислер прописал такое значение и не подумал, что кому-то может понадобиться больше)? Баг Тотала? Ограничения, накладываемые системой?

MVV
Можешь как-то донести эту мысль до Гислера, сформулировав её более правильно с точки зрения программиста (и самое главное - на английском) ?
_________________
Windows 11 | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
MVV



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

Post (Separately) Posted: Fri Oct 18, 2013 18:30    Post subject: Reply with quote

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



Joined: 04 Jan 2011
Posts: 1169
Location: Макеевка

Post (Separately) Posted: Fri Oct 18, 2013 20:44    Post subject: Reply with quote

Хм... А может Тахер и має рацію.
А может и нет. А может это лишь часть правды, а истина по прежнему где-то там...

Имена em-команд у меня занимают 37 Кб только для главного меню(даже если удалить все разделители между ними). И работают ведь. Именно в главном меню все команды работают. Значит, порог, похоже, всё же выше названных Тахером 32 кб.

У меня действительно имена комманд длинные, и составлены не просто из набора цифр, а "по смыслу".
Сильно длинные названия команд? ОК, все названия сложно перевести в циферки, как советует Тахер. Но в названиях многих команд у меня есть повторяющиеся символы. (em_prog_NazvaProgramy). Сделал кардинальное сокращение имён файлов (убрал приставку prog_ из названий) - везде, в меню, в пользовательских командах, в ассоциациях. Итого, суммарно имена всех em-команд сократились на 2000 символов. Что это дало? Ровным счётом - НИЧЕГО !!!. Если раньше работало меню, главная панель и первые несколько команд второй панели, то и теперь они же работают Confused Confused Confused
Попробовал наоборот - удлиннить названия всех команд. Опять та же история.

Попробовал сосчитать количество всех команд. При таком количестве это проблемно... В главном меню часть пунктов повторяется в разных местах... На панелях инструментов имена уникальные (отличаются от главного меню). В ассоциациях и хоткеях ещё есть уникальные еm-команды, которые грузятся с Тоталом.
Но если прикинуть (плюс-минус 10-20 команд), то как раз и получается
ВЫВОД: За сеанс работы Тотал может работать только с первыми 2000 увиденными (загруженными в память) пользовательскими командами.
_________________
Windows 11 | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1232

Post (Separately) Posted: Fri Oct 18, 2013 20:58    Post subject: Reply with quote

LonerD
TC 8.x supports a maximum of 2000 em_ commands.
Back to top
View user's profile Send private message
LonerD



Joined: 04 Jan 2011
Posts: 1169
Location: Макеевка

Post (Separately) Posted: Fri Oct 18, 2013 21:03    Post subject: Reply with quote

Доу. Пока я считал и писал - Гислер таки подтвердил опасения по поводу вызова всего 2000 команд. Почему? Зачем? За что такая несправедливость?
Попросил его увеличить количество команд... Если откажет - то можно идти за верёвкой и мылом.
_________________
Windows 11 | TC DreamLair eternal pre-α
Back to top
View user's profile Send private message
Andrey_A



Joined: 10 Apr 2009
Posts: 394
Location: Сочи

Post (Separately) Posted: Sat Oct 19, 2013 17:52    Post subject: Reply with quote

LonerD wrote:
Пока я считал и писал - Гислер таки подтвердил опасения по поводу вызова всего 2000 команд.


Он подтвердил ещё в 2010. Поддержал как мог) на офф сайте, если нет, так нет. Если уберёт или расширит ограничение - будет хорошо.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Общие вопросы All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
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