13

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

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

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

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

9 ответов9

5

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

5

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

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

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

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

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

3

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

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

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

1

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

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

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

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 или другой параметр).

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
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
0

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

SetNumLockState, AlwaysOn

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .