したがって、この質問は、デフォルトでnumロックをオンにすることについてnotです。
Num Lockをオンにして、キーボードのNum Lockボタンがその状態に影響を与える機能を削除することは可能ですか?
私のキーボードでは Home ボタンは本当にに近いです numlock。仕事でよく使う Home とテンキーが、時々私は誤って numlock あまりにも。結果として、テンキーがオフになり、たくさんの数字を入力しなければならないときに本当に面倒です。しばらくすると、テンキーがオフになっているため、何も入力しなかったことがわかります。
私は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.
最も洗練された解決策ではありませんが、うまくいくはずです。
たぶんあなたが探している答えではないかもしれませんが、それは私のためにその問題を解決しました:
Windowsのロックキーのサウンドをアクティブ化します(Windows 10の場合:コントロールパネル\イーズオブアクセス\イーズオブアクセスセンター\キーボードを使いやすくする\トグルキーをオンにする)
そうすれば、叩くとビープ音が鳴り、すぐに気づきます。信号は発生したときに正しいので、それは実際にはもうそれを打たないように私を訓練しました。
Autohotkeyを使用する場合は、次の行をスクリプトに追加できます。
SetNumLockState, AlwaysOn
この行は必ずホットキーの前に置いてください。スクリプトの最初に配置するので、常に正常に機能することを確認します。スクリプトの途中または最後に配置すると、機能しない場合があります。
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または他の設定が干渉しない限り)、設定は通常は固執します。
タイマーを作成して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
ステップ1
レジストリを変更して、起動時にNumLockの初期状態をオンに設定します。
HKEY_USERS\.DEFAULT\Control Panel\Keyboard\InitialKeyboardIndicators
Set to Value to 2
ステップ2
AutoHotkeyスクリプトを追加してキーを監視し、キーをオフにできないことを確認します。 Install AutoHotkey 、そしてMyBestNumlockHack.ahkという名前の新しいスクリプトを作成します。このスクリプトをC:\ Users\{ユーザー名}\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startupディレクトリに配置します。
Numlock::
if (!GetKeyState("NumLock", "T"))
SetNumLockState, On
return