Czy możliwe jest ZAWSZE włączanie Num Lock, bez możliwości wyłączenia klawisza Num Lock?

14

To pytanie nie dotyczy domyślnie włączenia num lock.

Czy możliwe jest włączenie num lock i usunięcie zdolności klawisza num lock na klawiaturze, aby wpłynąć na ten stan?

EDYCJA (ponieważ):

Na mojej klawiaturze Homeprzycisk jest naprawdę blisko numlock. W pracy często używam Homeklawiatury numerycznej, ale czasami też przypadkowo trafiam numlock. W rezultacie mój numpad zostaje wyłączony, co jest naprawdę do kitu, gdy muszę wpisać wiele cyfr i po chwili zdaję sobie sprawę, że nic nie wpisałem, ponieważ numlock wyłączył numpad.

Adam Varhegyi
źródło
5
wyjmij klucz numlock i epoksyduj przełącznik w pozycji on, wciśnij ponownie klucz.
Moab
C-dlaczego miałbyś tego potrzebować? po prostu ciekawy
Zarejestrowany użytkownik
@ Zarejestrowany Użytkownik widzi moją edycję
Adam Varhegyi

Odpowiedzi:

5

Używam CapShift i jest bezpłatny:

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

„CAPshift wydłuża klawisz Caps Lock, spowalniając go ...

  • Przytrzymaj przez 0,5 sekundy, aby włączyć / wyłączyć.
  • Przytrzymaj przez 1 sekundę, aby wyświetlić menu.
  • Kliknij prawym przyciskiem myszy ikonę zasobnika, aby wyświetlić menu.
  • Spowalnia również F1, Insert, NumLock i ScrollLock. ”

Zaletą jest: nie tracisz możliwości zmiany NumLock, jeśli naprawdę potrzebujesz.

Oliver
źródło
Brzmi dobrze, ale instalator nie działa w systemie Windows 8.1: [
Adam Varhegyi
5

Fizycznie usuń klucz NumLock. Kiedy palec go naciska, nie ma go tam.

B540Glenn
źródło
Niezawodne rozwiązanie.
Rohit Gupta
5
W rzeczywistości nie jest niezawodny. Niektóre programy (na przykład HyperV) mogą ponownie wyłączyć funkcję numlock, a po usunięciu klawisza z klawiatury (lub użycia klawiszy SharpKeys) trzeba oszukać i ponownie uruchomić komputer, aby go ponownie włączyć.
StingyJack
3

Możliwe jest automatyczne ponowne włączenie (w ciągu kilku milisekund) po wyłączeniu za pośrednictwem aplikacji.

Ten facet stworzył dla niego skrypt auto-klucza, który nazywa „Numlock Enforcer” http://www.donationcoder.com/forum/index.php?topic=9018.0

Nie do najbardziej eleganckiego rozwiązania, ale powinno działać.

kloneman
źródło
1

Może nie jest to odpowiedź, której szukasz, ale to rozwiązało problem:

Aktywuj dźwięk klawiszy blokady w systemie Windows (w systemie Windows 10: Panel sterowania \ Łatwość dostępu \ Centrum ułatwień dostępu \ Ułatw obsługę klawiatury \ Włącz klawisze przełączania)

W ten sposób, kiedy go uderzysz, wyemituje sygnał dźwiękowy i natychmiast zdasz sobie z tego sprawę. W rzeczywistości nauczyło mnie to, że nie muszę go już w ogóle uderzać, ponieważ sygnał jest odpowiedni, kiedy to się dzieje.

Aganju
źródło
Fajny pomysł, działający z wbudowanymi funkcjami!
Oliver,
1

Jeśli używasz Autohotkey, możesz dodać następujący wiersz do skryptu:

SetNumLockState, AlwaysOn

Pamiętaj, aby umieścić tę linię przed klawiszami skrótu. Umieszczam go na samym początku skryptu, więc upewniam się, że zawsze działa dobrze, jeśli umieścisz go w środku lub na końcu skryptu, może nie działać.

Shayan
źródło
0

BIOS może mieć ustawienie wyłączające klawisz NumLock, ale musimy znać model komputera i wersję systemu BIOS, aby omówić to bardziej szczegółowo. Zazwyczaj uruchamia się system BIOS i szuka elementu o nazwie „Stan NumLock”, „Bootup NumLock State” lub podobny, naciśnij klawisz Enter i za pomocą klawiszy strzałek wybierz „Wyłącz” lub „Wyłączony”, a następnie naciśnij klawisz Enter.

W przypadku hakerów systemu Windows rejestr zawiera HKCU\Control Panel\Keyboard element o nazwie InitialKeyboardIndicators, który ma nieudokumentowaną wartość 1wyłączenia NumLock. Jego skuteczność może się różnić w zależności od wersji systemu Windows.

Brutalnym rozwiązaniem jest odkręcenie nasadki klawisza Numlock i użycie pióra, aby w razie potrzeby zmienić jej ustawienie. Ustawienie zwykle będzie się zachowywać, ponieważ Windows XP i później zapamiętuje jego stan w trakcie rozruchu (chyba że BIOS lub inne ustawienie przeszkadza).

harrymc
źródło
0

Krok 1

Zmień rejestr, aby podczas uruchamiania ustawiał stan początkowy NumLock na:

HKEY_USERS\.DEFAULT\Control Panel\Keyboard\InitialKeyboardIndicators
  Set to Value to 2

Krok 2

Dodaj skrypt AutoHotkey, aby monitorować klucz i upewnić się, że nie można go wyłączyć. Zainstaluj AutoHotkey i utwórz nowy skrypt o nazwie MyBestNumlockHack.ahk. Umieść ten skrypt w katalogu C: \ Users \ {Nazwa użytkownika} \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Startup.

Numlock::
  if (!GetKeyState("NumLock", "T"))
    SetNumLockState, On
  return
HaveSpacesuit
źródło
0

Zrób minutnik i nazwij go NumlOn. Ustaw interwał na 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
Brollie
źródło
3
Gdzie jest wołowina? Podejrzewam, że chcesz użyć tego kodu do pliku. Co wtedy? Jak tego używasz? Jak to działa? Proszę nie odpowiadać w komentarzach; edytuj swoją odpowiedź, aby była jaśniejsza i bardziej kompletna.
Scott
0

Zapomniałem sub ... To w pełni działa

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
brollie
źródło
1
Witamy w Super User. Zamiast publikować wiele odpowiedzi, po prostu popraw poprzednią odpowiedź i usuń tę lub usuń tę, jeśli potrzebuje zmian w tej. Ponadto, co Scott powiedział na twojej drugiej odpowiedzi.
fixer1234