Question: So this question is **not** about having num lock on by default.

Is it possible to have num lock turned on, and remove the ability of the num lock button on the keyboard to affect that state?

### EDIT (because):

In my keyboard the `Home` button is really close to the `numlock`. At work I often use `Home` and the numpad, but sometimes I accidentally hit the `numlock` too. As a result my numpad gets turned off which is really sucks when I have to type a lot of numbers and after a while I realise I typed nothing because numlock turned off numpad.

Answer: 
Maybe not the answer you are looking for, but it solved that problem for me:

Activate the sound for the Lock keys in Windows (in Windows 10: Control Panel\Ease of Access\Ease of Access Center\Make the keyboard easier to use\Turn on Toggle keys)

That way, when you hit it, it beeps, and you realize it right away. It actually trained me to not hit it anymore at all, because the signal is right when it happens.
Forgot a sub...
This is fully working

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

```