因此,此问题不是关于默认情况下是否启用num锁定。
是否可以打开数字锁定,并取消键盘上的数字锁定按钮影响该状态的功能?
编辑(因为):
在我的键盘上,该Home按钮确实靠近numlock。在工作中,我经常使用Homenumpad和numpad,但有时我也会不小心碰到它numlock。结果是我的数字键盘关闭了,当我必须键入很多数字时确实很烂,一段时间后,我意识到我没有输入任何数字,因为数字锁关闭了数字键盘。
因此,此问题不是关于默认情况下是否启用num锁定。
是否可以打开数字锁定,并取消键盘上的数字锁定按钮影响该状态的功能?
在我的键盘上,该Home按钮确实靠近numlock。在工作中,我经常使用Homenumpad和numpad,但有时我也会不小心碰到它numlock。结果是我的数字键盘关闭了,当我必须键入很多数字时确实很烂,一段时间后,我意识到我没有输入任何数字,因为数字锁关闭了数字键盘。
Answers:
我使用CapShift,它是免费的:
https://www.donationcoder.com/Software/Skrommel/index.html#CAPshift
“ CAPshift通过放慢速度来扩展Caps Lock键...
优点是:如果确实需要,您不会丢失更改NumLock的功能。
物理删除NumLock键。当您的手指按下时,它就不会出现。
可以通过应用程序将其关闭后(几毫秒内)自动重新打开。
这个人为此创建了一个自动热键脚本,他将其称为“ Numlock Enforcer” http://www.donationcoder.com/forum/index.php?topic=9018.0
并非最优雅的解决方案,但它应该可以工作。
也许不是您要找的答案,但是它为我解决了这个问题:
在Windows中激活锁定键的声音(在Windows 10中:控制面板\轻松访问\轻松访问中心\使键盘更易于使用\打开切换键)
这样,当您击打它时,它会发出蜂鸣声,并且您马上就意识到了。它实际上训练了我不要再打它了,因为信号在发生时是正确的。
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或其他设置有干扰)。
步骤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 \ Start Menu \ Programs \ Startup目录中。
Numlock::
if (!GetKeyState("NumLock", "T"))
SetNumLockState, On
return
创建一个计时器并将其命名为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
忘了一个子...这是完全正常的
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