Вопрос по CtrlAltTab/CtrlAltX и т.п. и проблемка

Место, где разработчики плагинов могут поделиться своим опытом.
Post Reply
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Вопрос по CtrlAltTab/CtrlAltX и т.п. и проблемка

Post by NightRoman »

Когда Фар делает detach консоли (не знаю вообще как это реализовано, на всякий случай), он оповещает об этом плагины как-нибудь?

В чем проблемка (невелика беда, но все ж). Может кто что подскажет. Плагин Фарнет подписывается на событие Console.CancelKeyPress, чтобы ловить CtrlBreak для остановки работы затянувшегося скрипта в PowerShellFar. Да, брутально, но это полезнее иметь, чем не иметь. Снимать Фар с другими незаконченными делами в нем - куда хуже.

После отцепления от консоли Фаром, событие перестает вызываться в новой консоли Фара. Более того, если мы теперь выходим из Фара, то в Фарнет при отписывании от события консоли происходит исключение, типа не подписаны, что ли. Словом, выглядит как будто консоль поменялась, а плагин был завязан именно на ту консоль, и это фатально.

Пока все, что приходит в голову - это не отписываться от события вообще (но все равно какие-то ошибки пишутся в консоль). Работать CtrlBreak в PSF не будет после отцепления консоли, но хоть не будет ошибки при выходе из Фара. А лучшие решения кто-нибудь знает?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Вопрос по CtrlAltTab/CtrlAltX и т.п. и проблемка

Post by DrKnS »

Не оповещает.
Делай GetConsoleWindow() при подписке, при отписке делай снова и проверяй на совпадение.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Вопрос по CtrlAltTab/CtrlAltX и т.п. и проблемка

Post by NightRoman »

Да бог с ней с отпиской, могу и не отписываться, Фарнет все равно не выгружаемый по сути плагин (и второй раз не загрузится, если выгрузить). Интересно узнать именно как *переподписаться*. Конечно, можно проверять этот GetConsoleWindow() на каждый запуск скрипта, и если что переподписываться. Попробую. (А может и плюну, экзотичная проблема все ж, и никто не жалуется).
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Re: Вопрос по CtrlAltTab/CtrlAltX и т.п. и проблемка

Post by NightRoman »

Попробовал. Нет, не получается переподписаться. Может, это у .NET крыша едет от такого сдвига, тоже не исключено...
Post Reply

Return to “Разработка плагинов”