ทำการแมป FN ไปยังคีย์อื่น


14

ฉันมีแป้นพิมพ์ ( Logitech Waveดังภาพด้านล่าง) ซึ่งฉันมีความสุขมาก น่าเสียดายที่ผู้ผลิตเปลี่ยนปุ่มสำหรับคลิกขวาสำหรับคีย์ FN

มีโปรแกรมใดที่ต้องทำการแมปปุ่ม FN ไปยังสิ่งอื่นหรือไม่?

ข้อความแสดงแทน


คุณจะแนะนำให้รับหนึ่งในนั้นหรือไม่ ฉันต้องการแป้นพิมพ์ใหม่และไม่สามารถตัดสินใจได้ ... : p
Svish

2
มันเป็นคีย์บอร์ดที่สวยงาม แต่ OMG! เธอจะไม่เข้าสังคมคลัสเตอร์คีย์: codinghorror.com/blog/archives/001221.html
Igal Tabachnik

@Svish ยกเว้นปุ่ม FN และปุ่มฟังก์ชั่นมันสมบูรณ์แบบ ฉันต้องพูดถึงว่าคีย์บอร์ดมีขนาดใหญ่มากซึ่งไม่ใช่ปัญหาสำหรับฉัน แต่อาจเป็นปัญหาสำหรับคุณ
MrValdez

@hmemcpy ฉันเห็นด้วยกับโพสต์นั้น แต่ฉันจริงๆรักการออกแบบของแป้นพิมพ์ มันสะดวกสบายในการพิมพ์และส่วนใหญ่เวลาฉันวางนิ้วของฉันบนปุ่มซึ่ง (เชื่อหรือไม่) ผ่อนคลายนิ้วมือของฉัน ฉันหวังว่าพวกเขาจะไม่ทำลายรูปแบบแป้นพิมพ์
MrValdez

1
@Synetech: ตอนนี้ฉันมีแล้วจริงเหรอ และต้องบอกว่ายกเว้นปุ่ม Fn นั้น (แต่ไม่ใช่ปัญหามากจริง ๆ ) ฉันรักมัน สำหรับบล็อกแนวตั้ง / บล็อกการนำทางฉันพบว่าตัวเองชื่นชอบมันมากกว่าบล็อกปกติทั่วไป ไม่เคยคิดว่าฉันจะพูดแบบนั้น แต่ใช่ :) หน้าแรกและตอนจบอยู่ติดกันซึ่งทำให้ความรู้สึกเลื่อนหน้าขึ้นและเลื่อนหน้าลงเท่าที่ควรและปุ่มลบนั้นง่ายต่อการตี และต้องบอกว่าฉันใช้มากกว่าแทรก ไม่สามารถคิดได้เลยว่าจะเคยใช้แป้นแทรกนอกเหนือไปจากอุบัติเหตุ ... และพบว่ามันน่ารำคาญ ...
Svish

คำตอบ:


6

SHIFT+ F10.

ทางลัดคลิกขวาแป้นพิมพ์ค้างไว้และกดSHIFT F10นี่เป็นทางเลือกในกรณีright-click/ context menuปุ่มไม่สามารถใช้ได้


6

ปุ่ม Fn สามารถตั้งค่าใหม่ได้หรือไม่?

การขุดหาชุดค่าผสม Fn ใหม่ผ่านโปรแกรมเช่น AutoHotKey หรือขุดลงในแป้นพิมพ์สำหรับ Windows ผู้ใช้อาจสามารถตั้งค่ารหัสผสมที่น่ารังเกียจ (Fn + Key) ได้ (ดูคำตอบต่อไปนี้เพิ่มเติม)

เนื่องจากโดยปกติแล้วปุ่ม Fn จะอยู่ที่ระดับฮาร์ดแวร์จึงไม่สามารถแก้ไขหรือปิดการใช้งานสิ่งนี้ได้ในระดับนี้

[Fn] นี่คือรหัสฮาร์ดแวร์ที่ไม่ได้สร้างรหัสแยกต่างหาก

ที่มา: UI เหตุการณ์ค่ารหัสคีย์บอร์ด KeyboardEvent - คำแนะนำผู้สมัคร W3C, 2017


ในคีย์ที่คล้ายกัน F-Lock, Jason Tsang, Microsoft MVP กล่าวว่า:

ปุ่ม F Lock เป็นสวิตช์ฮาร์ดแวร์ในแป้นพิมพ์ สถานะของมันไม่สามารถควบคุมได้โดยทางโปรแกรม เงื่อนไขเริ่มต้นคือ "ปิด" ดังนั้นเมื่อใดก็ตามที่คีย์บอร์ดถูกรีเซ็ตหรือสูญเสียพลังงานปุ่ม F Lock จะอยู่ในสถานะ "ปิด" เสมอ โปรดทราบว่าด้วยคีย์บอร์ด Microsoft ที่วางจำหน่ายหลังเดือนกันยายน 2004 คีย์บอร์ดจะคงสถานะ F Lock ไว้ในการรีบูต

