Что нового

Точка при зажатом NUMPADDOT

Maximill

Новичок
Сообщения
16
Репутация
0
Уважаемые форумчане, помогите пожалуйста найти решение.
Как вы знаете, клавиша NUMPADDOT может выдавать точку, или запятую, в зависимости от выбранной раскладки клавиатуры (Ru или En).
Написал простенький скрипт, осуществляющий гарантированный ввод символа "." при нажатии на цифровой клавиатуре NUMPAD клавиши NUMPADDOT.
Код:
HotKeySet('{NUMPADDOT}','_Dot')
HotKeySet('{ESC}','_Quit')

While 1
    Sleep(50)
WEnd

Func _Dot()
    Send('{ASC 046}')
EndFunc

Func _Quit()
Exit
EndFunc

Выяснилось, что данный код прекрасно работает при одиночном нажатии клавиши NUMPADDOT. В случае, если зажать клавишу NUMPADDOT (например, поставить много точек) будут печататься символ "♠" (Alt+6). Хотя сочетание для клавиш точки Alt+46 (ASC 046). Такое ощущение, что из сочетания клавиш выпадает "4", т.е. Вместо Alt+46 работает Alt+6.
Если вместо "ASC 046" использовать "ASC 46" без "0", который отвечает за кодировку, тогда при зажатой клавише NUMPADDOT символ "♠" уже не печатается, а так же не печатаются точки. В кодировке не силен, но в справке написано вот так:
Чтобы эмулировать ASCII символ A (тоже, что нажатие ALT+065 на цифровой клавиатуре)
Send("{ASC 065}")
(Когда используется двухзначный код ASCII вы должны подставить в начало 0, иначе будет использована устаревшая кодовая страница 437).
Помогите разобраться, как это можно исправить.

У меня есть одна идея: добавить код, считывающий, что клавиша NUMPADDOT зажата, и пока она зажата, печатать символ "." (точка) с интервалом раз в 500 мс.
Есть ли решение моей проблемы?
 

Oki

Продвинутый
Сообщения
452
Репутация
62
Да это не личная проблема, а серьёзный баг!
Такое ощущение, что из сочетания клавиш выпадает "4", т.е. Вместо Alt+46 работает Alt+6.
Если посылать шестнадцатеричный код 0x02E, то тоже срабатывает шестёрка, поэтому как-то иначе это, похоже, устроено. А ещё почему-то все мои около десятка попыток сделать различные трюки приводили к тому, что пика не каждый раз появляется, а случайными сериями пробивается между точками, а только первоначальный скрипт шпарит одни лишь пики.
 
Последнее редактирование:
Автор
M

Maximill

Новичок
Сообщения
16
Репутация
0
...почему-то все мои около десятка попыток сделать различные трюки приводили к тому, что пика не каждый раз появляется, а случайными сериями пробивается между точками...
Перепробовал множество разных вариантов, результата был аналогичный, поэтому и отписался на форум.
 
Верх