Возможно ли включить Num Lock ВСЕГДА без возможности отключения клавиши Num Lock?

14

Так что этот вопрос не о включении num блокировки по умолчанию.

Можно ли включить num lock и убрать способность кнопки num lock на клавиатуре влиять на это состояние?

РЕДАКТИРОВАТЬ (потому что):

В моей клавиатуре Homeкнопка действительно близка к numlock. На работе я часто использую Homeи цифровую клавиатуру, но иногда я случайно попадаю numlockтоже. В результате моя цифровая клавиатура отключается, что очень неприятно, когда мне приходится набирать много цифр, и через некоторое время я понимаю, что ничего не печатал, потому что цифровая клавиатура отключила цифровую клавиатуру.

Адам Вархеги
источник
5
выньте ключ с цифровой клавишей и переведите переключатель в положение «включено», верните ключ обратно.
Моав
W-зачем тебе это? просто любопытно
зарегистрированный пользователь
@RegisteredUser см. Мои правки
Адам Вархеги

Ответы:

5

Я использую CapShift, и это бесплатно:

https://www.donationcoder.com/Software/Skrommel/index.html#CAPshift

"CAPshift расширяет ключ Caps Lock, замедляя его ...

  • Нажмите и удерживайте в течение 0,5 секунды, чтобы включить / отключить.
  • Нажмите и удерживайте в течение 1 секунды, чтобы отобразить меню.
  • Щелкните правой кнопкой мыши значок в трее, чтобы отобразить меню.
  • Также замедляет F1, Insert, NumLock и ScrollLock. "

Преимущество заключается в следующем: вы не теряете возможность менять NumLock, если вам это действительно нужно.

Оливер
источник
Звучит хорошо, но установщик не работает на Windows 8.1: [
Адам Вархеги,
5

Физически удалите ключ NumLock. Когда твой палец нажмет на него, его там не будет.

B540Glenn
источник
Надежный раствор.
Рохит Гупта
5
Это на самом деле не надежно. Некоторое программное обеспечение (например, HyperV) может снова отключить numlock, и когда вы вытащили клавишу из клавиатуры (или использовали клавиши SharpKeys), вам придется дурачиться и перезагружаться, чтобы снова включить ее.
StingyJack
3

Возможно автоматически включить его (в течение нескольких миллисекунд), когда он отключается, через приложение.

Этот парень создал для него скрипт autohotkey, который он называет «Numlock Enforcer» http://www.donationcoder.com/forum/index.php?topic=9018.0

Не самое элегантное решение, но оно должно работать.

cloneman
источник
1

Возможно, не тот ответ, который вы ищете, но он решил эту проблему для меня:

Активировать звук для клавиш блокировки в Windows (в Windows 10: Панель управления \ Простота доступа \ Простота центра доступа \ Упростить использование клавиатуры \ Включить тумблеры)

Таким образом, когда вы нажмете на него, он издаст звуковой сигнал, и вы сразу это поймете. Это на самом деле научило меня больше не бить его, потому что сигнал правильный, когда это происходит.

Aganju
источник
Хорошая идея, работа со встроенным функционалом!
Оливер
1

Если вы используете Autohotkey, вы можете добавить следующую строку в ваш скрипт:

SetNumLockState, AlwaysOn

Не забудьте поставить эту строку перед вашими горячими клавишами. Я поместил его в самом начале сценария, чтобы убедиться, что он всегда работает нормально, если вы поместите его в середину или в конец сценария, он может не работать.

Шаян
источник
0

В BIOS может быть параметр отключения ключа NumLock, но нам нужно знать модель вашего компьютера и версию BIOS, чтобы обсудить это более подробно. Как правило, один загружается в BIOS и ищет элемент с именем «NumLock State», «Bootup NumLock State» или аналогичный, нажмите Enter и с помощью клавиш со стрелками выберите «Off» или «Disabled», затем нажмите Enter.

Для хакеров Windows реестр содержит HKCU\Control Panel\Keyboard элемент с именем InitialKeyboardIndicators, который имеет недокументированное значение 1для отключения NumLock. Его эффективность может варьироваться в зависимости от версии Windows.

Жестокое решение состоит в том, чтобы отодвинуть колпачок клавиши Numlock и использовать ручку, чтобы изменить ее настройку при необходимости. Параметр обычно остается неизменным, поскольку Windows XP и более поздние версии запоминают свое состояние при загрузке (если не вмешивается BIOS или другой параметр).

harrymc
источник
0

Шаг 1

Измените реестр, чтобы установить начальное состояние NumLock на при запуске:

HKEY_USERS\.DEFAULT\Control Panel\Keyboard\InitialKeyboardIndicators
  Set to Value to 2

Шаг 2

Добавьте скрипт AutoHotkey для контроля ключа и убедитесь, что его нельзя отключить. Установите AutoHotkey и создайте новый скрипт с именем MyBestNumlockHack.ahk. Поместите этот скрипт в папку C: \ Users \ {Имя пользователя} \ AppData \ Roaming \ Microsoft \ Windows \ Меню Пуск \ Программы \ Автозагрузка.

Numlock::
  if (!GetKeyState("NumLock", "T"))
    SetNumLockState, On
  return
HaveSpacesuit
источник
0

Сделай таймер и назови его NumlOn. Установите интервал в 100.

Public Const VK_NUMLOCK = &H90
Declare Function GetKeyState Lib "user32" Alias "GetKeyState" _
(ByVal ByValnVirtKey As Integer) As Short
Dim NLKey as boolean

Private Sub me_keyDown(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If e.KeyCode = Keys.NumLock And Not NLKey Then
        If Not GetKeyState(VK_NUMLOCK) Then
            e.Handled = True
            NumlOn.Start()
            Exit Sub
        End If
    End If
End sub

Private Sub NumlOn_Tick(sender As Object, e As EventArgs) _ 
Handles NumlOn.Tick
    NLKey = True
    If Not GetKeyState(VK_NUMLOCK) Then numlockON()
    Application.DoEvents()
    NumlOn.Stop()
    NLKey = False
 End Sub
Brollie
источник
3
Где мясо? Я полагаю, вы хотите использовать этот код в файле. Что тогда? Как вы используете его? Как это работает? Пожалуйста, не отвечайте в комментариях; отредактируйте свой ответ, чтобы сделать его более понятным и полным.
Скотт
0

Забыл саб ... Это полностью работает

Public Const VK_NUMLOCK = &H90
Declare Function GetKeyState Lib "user32" Alias "GetKeyState" _
(ByVal ByValnVirtKey As Integer) As Short

Private Sub numlockON()
    keybd_event(VK_NUMLOCK, 0, 0, 0) ' Press NUMLOCK key down
    keybd_event(VK_NUMLOCK, 0, KEYEVENTF_KEYUP, 0)
End Sub

Private Sub me_keyDown(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
    If e.KeyCode = Keys.NumLock And Not NLKey Then
        If Not GetKeyState(VK_NUMLOCK) Then
            e.Handled = True
            NumlOn.Start()
            Exit Sub
        End If
    End If
End sub

Private Sub NumlOn_Tick(sender As Object, e As EventArgs) Handles NumlOn.Tick
    NLKey = True
    If Not GetKeyState(VK_NUMLOCK) Then numlockON()
    Application.DoEvents()
    NumlOn.Stop()
    NLKey = False
End Sub
brollie
источник
1
Добро пожаловать в Супер пользователя. Вместо того, чтобы публиковать несколько ответов, просто исправьте предыдущий ответ и удалите этот, или удалите тот, если он требует изменений в этом. Кроме того, что сказал Скотт на ваш другой ответ.
fixer1234