ที่มา: Microsoft Keyboards - ปุ่ม F Lock


คีย์ Fn คืออะไร รายละเอียดเพิ่มเติมบางส่วน:

Fn ไม่ใช่ปุ่มแป้นพิมพ์ปกติเช่นตัวดัดแปลง Ctrl, Shift และ AltGr สำหรับคีย์ตัวดัดแปลงมาตรฐานไมโครคอนโทรลเลอร์ภายในแป้นพิมพ์จะส่ง scancode สำหรับตัวดัดแปลงซึ่งจะถูกตีความโดยระบบปฏิบัติการและรวมกับการกดปุ่มอื่น ๆ พร้อมกัน ปุ่ม Fn เป็นรูปแบบของคีย์ meta-modifier ซึ่งจะทำให้ระบบปฏิบัติการเห็น scancodes ที่เปลี่ยนแปลงเมื่อกดปุ่มอื่น ๆ บนแป้นพิมพ์ สิ่งนี้ทำให้แป้นพิมพ์จำลองขนาดแป้นพิมพ์ได้โดยตรงดังนั้นระบบปฏิบัติการจึงสามารถใช้แป้นพิมพ์มาตรฐานที่ออกแบบมาสำหรับแป้นพิมพ์ขนาดเต็มได้ อย่างไรก็ตามเนื่องจากระบบปฏิบัติการไม่มีความคิดของปุ่ม Fn คีย์จึงไม่สามารถทำการแมปซ้ำในซอฟต์แวร์ได้ซึ่งแตกต่างจากแป้นคีย์บอร์ดมาตรฐานอื่น ๆ ทั้งหมด

แหล่งที่มา - A) โพสต์ฟอรั่ม highrezน่าจะขึ้นอยู่กับ B) โพสต์วิกิพีเดีย


ทำไมมันมักจะเป็นไปไม่ได้ดูเหมือนว่าจะแมปคีย์ Fn?

อันที่จริงการทำงานของแป้นพิมพ์ดังต่อไปนี้ (ค่าเป็นเพียงตัวอย่างพฤติกรรมจะง่ายขึ้น):

  • ปุ่มปกติ: ส่งไบต์ 0x00 + รหัสการสแกนคีย์ไบต์
  • ตัวปรับแต่ง (alt / ตัวเลือก, การควบคุม, windows / คำสั่งและ fn): ส่งไบต์ตัวแก้ไข scancode + ไบต์โค้ดสแกนคีย์
  • ปุ่มพิเศษ (เช่นเดียวกับ G15): ส่งมาตรฐาน (เช่นปุ่มปรับระดับเสียง) หรือ scancodes แบบกำหนดเอง (ขึ้นอยู่กับผู้ผลิต)

แป้นพิมพ์ "fn" ส่วนใหญ่ (รวมอยู่ในแอปเปิ้ล) เพียงดำเนินการคีย์ผสมก่อนส่งข้อมูลดังนั้นการกดและปล่อยปุ่ม fn จะไม่ทำอะไรเลย ตัวอย่างเช่น:

  • กด F1 -> Scancode 0x1A -> ระบบปฏิบัติการรับรู้ว่าเป็นปุ่ม F1
  • กด FN และ F1 -> Scancode 0x9A -> ระบบปฏิบัติการรับรู้เป็นคีย์ VolumeUp
  • การกด FN -> ไมโครคอนโทรลเลอร์ของแป้นพิมพ์จะรออีกคีย์หนึ่งก่อนส่งข้อมูลใด ๆ

ที่มา: ฟอรัม AutoHotKey


หนึ่งโปสเตอร์บน AutoHotKey เริ่มต้นด้วยคำถามเชิงโวหาร

I don't get any response when I press the Fn key.

ปุ่ม fn ไม่ควรส่งสัญญาณใด ๆ มันคืออะไรเปลี่ยนสัญญาณที่ส่งเมื่อคุณกดปุ่มอื่น ...

ดังนั้นข้อตกลงที่แท้จริงเกี่ยวกับ Fn-key ก็คือมันไม่ได้มีอยู่ในระบบปฏิบัติการดังนั้นคุณไม่สามารถ "ทำการแมปใหม่" ในระบบปฏิบัติการได้ สิ่งที่คุณทำได้คือทำการแมปฟังก์ชั่นรองของบางคีย์โดยทำการตั้งรหัสใหม่เพื่อส่งสัญญาณเดี่ยวที่แก้ไขด้วย fn ...

