เป็นไปได้หรือไม่ที่จะเปิดใช้ Num Lock โดยไม่ต้องใช้ความสามารถของปุ่ม Num Lock ในการปิด?


14

ดังนั้นคำถามนี้ไม่เกี่ยวกับการเปิด NUM โดยค่าเริ่มต้น

เป็นไปได้หรือไม่ที่เปิดใช้งาน num lock และลบความสามารถของปุ่ม num lock บนคีย์บอร์ดเพื่อส่งผลกระทบต่อสถานะนั้น

แก้ไข (เพราะ):

ในแป้นพิมพ์ของฉันปุ่มมันใกล้เคียงกับHome numlockในที่ทำงานฉันมักจะใช้Homeและผู้เล่นคนหนึ่ง แต่บางครั้งฉันก็บังเอิญตีnumlockด้วยเช่นกัน เป็นผลให้ numpad ของฉันถูกปิดซึ่งมันแย่จริง ๆ เมื่อฉันต้องพิมพ์ตัวเลขจำนวนมากและหลังจากนั้นไม่นานฉันก็รู้ว่าฉันไม่ได้พิมพ์อะไรเลยเพราะ numlock ปิด numpad


5
ลบคีย์ numlock และใช้อีพ๊อกซี่สวิตช์ในตำแหน่งเปิดกุญแจกลับคืน
Moab

ทำไมคุณต้องใช้มัน เพิ่งอยากรู้
ผู้ใช้ที่ลงทะเบียน

@Registered ผู้ใช้เห็นการแก้ไขของฉัน
Adam Varhegyi

คำตอบ:


5

ฉันใช้ CapShift และได้ฟรี:

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

"CAPshift ขยายปุ่ม Caps Lock โดยทำให้ช้าลง ...

  • กดค้างไว้ 0.5 วินาทีเพื่อเปิด / ปิดการใช้งาน
  • กดค้างไว้ 1 วินาทีเพื่อแสดงเมนู
  • คลิกขวาที่ไอคอนถาดเพื่อแสดงเมนู
  • ชะลอความเร็ว F1, Insert, NumLock และ ScrollLock ด้วย "

ข้อดีคือ: คุณจะไม่สูญเสียความสามารถในการเปลี่ยน NumLock หากคุณต้องการจริงๆ


ฟังดูดี แต่ตัวติดตั้งไม่ทำงานบน Windows 8.1: [
Adam Varhegyi

5

ลบคีย์ NumLock ทางกายภาพ เมื่อนิ้วของคุณไปกดมันจะไม่อยู่ที่นั่น


ทางออกที่เข้าใจผิดได้
Rohit Gupta

5
จริงๆแล้วมันไม่สามารถป้องกันความผิดพลาดได้ ซอฟต์แวร์บางตัว (เช่น HyperV) สามารถเปิดปิด numlock อีกครั้งและเมื่อคุณลบคีย์ออกจากแป้นพิมพ์ (หรือใช้ SharpKeys) คุณจะต้องเล่นไปรอบ ๆ และรีบูตเพื่อนำกลับมาใช้ใหม่
StingyJack

3

เป็นไปได้ที่จะนำมันกลับมาโดยอัตโนมัติ (ภายในไม่กี่มิลลิวินาที) เมื่อมันถูกปิดผ่านแอปพลิเคชัน

ผู้ชายคนนี้สร้างสคริปต์ autohotkey สำหรับสิ่งที่เขาเรียกว่า "Numlock Enforcer" http://www.donationcoder.com/forum/index.php?topic=9018.0

ไม่ใช่ทางออกที่หรูหราที่สุด แต่ควรใช้งานได้


1

อาจไม่ใช่คำตอบที่คุณกำลังมองหา แต่มันแก้ไขปัญหาให้ฉันได้:

เปิดใช้งานเสียงสำหรับปุ่มล็อคใน Windows (ใน Windows 10: แผงควบคุม \ ความง่ายในการเข้าถึง \ ความง่ายในการเข้าถึง Center \ ทำให้แป้นพิมพ์ใช้งานง่ายขึ้น \ เปิดใช้ปุ่มสลับ)

ด้วยวิธีนี้เมื่อคุณกดปุ่มมันจะส่งเสียงบี๊บและคุณจะรู้ได้ทันที จริง ๆ แล้วมันสอนให้ฉันไม่ตีอีกเลยเพราะสัญญาณถูกต้องเมื่อมันเกิดขึ้น


เป็นความคิดที่ดีทำงานกับฟังก์ชั่นในตัว!
โอลิเวอร์

1

หากคุณใช้ Autohotkey คุณสามารถเพิ่มบรรทัดต่อไปนี้ในสคริปต์ของคุณ:

SetNumLockState, AlwaysOn

อย่าลืมใส่สายนี้ต่อหน้าปุ่มลัดของคุณ ฉันวางไว้ที่จุดเริ่มต้นของสคริปต์ของฉันดังนั้นฉันจึงตรวจสอบว่ามันทำงานได้ดีเสมอหากคุณวางไว้ตรงกลางหรือตอนท้ายของสคริปต์มันอาจไม่ทำงาน


0

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 หรือการตั้งค่าอื่นจะรบกวน)


0

ขั้นตอนที่ 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

0

ทำการจับเวลาและเรียกมันว่า 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

3
เนื้ออยู่ที่ไหน ฉันคิดว่าคุณต้องการให้ใช้รหัสนี้ในไฟล์ ถ้าเช่นนั้นจะเป็นอย่างไร คุณใช้มันอย่างไร? มันทำงานยังไง? กรุณาอย่าตอบในความคิดเห็น; แก้ไขคำตอบของคุณเพื่อให้ชัดเจนและสมบูรณ์ยิ่งขึ้น
สกอตต์

0

ลืมย่อย ... มันทำงานได้อย่างสมบูรณ์

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
ยินดีต้อนรับสู่ Super User แทนที่จะโพสต์คำตอบหลายคำตอบโปรดแก้ไขคำตอบก่อนหน้าและลบคำตอบนี้หรือลบคำตอบนั้นหากต้องการการเปลี่ยนแปลงในคำตอบนี้ นอกจากนี้สิ่งที่สกอตต์พูดกับคำตอบอื่นของคุณ
fixer1234
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.