web-dev-qa-db-ja.com

Num Lockキーをオフにする機能がなくても、常にNum Lockをオンにすることはできますか?

したがって、この質問は、デフォルトでnumロックをオンにすることについてnotです。

Num Lockをオンにして、キーボードのNum Lockボタンがその状態に影響を与える機能を削除することは可能ですか?

編集(ため):

私のキーボードでは Home ボタンは本当にに近いです numlock。仕事でよく使う Home とテンキーが、時々私は誤って numlock あまりにも。結果として、テンキーがオフになり、たくさんの数字を入力しなければならないときに本当に面倒です。しばらくすると、テンキーがオフになっているため、何も入力しなかったことがわかります。

14
Adam Varhegyi

私はCapShiftを使用し、それは無料です:

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

「CAPshiftは、Caps Lockキーを遅くして拡張します...

  • 0.5秒間押し続けると、有効/無効になります。
  • 1秒間押し続けるとメニューが表示されます。
  • トレイアイコンを右クリックして、メニューを表示します。
  • F1、Insert、NumLock、ScrollLockも遅くなります。」

利点は、本当に必要な場合でもNumLockを変更する機能を失うことがないことです。

5
Oliver

NumLockキーを物理的に取り外します。あなたの指がそれを押すと、そこにはありません。

5
B540Glenn

オフにすると、アプリケーションを介して自動的に(数ミリ秒以内に)元に戻すことができます。

この男は、「Numlock Enforcer」と呼ぶ自動ホットキースクリプトを作成しました http://www.donationcoder.com/forum/index.php?topic=9018.

最も洗練された解決策ではありませんが、うまくいくはずです。

3
cloneman

たぶんあなたが探している答えではないかもしれませんが、それは私のためにその問題を解決しました:

Windowsのロックキーのサウンドをアクティブ化します(Windows 10の場合:コントロールパネル\イーズオブアクセス\イーズオブアクセスセンター\キーボードを使いやすくする\トグルキーをオンにする)

そうすれば、叩くとビープ音が鳴り、すぐに気づきます。信号は発生したときに正しいので、それは実際にはもうそれを打たないように私を訓練しました。

1
Aganju

Autohotkeyを使用する場合は、次の行をスクリプトに追加できます。

SetNumLockState, AlwaysOn

この行は必ずホットキーの前に置いてください。スクリプトの最初に配置するので、常に正常に機能することを確認します。スクリプトの途中または最後に配置すると、機能しない場合があります。

1
Shayan

BIOSにはNumLockキーを無効にする設定がある場合がありますが、これについて詳しく説明するには、コンピューターのモデルとBIOSのバージョンを知る必要があります。通常、BIOSを起動して、「NumLock State」、「Bootup NumLock State」などの名前の項目を探し、Enterキーを押し、矢印キーを使用して「Off」または「Disabled」を選択してから、Enterキーを押します。

Windowsハッカーの場合、レジストリのHKCU\Control Panel\KeyboardInitialKeyboardIndicators という名前の項目が含まれています。これには、文書化されていない1の値があり、NumLockが無効になります。その有効性は、Windowsのバージョンによって異なります。

残忍な解決策は、Numlockキーキャップを外し、必要に応じてペンを使用して設定を変更することです。 Windows XP以降、ブート後もその状態を記憶するため(BIOSまたは他の設定が干渉しない限り)、設定は通常は固執します。

0
harrymc

タイマーを作成して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
Brollie

サブを忘れました...これは完全に機能しています

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
brollie

ステップ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
0
HaveSpacesuit