Как узнать программно состояние переключателя клавиатуры NumLock

1. Berrimor 198 28.09.20 13:31 Сейчас в теме
Есть необходимость узнать состояние переключателя клавиатуры NumLock. Можно ли это сделать программно?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AnryMc 849 28.09.20 14:17 Сейчас в теме
(0)
состояние переключателя клавиатуры NumLock


Keyboard.NumLock Свойство

//VB

If My.Computer.Keyboard.NumLock Then
    MsgBox("NUM LOCK on")
Else
    MsgBox("NUM LOCK off")
End If
Показать
3. vlad_d 28.09.20 14:42 Сейчас в теме
Отловить нажатие можно попробовать так: https://infostart.ru/1c/articles/1248993/
Ну, либо текущий статус отлавливать через wsh: https://infostart.ru/1c/articles/165702/
4. Berrimor 198 29.09.20 08:48 Сейчас в теме
(3) Ну, либо текущий статус отлавливать через wsh: https://infostart.ru/1c/articles/165702/
Можно кусок кода по ссылке, который поможет решить вопрос?
5. Berrimor 198 29.09.20 08:52 Сейчас в теме
(2) Произошла исключительная ситуация (Ошибка выполнения Microsoft VBScript): Требуется объект: 'My'
6. vlad_d 29.09.20 10:00 Сейчас в теме
(4) Что-то да, у whs только имитациюнажатия нашел:

WshShell = Новый COMОбъект("WScript.Shell");
WshShell.SendKeys({NumLook});

В WinApi есть функция GetKeyboardState, можно попробовать в эту сторону посмотреть...
7. Berrimor 198 05.10.20 17:38 Сейчас в теме
Решено, возможно кому то понадобится

Функция ВключенNumLock() Экспорт

	Wrap = Новый COMОбъект("DynamicWrapper");
	
	Попытка
		Wrap.Register("USER32.DLL", "GetKeyState", "i=l", "f=s", "r=l");
		Результат = Wrap.GetKeyState(144) = 1;
	Исключение
		Результат = Истина;
	КонецПопытки;
	
	Возврат Результат;
	
КонецФункции
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот