Страница 3 из 25

Добавлено: Вт мар 07, 2006 21:25
funduk
Лучше в плане выполнения своего дела, но не в плане быстроты. Лучше, если юзер решает, что ему важнее.

Добавлено: Вт мар 14, 2006 19:51
Alextp
funduk
Нет, наверное, делать второй вариант запрещения (переименование dll) не буду: много мороки, и мало толку. И вряд ли какой пользователь догадается зайти в настроки и поменять опцию "Режим запрещения плагинов" для того, чтобы избежать лишней перезагрузки TC.

Добавлено: Вт мар 14, 2006 20:50
funduk
Автор - барин.
Но вопрос всё-таки есть: почему ты после удаления плагина не шлёшь тоталу команду cm_UnloadPlugins? А то сейчас как получается: установил плаг, посмотрел, что он глючит/не нужен/хуже, чем аналогичный уже имеющийся, удалил из твоей программы, пошёл удалять с диска - а тотал тебе говорит, что файл плагина удалить нельзя. Я ему говорю: "cm_UnloadPlugins," - и файл потом спокойно удаляется. Зачем каждый раз самому "говорить", когда можно автоматизировать?

Добавлено: Пт мар 17, 2006 14:29
Alextp
DrShark писал(а):Не знаю, баг это или нет.
Если в менеджере по-очереди
запрещать плагины и перезапускать
Total Commander без перезапуска
менеджера плагинов,
приоритет каждого последующего
плагина сбрасывается на [0],
то есть не запоминается.
Таким образом у всех запещённых плагинов
приоритет запоминается как [0].
Если запрещать плагины по одному (все время запрещать первый из списка), то приоритет и должен выставляться как [0]. Чтобы этого не было, запрещай, выделив сразу несколько плагинов (клик мышкой с нажатым Ctrl).

Добавлено: Пт мар 17, 2006 14:35
Alextp
funduk
Но вопрос всё-таки есть: почему ты после удаления плагина не шлёшь тоталу команду cm_UnloadPlugins? А то сейчас как получается: установил плаг, посмотрел, что он глючит/не нужен/хуже, чем аналогичный уже имеющийся, удалил из твоей программы, пошёл удалять с диска - а тотал тебе говорит, что файл плагина удалить нельзя.
Я вообще не думал, что команда cm_UnloadPlugins может мне пригодиться. Если она нужна, могу ее, конечно, вызывать.
Когда вызывать - после удаления/редактирования плагина?

Добавлено: Пт мар 17, 2006 15:00
funduk
В обоих случаях, если не трудно.

Добавлено: Вт апр 18, 2006 17:24
Alextp
funduk
Добавил поддержку cm_UnloadPlugins, подробнее см. в readme:

http://alextp.wincmd.ru/files/util_TCPlugman_beta.zip

Потестируй pls, нормально ли отрабатывает команда? Я у себя разницы не заметил. Например, открываю листер-плагин, и после посыла команды Тотал никак не реагирует, плагин даже не моргает. Что вообще должно измениться?

Добавлено: Ср апр 19, 2006 02:24
SCHMaster
Что вообще должно измениться?
Должны выгрузится все НЕИСПОЛЬЗУЕМЫЕ плагины. Т.е. после того, когда мы хоть раз нажали F3, тс загружает подряд все плагины в поиске нужного. Если плагин найден, то на этом он останавливается. Но библиотеки при этом не выгружаются (по понятныс причинам - что-б по новой в следующий раз не грузить). С FS (и вроде и с WCX) ситуевина проще - выгружает всегда. А вот если задействован хоть один из Lister-плагинов, то толку никакого - не выгружает. По крайней мере исенно этот плагин. Следовательно и перечитывание настроек, касающихся Lister-плагинов работает некорректно (хоть один, но загружен :) и может испортить всю картину).

Добавлено: Ср апр 19, 2006 10:18
Alextp
SCHMaster писал(а):С FS (и вроде и с WCX) ситуевина проще - выгружает всегда. А вот если задействован хоть один из Lister-плагинов, то толку никакого - не выгружает. По крайней мере исенно этот плагин.
С листер-плагинами ясно. А с FS как - если я открою панель плагина, то он от cm_UnloadPlugins должен закрыться (или хотя бы моргнуть)? Что-то ничего не происходит...

Добавлено: Ср апр 19, 2006 12:23
funduk
Alextp писал(а):Что-то ничего не происходит...
Имхо ничего и не должно происходить визуально заметного в случае с любым типом плагинов. Я эту команду часто использую и никогда не замечал никаких миганий и т.п. А вообще надо бы у Гислера спросить.

Пока работает отлично, но в ридми надо написать, для чего эта команда может быть использована, а также "контектсное" исправить :wink:
Кстати, а почему "Не включайте, если у Вас установлено несколько копий TC с разными ini-файлами."?
SCHMaster писал(а):хоть один, но загружен и может испортить всю картину
Н-да, действительно. Но я обычно (почти) все окна листера закрываю, прежде чем что-то удалять.

Добавлено: Ср апр 19, 2006 12:40
Alextp
funduk писал(а):Имхо ничего и не должно происходить визуально заметного в случае с любым типом плагинов. Я эту команду часто использую и никогда не замечал никаких миганий и т.п. А вообще надо бы у Гислера спросить.
Ладно, выпускаю так, а потом можно и спросить.
Пока работает отлично, но в ридми надо написать, для чего эта команда может быть использована
Не в ридми, в FAQ напишу.
Кстати, а почему "Не включайте, если у Вас установлено несколько копий TC с разными ini-файлами."?
Потому что команда посылается первому найденному окну ТК, без проверки, тот ли ТК запущен, с которым работает программа, или другой. Если запущено несколько копий - команду выполнит только одна...

Добавлено: Ср апр 19, 2006 12:54
funduk
без проверки, тот ли ТК запущен, с которым работает программа, или другой. Если запущено несколько копий - команду выполнит только одна...
А почему без проверки-то? Я, например, постоянно запускаю plugman из-под TC, соответственно, родителя plugman знает. А если из plugman'а TC перезапустить, то plugman будет знать и потомка.

Добавлено: Ср апр 19, 2006 13:04
Alextp
funduk писал(а):А почему без проверки-то? Я, например, постоянно запускаю plugman из-под TC, соответственно, родителя plugman знает.
А как я сделаю проверку? Я ищу окно TC так:

Код: Выделить всё

procedure UnloadPlugins;
const
  EM_DISPLAYBAND = WM_USER+51;
  cm_UnloadPlugins = 2913;
var
  hWnd: THandle;
begin
  hWnd:= FindWindow('TTOTAL_CMD', nil);
  if hWnd=0 then Exit;
  SendMessage(hWnd, EM_DISPLAYBAND, cm_UnloadPlugins, 0);
  Sleep(200);
end;

Добавлено: Ср апр 19, 2006 13:24
funduk
Ну, народ как-то узнаёт. Я под винду не программировал.
Edit: а как же ты узнаёшь, какой из них перезапускать? Или ты корректно перезапускаешь, только если один экземпляр?

Добавлено: Ср апр 19, 2006 13:31
Alextp
funduk
Наверное, можно как-то узнать по хендлу окна, с какими параметрами оно запущено.
Как это сделать, я пока не знаю.
И еще: допустим, из TC запустили Plugman, а в нем поменяли ini-файл. Считать родителя (TC) окном, которому надо посылать команду или нет? Или посылать только окнам TC, у которых те же ini-файлы?