Страница 6 из 19

Добавлено: Ср июн 06, 2007 23:25
DrShark
Перехват команды DIR работает :)
Плохо, что текущий путь консоли берётся из противоположной панели, и смена таба/панели в коммандере ни на что не влияет.
Перехват команд типа cd, md, ... пока не работает.
VadiMPG писал(а):Я даже не понимаю, что такое "левая колонка "Мой компьютер"!
Думаю, имелась ввиду панель с открытой системной папкой :)

Добавлено: Ср июн 06, 2007 23:26
Alextp
Гислер удаляет Separate Tree из 7.5? Очень интересно, причем узнал об этом отсюда.
Жалко, хорошее было деревце.

Добавлено: Ср июн 06, 2007 23:28
VadiMGP
Плохо, что текущий путь консоли берётся из противоположной панели, и смена таба/панели в коммандере ни на что не влияет.
Это не плохо. Это мелочи, поверь мне. Уж я-то знаю. Если в главном консоль с тоталом уживется без членовредительства, то все остальное - брызги.

Добавлено: Ср июн 06, 2007 23:40
DrShark
Вообще, команды типа
cd c:\
или
c:
иногда глючат, как при наборе из КС тотала при включённой Консоли, так и при вводе из консоли.
Ещё баг заметил: после возвращения Тотала из трея Консолька становится очень маленькой. Приходится вручную менять размер.

Добавлено: Ср июн 06, 2007 23:41
Alextp
Это не мелочи, впрочем, поправить должно быть нетрудно. раз можно взять путь из противоп. панели, можно, думается, взять и из табов текущей панели. Это ж все равно (взятие пути с против. панели) не через api делается?

Добавлено: Ср июн 06, 2007 23:42
DrShark
Offtop:
2Alextp
Гислер удаляет Separate Tree из 7.5? Очень интересно, причем узнал об этом отсюда.
Жалко, хорошее было деревце.
Ты ещё можешь попытатся его переубедить :)
Почему бы тебе не стать альфа-тестером?

Добавлено: Ср июн 06, 2007 23:44
VadiMGP
Обнаружил еще один эффект. Захожу в директорию с 2000 файлов, сортирую по дате - сортировка проходит в момент. Загружаю плагин (но не открываю консоль) сортировка идет 6-7 секунд! Выгружаю плагин - сортировка снова идет мгновенно.
Проц - 2.4 Ггц Памяти - 1.5 Гиг.

Добавлено: Ср июн 06, 2007 23:46
Worros
Не только сортировка, даже вызов диалога настроек замедляется ощутимо на глаз.Для усугубления эффекта советую открыть тот же Edit. С ним очень хорошо заметно.

Добавлено: Ср июн 06, 2007 23:49
DrShark
2VadiMGP
А что ты хотел - это же контентный плагин, и даже если он возвращает Тоталу пустое значение (гипотетически), он делает это для каждого файла.

Добавлено: Ср июн 06, 2007 23:59
VadiMGP
2DrShark
Нет, я сортировал уже в обычном режиме - Full.
Worros писал(а):Для усугубления эффекта советую открыть тот же Edit. С ним очень хорошо заметно.
Тоже верно, но тут хотя бы можно винить доолнительный процесс - ведь cmd уже запущен. А жуткая задержка есть даже на "чистом" плагин, без примесей.

Добавлено: Чт июн 07, 2007 00:46
B4rr4cuda
Ну что еще могу предложить - я мог бы видео сделать - но не думаю, что это поможет. Но зачем забивать - сделай трассировку, лень что ли?
Трасировка как таковая не прокатит (пять таймеров + хук на ресайз+перекрёстные (неявные рекурсивные) вызовы)
засовокупляюсь трасировать. А твой глюк я просто не могу повторить, сколько не пытался. А забить потому что отключаем колонки с Тотал консоле и выгружаем, я не могу понять зачем выгрузка при включеной колонке ТоталКонсоле, если будет закрытие консоли (формы) по хоткею? А кому надо плагин полностью отключить - сменил колонки и выгрузил.
По Enter работает. По Shift+Enter - не перехватывает.
Принято. Знаю где баг. Кстати у тебя случаем не NoClose или что-то подобное?
Это времмено, перехват комманд будет абсолютный. Уже есть наработки.

