ProcessConsoleInput

Место, где разработчики плагинов могут поделиться своим опытом.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Re: ProcessConsoleInputW

Post by Max Rusov »

Latest post of the previous page:

IMHO - дурная мысль. Понятие "выполнил свои действия" - вообще непонятно что значит. Если по кнопке модальный диалог открывается - то в какой момент этот POSTPROCESS вызывать?
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

Re: ProcessConsoleInput

Post by Alexey Samlyukov »

в текущей реализации юзается структура:
struct ProcessConsoleInputInfo
{
size_t StructSize;
PROCESSCONSOLEINPUT_FLAGS Flags;
INPUT_RECORD Rec;
HANDLE hPanel;
};

мне интересно, зачем тут hPanel? посмотрел код, поле не юзается. предлагаю выкинуть пока не поздно. возражения?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Re: ProcessConsoleInput

Post by zg »

Alexey Samlyukov wrote:предлагаю выкинуть пока не поздно.
а чего поздно-то. это неофициальное апи. его нет в официальных сборках.
ps: чё-то я проспал.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

Re: ProcessConsoleInput

Post by Maximus5 »

выкинуть наверное. тем более, что вызывается не только в панелях.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 8 times

Re: ProcessConsoleInput

Post by Skirda »

StructSize в структуре есть, так что потом никто не помещает добавить что-нить полезное.
We are the Borg. You will be assimilated.
So Say We All!
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

ProcessConsoleInputW

Post by Shmuel »

Никогда раньше не пользовался ProcessConsoleInputW, сегодня попробовал, и обнаружилось следующее явление: если плагин при получении определённого сочетания клавиш возвращает 1, то операция Фара, соответствующая данному сочетанию, не выполняется (это соответствует документации). Но если на данное сочетание назначен макрос, то он выполняется (о чём документация умалчивает). Это баг или фича?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

ProcessConsoleInputW

Post by Max Rusov »

Насколько я помню, если на кнопку повешен макрос, то ProcessConsoleInputW вообще не вызывается. По этому, в частности, native-макросы FAR имеют приоритет над макросами MacroLib.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

ProcessConsoleInputW

Post by Shmuel »

Об этом я как-то не подумал, и в доках не упомянуто.
Однако сейчас проверил: при наличии макроса, ProcessConsoleInputW не вызывается при нажатии, но вызывается при отпускании.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: ProcessConsoleInputW

Post by John Doe »

Max Rusov wrote:По этому, в частности, native-макросы FAR имеют приоритет над макросами MacroLib.
Это проблема...
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

ProcessConsoleInputW

Post by Max Rusov »

Почему?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Post by John Doe »

Например это делает невозможным нормальную реализацию того, что мы сегодня обсуждали в теме макролиб.
Имхо эту особенность следует расценить как баг.

Update: http://bugs.farmanager.com/view.php?id=2952
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

ProcessConsoleInputW

Post by Max Rusov »

John Doe wrote:Например это делает невозможным нормальную реализацию того, что мы сегодня обсуждали в теме макролиб.
Не вижу проблемы. С точки зрения Far привязка "Key:Hold" является "неправильной" и ProcessConsoleInputW будет вызываться. Проблемы будут только если смешивать два способа вызова на одной кнопке. Но этого просто не надо делать...
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Post by John Doe »

Что значит не надо? В этом весь смысл вообще-то.
Зачем мне все эти холды, если я на основную клавишу не смогу прицепить макрос?

А возражения против исправления текущего поведения есть?
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

ProcessConsoleInputW

Post by Max Rusov »

John Doe wrote: Зачем мне все эти холды, если я на основную клавишу не смогу прицепить макрос.
Сможете, только она тоже должна обрабатываться MacroLib'ом. Для этого я и предполагал префикс. Но можно и так, например: "Key:"
John Doe wrote: А возражения против исправления текущего поведения есть?
На первый взгляд - это не должно ничего сломать. Но я сомневаюсь, что это станут править. По моим ощущениям ProcessConsoleInputW пользуется единственный плагин, который, вообщем уже не очень актуален...
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

ProcessConsoleInputW

Post by John Doe »

Max Rusov wrote:Сможете, только она тоже должна обрабатываться MacroLib'ом.
Это уже не очень по-человечески...
Max Rusov wrote:Но я сомневаюсь, что это станут править.
Зависит от трудоемкости, полагаю.
Max Rusov wrote:По моим ощущениям ProcessConsoleInputW пользуется единственный плагин, который, вообщем уже не очень актуален...
Актуален, иначе бы с чего бы мы его сегодня обсуждали.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

ProcessConsoleInput

Post by John Doe »

Shmuel wrote: при наличии макроса, ProcessConsoleInputW не вызывается при нажатии, но вызывается при отпускании.
Подскажите, а для клавиш-модификаторов то же самое?
Если есть макрос на LCtrl, то какие события от этой клавиши получит ProcessConsoleInputW?
Post Reply

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