Что нового

HotKeySet не работает с буквой

paul_8

Новичок
Сообщения
8
Репутация
0
Код:
HotKeySet("a","send1")
HotKeySet("2","send1")

Func send1()
   Send("1")
   EndFunc

в данном случае с клавишей "2" работает а с "а" не работает. Почему так?
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
paul_8 [?]
в данном случае с клавишей "2" работает а с "а" не работает. Почему так?
Это может быть из-за раскладки клавиатуры. На форуме есть много тем с подобным вопросам.
Попробуйте так:
Код:
HotKeySet("ф","send1")
 
Автор
P

paul_8

Новичок
Сообщения
8
Репутация
0
alex33 сказал(а):
paul_8 [?]
в данном случае с клавишей "2" работает а с "а" не работает. Почему так?
Это может быть из-за раскладки клавиатуры. На форуме есть много тем с подобным вопросам.
Попробуйте так:
Код:
HotKeySet("ф","send1")
да, оказалось что именно в этом и проблема. Хотя очень странно ведь раскладка включена английская
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
paul_8 [?]
ведь раскладка включена английская
Это зависит из-за раскладки, которая установлена в системе по умолчанию, а не та, что включена сейчас.
P.S. Приведу рабочий код для корректной установки горячих клавиш с переключением раскладки:
Код:
Local $aRet = DllCall('user32.dll', 'uint_ptr', 'LoadKeyboardLayoutW', 'wstr', '00000409', 'uint', '0x00000101'); переключаем раскладку

HotKeySet("b", "_beep1"); устанавливаем клавишу
HotKeySet("2", "_beep1"); устанавливаем клавишу
HotKeySet("{ESC}", "_exit"); устанавливаем клавишу
While 1
Sleep(1000)
WEnd

Func _beep1()
Beep(900, 500)
EndFunc
Func _exit()
Exit
EndFunc
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
alex33,
'0x00000101' - кавычки не нужны.
ИМХО, лучше показать, что такое 0x00000101, и ошибки бы проверить надо:
Код:
;~ 0x00000101 = BitOR($KLF_ACTIVATE, $KLF_SETFORPROCESS), $KLF_ACTIVATE = 0x00000001, $KLF_SETFORPROCESS = 0x00000100
Local $aRet = DllCall('user32.dll', 'uint_ptr', 'LoadKeyboardLayoutW', 'wstr', '00000409', 'uint', 0x00000101)
;~ If (@error) Or (Not $aRet[0]) Then ;...
То есть, лучше это сделать функцией.
 
Верх