но очень забавно реагирует на cd
cd тотал обрабатывает самостоятельно.
Нажатие буквенных клавиш вызывает перемещение курсора в поле ввода.
Не, буквы вводяться, но эта бяка не отображаеться. Глюк такой же как с NC. Это системная бяка, исправить не могу. Единственное что могу предложить - хоткей на отключение авторесайза. Тогда всё работает нормально.
И еще один потрясный эффект наблюдается только на "обвешанном" Тотале. На чистом нет. Попытка выгрузить плагин вызывает появление окна соединения.Выглядит так, как будто диск, выбранный текущим, "заснул" и раскручивает блины.Иногда после этого Тотал крэшится. TC7RC5 на WinXP SP2.Что бы такое отключить? Если все подряд поочередно-слишком много.С чего начать? Access violation at address 7C901010.Read of address C000005C
:roll: Без понятия. Слишком много неизвестных данных.
Как уже писал VadiMGP наши плагины совместно работают со скрипом
(Запускаем TotalConsole потом TConsole, при попытке изменить размер TotalConsole крэшится. Кстати ты ведь ко всем скрытым cmd аттачишься? )
В общем наши плагины сильно конфликтуют за обладание консольных окон. А борьба за пространство уже началась.
(To VadiMGP придёться таки серьёзно заняться твоей идеей (потом).)

У меня тоже обвешаный (как и у любого мало мальски опытного Тотальщика), так что листинг плагов в студию,будем сравнивать и искать жучка.
Вообще, команды типа cd c:\ или c: иногда глючат, как при наборе из КС тотала при включённой Консоли, так и при вводе из консоли.
Это не мой баг. Консоль что получает то и передаёт дальше.
Ещё баг заметил: после возвращения Тотала из трея Консолька становится очень маленькой. Приходится вручную менять размер.
Отлавливаеться событие ресайза, проверяеться местонахождение КС тотала и его панелей и всобачиваеться между ними. При свёрнутом состоянии они чёрт знает где надяться вот и минимизируеться панелька.
Но принято. Попробую наладить.
Это не мелочи, впрочем, поправить должно быть нетрудно. раз можно взять путь из противоп. панели, можно, думается, взять и из табов текущей панели. Это ж все равно (взятие пути с против. панели) не через api делается?
Через апи родной ты мой. Всё взаимодействие с Тоталам (размеры положения и тд и тп) только через WinAPI.
Вот только взятие пути я не делал, путь берёться самим cmd из переменых окружения. Тотал при обновлении панели (или переходе в папку, не уточнял) выполняет ChangeDir (cd) в каталог в который переходит.
Можешь ради интереса открыть консольку, в текущей панели сменить каталог (только мышью) и сразу кликнуть "новая консоль". Будет взят текущий каталог активной панели.


Обнаружил еще один эффект. Захожу в директорию с 2000 файлов, сортирую по дате - сортировка проходит в момент. Загружаю плагин (но не открываю консоль) сортировка идет 6-7 секунд! Выгружаю плагин - сортировка снова идет мгновенно.
Видимо придёться таки возвращать пустую строку вместо ft_delayed.
А может это хук мутит воду.
Принято.
Не только сортировка, даже вызов диалога настроек замедляется ощутимо на глаз.Для усугубления эффекта советую открыть тот же Edit. С ним очень хорошо заметно.
А вот это скорее всего хук на ресайз (он довольно серьёзно тормозит процесс). Кто знает - что быстрее обрабатываеться субклассинг или хук (или всё равно)? Потому что суть у них одна, а методики чуть отличаються...

Добавлено: Чт июн 07, 2007 00:56
B4rr4cuda
взять путь из противоп. панели, можно, думается, взять и из табов текущей панели
Сделать то можно, но как отреагирует cmd на смену каталога во время выполнения какой-либо команды? (Во время архивирования например.)

