helbvtynec
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору AkulaBig У вас там какой-то раздрай с окнами и фокусами: 1) Если в системе открыт совершенно посторонний Ирфан, то плагин бесцеремонно хватает его и лепит к листеру, и так же бесцеремонно потом убивает, а тот который он запустил остается в непонятках висеть сиротливым огрызком окна. 2) Если во время быстрого просмотра есть хоть одно открытое окно в системе со свойством OnTop, то фокус при переходе по файлам возвращается ему, а не Тоталу. Наугад делать нельзя. Везде должна быть работа исключительно с конкретными хендлами окон конкретных процессов Ирфана и Тотала, и не на авось, а со слежением за результатом — это Винда не неё полагаться нельзя. По вот этой паре симптомов можно предположить, что там еще достаточно таких проблем. Серьезный баг (вашего плагина) с зависанием по Esc на видео (подчеркну: родной функционал Ирфана, из коробки, не мы туда его добавляем) всё еще на месте. Плагин вообще не за тем следит по-моему: если по Alt+F4 втроенный Ирфан закрыть, никак не реагирует, на краши его скорее всего тоже. А надо бы за существованием окна/процесса следить, а не за клавишей. Обойденную вниманием проблему с сообщениями об ошибках можно решить хотя бы использованием ключа Ирфана /silent. Вдогонку полезное предложение по другим ключам: - добавьте возможность использования /ini="Folder", чтобы можно было без использования отдельной копии обходиться и без мороки настройки на лету менять. - для выделения использовать запуск через /filelist=%WL (предпочтительно только с соответсвующим режимом Листера (Internal viewer with selected files), если SDK позволяет различать) Еще собственно, зачем вообще ini'шники в комплекте? Это личное дело самой программы, а не плагина, только проблемы создают, вроде ругани на отсутствие russian.dll при запуске, которой у меня и уж точно у иностранных пользователей нет и не будет. Даже если теоретически какие-то единичные опции конфликтующие с работой плагина и будут, их всегда можно принудительно зафорсить (чтение-запись в ini уже используется). С глючностью фокуса быстрого просмотра боротся надо — нельзя от пользователя требовать подстраиваться под недостатки реализации. Надежнее сделать вообще без активации окна Ирфана. Есть запуск в фоне, перемещение в стеке окон поверх конкретного, использование стилей (WS_EX_NOACTIVATE) — вполне что-то подходящее можно сообразить. По второй версии, дельный совет — не делать её! Лучше сразу универсальный вьюер с любыми пользовательскими программами (в перспективе разными под конкретные типы файлов), со всей необходимой информацией для работы с ними в конфиге плагина, а не в коде. Вроде Multiarc, только для Листера. И с Листером не надо так жестоко, гуманнее окно спрятать и потом закрывать. Еще всегда есть вариант с использованием WS_POPUP на «дочернем» окне и размещением поверх клиентской области нужного «родительского» с последующей ручной синхронизацией положения. |