TC Plugins Manager
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Автор - барин.
Но вопрос всё-таки есть: почему ты после удаления плагина не шлёшь тоталу команду cm_UnloadPlugins? А то сейчас как получается: установил плаг, посмотрел, что он глючит/не нужен/хуже, чем аналогичный уже имеющийся, удалил из твоей программы, пошёл удалять с диска - а тотал тебе говорит, что файл плагина удалить нельзя. Я ему говорю: "cm_UnloadPlugins," - и файл потом спокойно удаляется. Зачем каждый раз самому "говорить", когда можно автоматизировать?
Но вопрос всё-таки есть: почему ты после удаления плагина не шлёшь тоталу команду cm_UnloadPlugins? А то сейчас как получается: установил плаг, посмотрел, что он глючит/не нужен/хуже, чем аналогичный уже имеющийся, удалил из твоей программы, пошёл удалять с диска - а тотал тебе говорит, что файл плагина удалить нельзя. Я ему говорю: "cm_UnloadPlugins," - и файл потом спокойно удаляется. Зачем каждый раз самому "говорить", когда можно автоматизировать?
Если запрещать плагины по одному (все время запрещать первый из списка), то приоритет и должен выставляться как [0]. Чтобы этого не было, запрещай, выделив сразу несколько плагинов (клик мышкой с нажатым Ctrl).DrShark писал(а):Не знаю, баг это или нет.
Если в менеджере по-очереди
запрещать плагины и перезапускать
Total Commander без перезапуска
менеджера плагинов,
приоритет каждого последующего
плагина сбрасывается на [0],
то есть не запоминается.
Таким образом у всех запещённых плагинов
приоритет запоминается как [0].
funduk
Когда вызывать - после удаления/редактирования плагина?
Я вообще не думал, что команда cm_UnloadPlugins может мне пригодиться. Если она нужна, могу ее, конечно, вызывать.Но вопрос всё-таки есть: почему ты после удаления плагина не шлёшь тоталу команду cm_UnloadPlugins? А то сейчас как получается: установил плаг, посмотрел, что он глючит/не нужен/хуже, чем аналогичный уже имеющийся, удалил из твоей программы, пошёл удалять с диска - а тотал тебе говорит, что файл плагина удалить нельзя.
Когда вызывать - после удаления/редактирования плагина?
funduk
Добавил поддержку cm_UnloadPlugins, подробнее см. в readme:
http://alextp.wincmd.ru/files/util_TCPlugman_beta.zip
Потестируй pls, нормально ли отрабатывает команда? Я у себя разницы не заметил. Например, открываю листер-плагин, и после посыла команды Тотал никак не реагирует, плагин даже не моргает. Что вообще должно измениться?
Добавил поддержку cm_UnloadPlugins, подробнее см. в readme:
http://alextp.wincmd.ru/files/util_TCPlugman_beta.zip
Потестируй pls, нормально ли отрабатывает команда? Я у себя разницы не заметил. Например, открываю листер-плагин, и после посыла команды Тотал никак не реагирует, плагин даже не моргает. Что вообще должно измениться?
Должны выгрузится все НЕИСПОЛЬЗУЕМЫЕ плагины. Т.е. после того, когда мы хоть раз нажали F3, тс загружает подряд все плагины в поиске нужного. Если плагин найден, то на этом он останавливается. Но библиотеки при этом не выгружаются (по понятныс причинам - что-б по новой в следующий раз не грузить). С FS (и вроде и с WCX) ситуевина проще - выгружает всегда. А вот если задействован хоть один из Lister-плагинов, то толку никакого - не выгружает. По крайней мере исенно этот плагин. Следовательно и перечитывание настроек, касающихся Lister-плагинов работает некорректно (хоть один, но загруженЧто вообще должно измениться?
Хороший юзер - мертвый юзер
Мои работы
Мои работы
С листер-плагинами ясно. А с FS как - если я открою панель плагина, то он от cm_UnloadPlugins должен закрыться (или хотя бы моргнуть)? Что-то ничего не происходит...SCHMaster писал(а):С FS (и вроде и с WCX) ситуевина проще - выгружает всегда. А вот если задействован хоть один из Lister-плагинов, то толку никакого - не выгружает. По крайней мере исенно этот плагин.
Имхо ничего и не должно происходить визуально заметного в случае с любым типом плагинов. Я эту команду часто использую и никогда не замечал никаких миганий и т.п. А вообще надо бы у Гислера спросить.Alextp писал(а):Что-то ничего не происходит...
Пока работает отлично, но в ридми надо написать, для чего эта команда может быть использована, а также "контектсное" исправить
Кстати, а почему "Не включайте, если у Вас установлено несколько копий TC с разными ini-файлами."?
Н-да, действительно. Но я обычно (почти) все окна листера закрываю, прежде чем что-то удалять.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;funduk
Наверное, можно как-то узнать по хендлу окна, с какими параметрами оно запущено.
Как это сделать, я пока не знаю.
И еще: допустим, из TC запустили Plugman, а в нем поменяли ini-файл. Считать родителя (TC) окном, которому надо посылать команду или нет? Или посылать только окнам TC, у которых те же ini-файлы?
Наверное, можно как-то узнать по хендлу окна, с какими параметрами оно запущено.
Как это сделать, я пока не знаю.
И еще: допустим, из TC запустили Plugman, а в нем поменяли ini-файл. Считать родителя (TC) окном, которому надо посылать команду или нет? Или посылать только окнам TC, у которых те же ini-файлы?