Уважаемые форумчане, помогите пожалуйста найти решение.
Как вы знаете, клавиша NUMPADDOT может выдавать точку, или запятую, в зависимости от выбранной раскладки клавиатуры (Ru или En).
Написал простенький скрипт, осуществляющий гарантированный ввод символа "." при нажатии на цифровой клавиатуре NUMPAD клавиши NUMPADDOT.
Выяснилось, что данный код прекрасно работает при одиночном нажатии клавиши NUMPADDOT. В случае, если зажать клавишу NUMPADDOT (например, поставить много точек) будут печататься символ "♠" (Alt+6). Хотя сочетание для клавиш точки Alt+46 (ASC 046). Такое ощущение, что из сочетания клавиш выпадает "4", т.е. Вместо Alt+46 работает Alt+6.
Если вместо "ASC 046" использовать "ASC 46" без "0", который отвечает за кодировку, тогда при зажатой клавише NUMPADDOT символ "♠" уже не печатается, а так же не печатаются точки. В кодировке не силен, но в справке написано вот так:
У меня есть одна идея: добавить код, считывающий, что клавиша NUMPADDOT зажата, и пока она зажата, печатать символ "." (точка) с интервалом раз в 500 мс.
Есть ли решение моей проблемы?
Как вы знаете, клавиша 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 мс.
Есть ли решение моей проблемы?