ProcessConsoleInput

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

Re: ProcessConsoleInputW

Post by Max Rusov » Thu 02 Jun, 2011 22:45

Latest post of the previous page:

IMHO - дурная мысль. Понятие "выполнил свои действия" - вообще непонятно что значит. Если по кнопке модальный диалог открывается - то в какой момент этот POSTPROCESS вызывать?

User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 2 times
Contact:

Re: ProcessConsoleInput

Post by Alexey Samlyukov » Mon 24 Sep, 2012 14:10

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

мне интересно, зачем тут hPanel? посмотрел код, поле не юзается. предлагаю выкинуть пока не поздно. возражения?

User avatar
zg
zero-gravity
Posts: 5549
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 87 times
Contact:

Re: ProcessConsoleInput

Post by zg » Mon 24 Sep, 2012 15:47

Alexey Samlyukov wrote:предлагаю выкинуть пока не поздно.
а чего поздно-то. это неофициальное апи. его нет в официальных сборках.
ps: чё-то я проспал.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: ProcessConsoleInput

Post by Maximus5 » Mon 24 Sep, 2012 19:22

выкинуть наверное. тем более, что вызывается не только в панелях.

User avatar
Skirda
Posts: 3474
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 3 times

Re: ProcessConsoleInput

Post by Skirda » Tue 25 Sep, 2012 11:07

StructSize в структуре есть, так что потом никто не помещает добавить что-нить полезное.
We are the Borg. You will be assimilated.
So Say We All!

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

ProcessConsoleInputW

Post by Shmuel » Tue 17 Feb, 2015 16:58

Никогда раньше не пользовался ProcessConsoleInputW, сегодня попробовал, и обнаружилось следующее явление: если плагин при получении определённого сочетания клавиш возвращает 1, то операция Фара, соответствующая данному сочетанию, не выполняется (это соответствует документации). Но если на данное сочетание назначен макрос, то он выполняется (о чём документация умалчивает). Это баг или фича?

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

ProcessConsoleInputW

Post by Max Rusov » Tue 17 Feb, 2015 17:17

Насколько я помню, если на кнопку повешен макрос, то ProcessConsoleInputW вообще не вызывается. По этому, в частности, native-макросы FAR имеют приоритет над макросами MacroLib.

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

ProcessConsoleInputW

Post by Shmuel » Tue 17 Feb, 2015 17:38

Об этом я как-то не подумал, и в доках не упомянуто.
Однако сейчас проверил: при наличии макроса, ProcessConsoleInputW не вызывается при нажатии, но вызывается при отпускании.

User avatar
John Doe
Бюрократ
Posts: 12287
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 164 times

Re: ProcessConsoleInputW

Post by John Doe » Tue 17 Feb, 2015 18:39

Max Rusov wrote:По этому, в частности, native-макросы FAR имеют приоритет над макросами MacroLib.
Это проблема...

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

ProcessConsoleInputW

Post by Max Rusov » Tue 17 Feb, 2015 18:41

Почему?

User avatar
John Doe
Бюрократ
Posts: 12287
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 164 times

Post by John Doe » Tue 17 Feb, 2015 18:59

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

Update: http://bugs.farmanager.com/view.php?id=2952

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

ProcessConsoleInputW

Post by Max Rusov » Tue 17 Feb, 2015 19:43

John Doe wrote:Например это делает невозможным нормальную реализацию того, что мы сегодня обсуждали в теме макролиб.
Не вижу проблемы. С точки зрения Far привязка "Key:Hold" является "неправильной" и ProcessConsoleInputW будет вызываться. Проблемы будут только если смешивать два способа вызова на одной кнопке. Но этого просто не надо делать...

User avatar
John Doe
Бюрократ
Posts: 12287
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 164 times

Post by John Doe » Tue 17 Feb, 2015 19:49

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

А возражения против исправления текущего поведения есть?

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

ProcessConsoleInputW

Post by Max Rusov » Tue 17 Feb, 2015 20:08

John Doe wrote: Зачем мне все эти холды, если я на основную клавишу не смогу прицепить макрос.
Сможете, только она тоже должна обрабатываться MacroLib'ом. Для этого я и предполагал префикс. Но можно и так, например: "Key:"
John Doe wrote: А возражения против исправления текущего поведения есть?
На первый взгляд - это не должно ничего сломать. Но я сомневаюсь, что это станут править. По моим ощущениям ProcessConsoleInputW пользуется единственный плагин, который, вообщем уже не очень актуален...

User avatar
John Doe
Бюрократ
Posts: 12287
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 164 times

ProcessConsoleInputW

Post by John Doe » Tue 17 Feb, 2015 20:31

Max Rusov wrote:Сможете, только она тоже должна обрабатываться MacroLib'ом.
Это уже не очень по-человечески...
Max Rusov wrote:Но я сомневаюсь, что это станут править.
Зависит от трудоемкости, полагаю.
Max Rusov wrote:По моим ощущениям ProcessConsoleInputW пользуется единственный плагин, который, вообщем уже не очень актуален...
Актуален, иначе бы с чего бы мы его сегодня обсуждали.

User avatar
John Doe
Бюрократ
Posts: 12287
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 164 times

ProcessConsoleInput

Post by John Doe » Wed 18 Feb, 2015 10:21

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

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

ProcessConsoleInput

Post by Shmuel » Wed 18 Feb, 2015 10:35

Приложена LuaMacro.dll, содержащая ProcessConsoleInputW. Вставьте в какой-либо макрофайл функцию export.ProcessConsoleInput() согласно документации LuaFAR и экспериментируйте.
LuaMacro.dll.7z
(16.55 KiB) Downloaded 74 times

Post Reply

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