Latest post of the previous page:
почему?Shmuel wrote:Если вызывается DN_CONTROLINPUT, то, по идее, far.InputRecordToName() не должен возвращать nil.
Latest post of the previous page:
почему?Shmuel wrote:Если вызывается DN_CONTROLINPUT, то, по идее, far.InputRecordToName() не должен возвращать nil.
Фар сообщает плагину, что поступил ключ, и в то же время не может преобразовать этот ключ в строку? На мой взгляд, это неправильно. Это же не искуственно заполненный мусором INPUT_RECORD, а реальный ключ, он должен иметь текстовое представление.zg wrote:почему?Shmuel wrote:Если вызывается DN_CONTROLINPUT, то, по идее, far.InputRecordToName() не должен возвращать nil.
А, вот как...
Потому что до сих пор можно было при анализе DN_CONTROLINPUT ограничиваться использованием InputRecordToFarName
а ProcessEditorInputW никогда нельзя было ограничиваться, и что? вернее ограничиваться и там, и там можно, нужно просто корректно обрабатывать ошибки. то что сейчас есть проблемы с модификаторами, это следствие кривой реализации кривой фичи, призванной в своё время закостылить кривую реализацию другой фичи.John Doe wrote:Потому что до сих пор можно было при анализе DN_CONTROLINPUT ограничиваться использованием InputRecordToFarName
Не проблема, а закономерное пожелание, причём не моё.
Кому надо (в том числе я) может и без InputRecordToFarName проанализировать. А кому не надо могут просто игнорировать такие события.
Подводя итоги: в актуальной версии фара для для обоих записей FarInputRecordToName возвращает "Shift".Shmuel wrote:В 4319 (по сравнению с 4316) при нажатии одиночных модификаторов (например, Shift) в диалоге, FarInputRecordToName при обработке DN_CONTROLINPUT возвращает FALSE (то-есть, невозможность преобразования).Code: Select all
4316 4319 ---------------------------------------- InputRecordToName(param2)│ Shift │ nil param2.EventType │ 1 │ 1 param2.KeyDown │ true │ false param2.RepeatCount │ 1 │ 1 param2.VirtualKeyCode │ 16 │ 16 param2.VirtualScanCode │ 42 │ 42 param2.UnicodeChar │ │ param2.ControlKeyState │ 16 │ 32
а можно код для воспроизведения? а то не должен вроде.John Doe wrote:Подводя итоги: в актуальной версии фара для для обоих записей FarInputRecordToName возвращает "Shift".
Code: Select all
far.InputRecordToName {
EventType = 1,
KeyDown = false,
RepeatCount = 1,
VirtualKeyCode = 16,
VirtualScanCode = 42,
ControlKeyState = 32
}
Разве?
Зато нагляднее вашего.
lua:=
Это почему же?
я поэтому конкретный пример и просил.John Doe wrote:Разве?
потому:John Doe wrote:Это почему же?
Code: Select all
11:30:38 KEY_EVENT_RECORD: Up, 1, Vk="VK_SHIFT" [16/0x0010], Scan=0x002A uChar=[U=' ' (0x0000): A=' ' (0x00)]
Ctrl=0x00000000 (casac - ecns) (Windowed)
Не понял, что вы хотите этим сказать.
ControlKeyState = 32
обозначает включённый NumLock.