ดังนั้นโดยทั่วไปการกดปุ่ม fn-key อัตโนมัติจึงไม่สามารถทำได้ อย่างไรก็ตามการทำให้ผลลัพธ์สุดท้ายโดยอัตโนมัตินั้นไม่มีปัญหา! ...

ดังนั้นน่าเสียดายที่ไม่มีระบบอัตโนมัติใดที่จะทำได้ในระดับระบบปฏิบัติการ: คุณจะต้องลงไปที่ระดับฮาร์ดแวร์ / ไดรเวอร์และไม่สามารถทำได้ผ่าน AutoHotKey

ที่มา: AutoHotKeyForum Post


บางคนประสบความสำเร็จในการแมปฟังก์ชัน Fn ใหม่ผ่าน Autohotkey และมีบางคนที่ประสบความสำเร็จในการมองเห็นปุ่ม Fn

... คุณยังคงสามารถสร้างฮ็อตคีย์โดยใช้ขั้นตอนต่อไปนี้:

  • ตรวจสอบให้แน่ใจว่ามีสคริปต์อย่างน้อยหนึ่งสคริปต์ที่ใช้เบ็ดแป้นพิมพ์ คุณสามารถบอกได้ว่าสคริปต์มีเบ็ดของคีย์บอร์ดหรือไม่โดยเปิดหน้าต่างหลักและเลือก "ดู -> ประวัติคีย์" จากแถบเมนู
  • ดับเบิลคลิกที่ไอคอนถาดของสคริปต์เพื่อเปิดหน้าต่างหลัก
  • กดหนึ่งใน "ปุ่มลับ" บนแป้นพิมพ์ของคุณ
  • เลือกรายการเมนู "ดู -> ประวัติคีย์" เลื่อนลงไปที่ด้านล่างของหน้า
  • บางแห่งที่อยู่ใกล้ด้านล่างคือเหตุการณ์คีย์ - อัพและคีย์ - อัพสำหรับคีย์ของคุณ
  • หมายเหตุ: ปุ่มบางปุ่มไม่สร้างเหตุการณ์ดังนั้นจะไม่ปรากฏที่นี่ หากเป็นกรณีนี้คุณไม่สามารถกำหนดให้
    ปุ่มลัดนั้นเป็นคีย์โดยตรงเนื่องจากไดรเวอร์แป้นพิมพ์หรือฮาร์ดแวร์ของคุณจัดการที่ระดับต่ำเกินไปสำหรับ AutoHotkey ในการเข้าถึง สำหรับวิธีแก้ไขที่เป็นไปได้ดู
    เพิ่มเติมด้านล่าง หากตรวจพบคีย์ของคุณให้จดบันทึก
    เลขฐานสิบหก3 หลักในคอลัมน์ที่สองของรายการ (เช่น 159) หากต้องการ
    กำหนดคีย์นี้เป็นฮอตคีย์ให้ทำตามตัวอย่างนี้:
SC159:: ; Replace 159 with your key's value.
MsgBox, %A_ThisHotkey% was pressed.
return

ทิศทางกลับกัน: ในการทำการแมปคีย์อื่นให้เป็น "คีย์ลึกลับ" ให้ทำตามตัวอย่างนี้:

; Replace 159 with the value discovered above. Replace FF (if needed) with the
; key's virtual key, which can be discovered in the first column of the Key History screen.
#c::Send {vkFFsc159} ; See Send {vkXXscYYY} for more details.

ที่มา: autohotkey.com/docs/KeyList.htm


ใช้ AutoHotKey สำหรับ Remapping ผ่าน DLL

AutoHotkey เป็นโปรแกรมสร้างแมโครแบบโอเพ่นซอร์สสำหรับ Windows และหนึ่งในคุณสมบัติมากมายของมันคือการสร้างปุ่มลัด Micha หนึ่งในสมาชิกของฟอรัม AHK สร้างไฟล์ DLL เพื่อเพิ่มการสนับสนุนไปยัง AHK สำหรับ Human Interface Devices การใช้ไฟล์ DLL นี้เป็นไปได้ที่จะอ่านคีย์ของ HID ทุกอัน; คีย์บอร์ด, เม้าส์, รีโมทคอนโทรล ฯลฯ

นี่คือสิ่งที่ผู้สร้างกระบวนการ DLL พูดในบทความเก่า:

ก่อนอื่นข้อมูลบางอย่างเกี่ยวกับการทำงานของแป้นพิมพ์และปุ่ม Fn โดยเฉพาะ แต่ละคีย์จะมีรหัสเฉพาะของตัวเองซึ่งเป็นรหัสสแกนซึ่งคอมพิวเตอร์ที่เชื่อมต่ออยู่จะสามารถทราบได้ว่ามีการกดคีย์บางคีย์หรือไม่และเมื่อมีการเปิดตัว ปุ่ม Fn ทำงานแตกต่างกันเล็กน้อย เมื่อคุณกดปุ่ม Fn ค้างไว้มันจะเปลี่ยนรหัสสแกนของ (บางส่วน) ปุ่มอื่น ๆ บนแป้นพิมพ์เพื่อให้ปุ่มเดียวสามารถส่งรหัสสแกนที่แตกต่างกันกลับไปที่คอมพิวเตอร์แต่ละเครื่องเชื่อมต่อกับฟังก์ชั่นที่แตกต่างกัน นั่นเป็นเหตุผลที่ปุ่ม Fn มักใช้กับโน้ตบุ๊กคีย์บอร์ดขนาดเล็กหรือคีย์บอร์ดที่มีปุ่มมัลติมีเดียจำนวนมาก ด้วยวิธีนี้คุณสามารถเพิ่มฟังก์ชั่นมากมายให้กับปุ่มที่ค่อนข้างเล็ก

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

ตัวอย่างการบันทึกค่าคีย์ Fn ตามคำแนะนำ:

เมื่อทำงานแล้วให้กดปุ่ม Fn ของคุณหรือคีย์พิเศษอื่นแล้วจดค่าที่เกี่ยวข้อง

; Filter bit 5 (Fn key) Transform, FnValue, BitAnd, 16, KeyStatus

โค้ดตัวอย่างสำหรับการแมปฟังก์ชัน Fn ใหม่

;
; Fn + Backspace = Delete
;
$Backspace::hotkeyBS()

hotkeyBS() {
global fnPressed
if (fnPressed = 1) {
Send {Delete}
} else {
Send {Backspace}
}
}
Return

ที่มา: ทำตามคำแนะนำทั้งหมดที่นี่


SharpKeys

ดาวน์โหลดที่นี่ ; มีบทความที่นี่

SharpKeys เป็นยูทิลิตี้ที่จัดการคีย์รีจิสทรีที่อนุญาตให้ Windows ทำการแมปหนึ่งคีย์ไปยังคีย์อื่น รวมอยู่ในแอปพลิเคชันคือรายการของแป้นคีย์บอร์ดทั่วไปและคุณสมบัติ Type Key เพื่อจดจำแป้นคีย์บอร์ดส่วนใหญ่โดยอัตโนมัติ เดิมได้รับการพัฒนาใน C # โดยใช้. NET v2 แต่ได้รับการปรับปรุงเพื่อรองรับ. NET 4.0 ไคลเอนต์โปรไฟล์

นอกจากนี้ KeyTweak

KeyTweak เป็นยูทิลิตี้ง่าย ๆ ที่ช่วยให้ผู้ใช้สามารถกำหนดสัญญาณอินพุตคีย์บอร์ดใหม่ได้ ฟังก์ชั่นนี้เกิดขึ้นได้ด้วยค่ารีจิสตรี้ก่อนใน Windows 2000 แต่มีอยู่ใน Windows NT 4.0 ด้วย และรวมอยู่ใน XP, Vista และ Windows 7 ในส่วนนี้จะแสดงรายการคุณสมบัติและเหตุผลบางประการของ KeyTweak ที่คุณอาจต้องการใช้ KeyTweak

เก็บถาวร: คู่มือและการติดตั้งที่นี่


ข้อมูลอื่น ๆ:


เอกสารและลิงค์ของ Microsoft

ลิงค์มาจากคำตอบ SU


โหมดปุ่มการกระทำผ่าน Bios ทำอะไรได้บ้าง

การตั้งค่านี้เปลี่ยนพฤติกรรมเริ่มต้นของปุ่มบนสุดของแป้นพิมพ์แล็ปท็อป มันหมายความว่าอะไร?

หากตั้งค่า“ โหมดคีย์การกระทำ” เป็น“ เปิดใช้งาน” แล้วเพื่อใช้คุณสมบัติเพิ่มเติมที่แสดงเป็นไอคอนที่แถวบนสุดของแป้นพิมพ์คุณไม่จำเป็นต้องกดปุ่ม Fn ค้างไว้ มันต้องถูกยึดเพื่อให้ปุ่มบนทำงานเหมือน F1..F12

ในกรณีที่ "โหมดคีย์การกระทำ" อยู่ในตำแหน่ง "ปิดการใช้งาน" ซึ่งมักจะเป็นค่าเริ่มต้นปุ่มด้านบนจะทำงานได้ตามมาตรฐาน F1 ... F12 และเพื่อใช้งานฟังก์ชั่นขั้นสูงของพวกเขา นอกจากนี้ยึด Fn

ที่มา: การแปลบทความช่วยเหลือของรัสเซีย Ad.ru


อ่านเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.