Добавлено: Чт июн 07, 2007 03:16
VadiMGP
я не могу понять зачем выгрузка при включеной колонке ТоталКонсоле, если будет закрытие консоли (формы) по хоткею?
Дело, конечно, не в самой выгрузке. Дело в том, что происходит нечто, чего быть не должно. Значит где-то что-то не так. Вот это что-то и надо бы отловить и изничтожить. Чем больше вычистишь сейчас, тем легче будет отлавливать баги на более поздней стадии. На более чистом столе легче прихлопнуть таракана, не боясь, что смахнешь на пол недопитый чай или въедешь локтем в недоеденую пиццу. :wink:
Кстати, все хотел спросить - а почему плаг такого большого размера? Я сейчас глянул - кода - 474К; ресурсов - 100К! Может там что лишнее есть, повыкидывать можно? Опять-таки, легче жить будет.
Трасировка как таковая не прокатит (пять таймеров + хук на ресайз+перекрёстные (неявные рекурсивные) вызовы)
Ну тебе виднее. Но ничего страшного не вижу. Именно такие вещи и трассируют. А если структура программы простая - чего ее трассировать-то?
Кстати у тебя случаем не NoClose или что-то подобное?
Именно NoClose. :) Он, родимый.
(Запускаем TotalConsole потом TConsole, при попытке изменить размер TotalConsole крэшится. Кстати ты ведь ко всем скрытым cmd аттачишься? )
Это ко мне вопрос? Я никуда не аттачусь.
А борьба за пространство уже началась.
"Предупреждал я Фокса - доведут его вино и бабы до цугундера." © Горбатый. :)
А может это хук мутит воду.
Чисто интуитивно - мне тоже так кажется. Не спрашивай почему - очком чую.
Кто знает - что быстрее обрабатываеться субклассинг или хук (или всё равно)? Потому что суть у них одна, а методики чуть отличаються...
Как правило, сабклассинг и быстрее и надежнее. Он, в отличие от хуков, не требует от системы практически ничего. Возможно и существуют ситуации когда хук сработает быстрее, но сразу такой пример в голову не приходит.
Но на мой взгляд именно суть у них разная, хотя внешнее сходство имеется - есть вещи которые можно сделать и так и сяк.
Сабклассинг предназначен для модификации стандартного обработчика сообщения (то есть для изменения поведения окна), а хук - для для реакции на системные события. Другими словами, при сабклассинге ты становишься тем окном, которое сабклассировал, а при хуке ты смотришь на все окна со стороны.
И вообще, у меня устоялась прочная иерархия предпочтений - если можно без особых хлопот обойтись сабклассингом - будет сабклассинг. Если невозможно или, в данном конкретном случае, локальный хук намного проще в реализации - локальный хук. И только как крайнее средство, когда ничего другое не подходит по техническим соображениям - глобальный хук. В 99% я предпочту потратить неделю на возню с менее мощным локальным хуком но останусь в рамках одного процесса, чем погонюсь за "выгодой" сэкономить эту неделю на глобальном. Очень часто такая погоня за экономией потом боком выходит.
придёться таки серьёзно заняться твоей идеей (потом).
Хм... У меня знаешь сколько вещей отложено на "потом"... Черт, а может всамделе плюнуть на все, сесть и сделать...

Добавлено: Чт июн 07, 2007 03:49
Rodny
Выяснил, наконец, в чём проблема с зависанием Тотала при автоинстале. В установленном параметре ThreadFindFirst=1.

Добавлено: Чт июн 07, 2007 13:38
B4rr4cuda
Чем больше вычистишь сейчас, тем легче будет отлавливать баги на более поздней стадии. На более чистом столе легче прихлопнуть таракана, не боясь, что смахнешь на пол недопитый чай или въедешь локтем в недоеденую пиццу.
Значиться результаты трасировки:
1.При установке плагина тотал дважды подключает плагин.
2.При отключенных колонках плагин выгружаеться нормально.
3.При каждом перечитывании панелей с включеной колонкой
ТоталКонсоле
происходит вызов плагина Тоталом.
4.После cm_UnloadPlugins происходит перечитывание панелей см пункт 3
-------------
Так что баг не мой.
Кстати, все хотел спросить - а почему плаг такого большого размера? Я сейчас глянул - кода - 474К; ресурсов - 100К! Может там что лишнее есть, повыкидывать можно? Опять-таки, легче жить будет.
И можно и нужно. Это Делфя постаралась...
Ну тебе виднее. Но ничего страшного не вижу. Именно такие вещи и трассируют. А если структура программы простая - чего ее трассировать-то?
Не знаю простая, или сложная - но я уже сейчас по двадцать минут ищу место откуда вызываеться какая-нить функция по какому нибудь событию.
И это учитывая коментарии. Надо опять всё переписывать....
Именно NoClose.
:lol: Когда Шифт+Ентер тотал вызывает не смд с путём, а ноклосе, так что придёться пересматривать варианты или передавать /k смд при запуске.
Это ко мне вопрос? Я никуда не аттачусь.
TConsole пытаеться приаттачиться ко всем скрытым консолям. Я смеха ради чуток переписал код (отключил выход по эксепшенам) и наблюдал разрушиельный бой двух консолей.
На уровне кода это выглядело как захват Берлина во Вторую Мировую.
Берлином была моя консолька. :lol: :lol: ТКонсоле на удивление жёстко захапала все консоли. :lol:
когда ничего другое не подходит по техническим соображениям - глобальный хук
Размышлял - пришёл к аналогичным выводам. Глобальный хук у меня слопал 3-7% ресурсов. А будь их десяток? Буду переписывать хук на сабкласс.
Хм... У меня знаешь сколько вещей отложено на "потом"...
Я думаю что не меньше чем у меня... :lol:
Выяснил, наконец, в чём проблема с зависанием Тотала при автоинстале. В установленном параметре ThreadFindFirst=1.
Обьясните плиз что это такое и как оно влияет на автоустановку?