Добавлено: Вт мар 07, 2006 21:25
Лучше в плане выполнения своего дела, но не в плане быстроты. Лучше, если юзер решает, что ему важнее.
Форум поддержки пользователей Total Commander
https://forum.wincmd.ru/
Если запрещать плагины по одному (все время запрещать первый из списка), то приоритет и должен выставляться как [0]. Чтобы этого не было, запрещай, выделив сразу несколько плагинов (клик мышкой с нажатым Ctrl).DrShark писал(а):Не знаю, баг это или нет.
Если в менеджере по-очереди
запрещать плагины и перезапускать
Total Commander без перезапуска
менеджера плагинов,
приоритет каждого последующего
плагина сбрасывается на [0],
то есть не запоминается.
Таким образом у всех запещённых плагинов
приоритет запоминается как [0].
Я вообще не думал, что команда cm_UnloadPlugins может мне пригодиться. Если она нужна, могу ее, конечно, вызывать.Но вопрос всё-таки есть: почему ты после удаления плагина не шлёшь тоталу команду cm_UnloadPlugins? А то сейчас как получается: установил плаг, посмотрел, что он глючит/не нужен/хуже, чем аналогичный уже имеющийся, удалил из твоей программы, пошёл удалять с диска - а тотал тебе говорит, что файл плагина удалить нельзя.
Должны выгрузится все НЕИСПОЛЬЗУЕМЫЕ плагины. Т.е. после того, когда мы хоть раз нажали F3, тс загружает подряд все плагины в поиске нужного. Если плагин найден, то на этом он останавливается. Но библиотеки при этом не выгружаются (по понятныс причинам - что-б по новой в следующий раз не грузить). С FS (и вроде и с WCX) ситуевина проще - выгружает всегда. А вот если задействован хоть один из Lister-плагинов, то толку никакого - не выгружает. По крайней мере исенно этот плагин. Следовательно и перечитывание настроек, касающихся Lister-плагинов работает некорректно (хоть один, но загруженЧто вообще должно измениться?
С листер-плагинами ясно. А с FS как - если я открою панель плагина, то он от cm_UnloadPlugins должен закрыться (или хотя бы моргнуть)? Что-то ничего не происходит...SCHMaster писал(а):С FS (и вроде и с WCX) ситуевина проще - выгружает всегда. А вот если задействован хоть один из Lister-плагинов, то толку никакого - не выгружает. По крайней мере исенно этот плагин.
Имхо ничего и не должно происходить визуально заметного в случае с любым типом плагинов. Я эту команду часто использую и никогда не замечал никаких миганий и т.п. А вообще надо бы у Гислера спросить.Alextp писал(а):Что-то ничего не происходит...
Н-да, действительно. Но я обычно (почти) все окна листера закрываю, прежде чем что-то удалять.SCHMaster писал(а):хоть один, но загружен и может испортить всю картину
Ладно, выпускаю так, а потом можно и спросить.funduk писал(а):Имхо ничего и не должно происходить визуально заметного в случае с любым типом плагинов. Я эту команду часто использую и никогда не замечал никаких миганий и т.п. А вообще надо бы у Гислера спросить.
Не в ридми, в FAQ напишу.Пока работает отлично, но в ридми надо написать, для чего эта команда может быть использована
Потому что команда посылается первому найденному окну ТК, без проверки, тот ли ТК запущен, с которым работает программа, или другой. Если запущено несколько копий - команду выполнит только одна...Кстати, а почему "Не включайте, если у Вас установлено несколько копий TC с разными ini-файлами."?
А почему без проверки-то? Я, например, постоянно запускаю plugman из-под TC, соответственно, родителя plugman знает. А если из plugman'а TC перезапустить, то plugman будет знать и потомка.без проверки, тот ли ТК запущен, с которым работает программа, или другой. Если запущено несколько копий - команду выполнит только одна...
А как я сделаю проверку? Я ищу окно TC так:funduk писал(а):А почему без проверки-то? Я, например, постоянно запускаю plugman из-под TC, соответственно, родителя plugman знает.
Код: Выделить всё
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;