View previous topic :: View next topic |
Author |
Message |
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Thu Oct 17, 2013 21:47 Post subject: |
|
|
TWinKey установлен? Если да, то ноги растут, скорее всего, оттуда. Отключи и попробуй. Сейчас лень искать (если надо, то найду) мои диалоги с VadiMGP по этому поводу.
А вот такие аццкие цифры появляются по воле доброхотов типа Petermad, которые стряпают отличные расширенные меню и присобачивают в языковый файл хренову гору собственных em_ команд.
Сейчас подсчитал - у меня около сотни своих и около двухсот - от Petermad'а. Хотя триста - это не 2000... После того, как VadiMGP подрихтовал TWinKey, у меня глюки прекратились. Может, он просто расширил границы, не решив проблему принципиально? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Maximus
Joined: 07 Apr 2005 Posts: 927 Location: Украина, Кировоградская обл., г. Знаменка
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Oct 18, 2013 00:28 Post subject: |
|
|
Maximus
відповів
Вахмурка
Спасибо, но причина не в TWinKey. Он действительно установлен, но проблема проявляется и после его отключения, и в 64-х битном Тотале. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Oct 18, 2013 05:22 Post subject: |
|
|
Вот же, нашёл таки обсуждение. Утверждается про 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 |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10277 Location: Россия, Саратов
|
(Separately) Posted: Fri Oct 18, 2013 08:37 Post subject: |
|
|
All
Во избежание ненужного дублирования темы объединены. Заголовок общей темы изменён на более универсальный. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Oct 18, 2013 14:38 Post subject: |
|
|
MVV wrote: | LonerD,
Ну уж TCFS2 тут точно не при чем, она ж ничего сама не парсит, просто просит тотала выполнить команду... |
Согласен.
Попробовал вызвать скрипт с той же пользовательской командой - получаю аналогичное сообщение "File not found"
Причём если вызывать скрипт с панели напрямую
%COMMANDER_PATH%\Utilities\AutoHotkey\AutoHotkey.exe %COMMANDER_PATH%\Scripts\SendTCUser.ahk
то он отрабатывает.
А если назначить этот же скрипт на em_-команду и сделать кнопку для этой команды и разместить её не на главной панели, то не отрабатывает. Если эту же кнопку перенести на ту панель, которая загружается по умолчанию - тогда кнопка отрабатывает.
Получается, дело не только в главном меню, но и в количестве em-команд на панелях. (у меня кнопки на панелях вызывают em-команды). Или даже в целом в общем количестве команд, которые видит Тотал.
На всякий случай проверил ещё одну теорию. Редактирование ini-файла с пользовательскими командами ничего не даёт, так что дело не в общем количестве прописанных команд, а в количестве так сказать загруженных в память.
Поправьте, плиз.
Я правильно понял принцип работы Тотала с командами?:
В памяти создаётся некий массив команд (всех или только em?). При загрузке Тотал вначале считывает файл главного меню и прописывает в этот массив все команды из меню. Также по мере выполнения прописываются все команды, вызванные в процессе работы другими средствами (через плагин autorun, через хоткеи, одна из другой и т.д...). При открытии панели инструментов Тотал перечитывает содержимое файла панели и тоже прописывает в массив все найденные на панели команды.
Размер массива с командами ограничен (сознательно Гислером или системные ограничения?). За один сеанс работы туда может быть прописано не более n-команд. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Oct 18, 2013 15:03 Post subject: |
|
|
Если так подумать, из USERCMD.ini можно считывать команды средствами чтения INI-файлов, и знать нужно лишь их имена. С помощью Process Monitor можно посмотреть, к каким файлам тотал обращается при вызове команды. А хранит ли тотал команды в памяти, можно посмотреть, создавая команды с уникальными параметрами, чтобы искать их в памяти процесса. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Oct 18, 2013 16:21 Post subject: |
|
|
MVV
Смысл слов понял. Как проверить через Process Monitor - не понял
Проверил несколько другим способом.
Запустил Тотала, с помощью диспетчера задач сохранил дамп, перешёл в Тотале на вторую панель, сохранил дамп снова. Открыл дампы в гекс-редакторе. ЕМ-команды, прописанные на первой панели - встречаются в обоих дампах по два раза - один раз это фрагмент файла панели, а второй раз - это видимо загруженная в память команда. Прописанные на второй панели - встречаются в дампе только один раз как фрагмент файла панели.
Причём первые шесть команд второй панели - рабочие (и в дампе встречаются по два раза), а все команды что идут дальше - нет. То есть уже понятно, что Тотал прочитал файл панели, начал вносить встретившиеся em-команды в некий массив, но место в массиве закончилось.
Моя теория подтверждается. Чем больше em-команд встречает Тотал в процессе сеанса работы, тем больше переполняется его память, и начиная с некоторой встреченной команды все последующие встреченные команды уже не будут восприниматься.
Похоже, суммарно и получается лимит - 2000 пользовательских команд или около того.
Намеренное ли это ограничение для того, чтобы Тотал потреблял меньше памяти? Ненамеренные ограничения (Гислер прописал такое значение и не подумал, что кому-то может понадобиться больше)? Баг Тотала? Ограничения, накладываемые системой?
MVV
Можешь как-то донести эту мысль до Гислера, сформулировав её более правильно с точки зрения программиста (и самое главное - на английском) ? _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Oct 18, 2013 20:44 Post subject: |
|
|
Хм... А может Тахер и має рацію.
А может и нет. А может это лишь часть правды, а истина по прежнему где-то там...
Имена em-команд у меня занимают 37 Кб только для главного меню(даже если удалить все разделители между ними). И работают ведь. Именно в главном меню все команды работают. Значит, порог, похоже, всё же выше названных Тахером 32 кб.
У меня действительно имена комманд длинные, и составлены не просто из набора цифр, а "по смыслу".
Сильно длинные названия команд? ОК, все названия сложно перевести в циферки, как советует Тахер. Но в названиях многих команд у меня есть повторяющиеся символы. (em_prog_NazvaProgramy). Сделал кардинальное сокращение имён файлов (убрал приставку prog_ из названий) - везде, в меню, в пользовательских командах, в ассоциациях. Итого, суммарно имена всех em-команд сократились на 2000 символов. Что это дало? Ровным счётом - НИЧЕГО !!!. Если раньше работало меню, главная панель и первые несколько команд второй панели, то и теперь они же работают
Попробовал наоборот - удлиннить названия всех команд. Опять та же история.
Попробовал сосчитать количество всех команд. При таком количестве это проблемно... В главном меню часть пунктов повторяется в разных местах... На панелях инструментов имена уникальные (отличаются от главного меню). В ассоциациях и хоткеях ещё есть уникальные еm-команды, которые грузятся с Тоталом.
Но если прикинуть (плюс-минус 10-20 команд), то как раз и получается
ВЫВОД: За сеанс работы Тотал может работать только с первыми 2000 увиденными (загруженными в память) пользовательскими командами. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Skif_off
Joined: 28 Nov 2012 Posts: 1232
|
|
Back to top |
|
|
LonerD
Joined: 04 Jan 2011 Posts: 1169 Location: Макеевка
|
(Separately) Posted: Fri Oct 18, 2013 21:03 Post subject: |
|
|
Доу. Пока я считал и писал - Гислер таки подтвердил опасения по поводу вызова всего 2000 команд. Почему? Зачем? За что такая несправедливость?
Попросил его увеличить количество команд... Если откажет - то можно идти за верёвкой и мылом. _________________ Windows 11 | TC DreamLair eternal pre-α |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Sat Oct 19, 2013 17:52 Post subject: |
|
|
LonerD wrote: | Пока я считал и писал - Гислер таки подтвердил опасения по поводу вызова всего 2000 команд. |
Он подтвердил ещё в 2010. Поддержал как мог) на офф сайте, если нет, так нет. Если уберёт или расширит ограничение - будет хорошо. |
|
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
|