ฉันสามารถสลับวิธีการป้อนข้อมูลขณะที่ Caps Lock ถูกระงับบน Windows ได้หรือไม่


4

บนคอมพิวเตอร์ Linux แป้นพิมพ์ของฉันเปลี่ยนจากภาษาอังกฤษเป็นภาษาเซอร์เบียเมื่อฉันกดแป้น Caps Lock ค้างไว้ ตัวอย่างเช่นในการเขียนčทั้งหมดที่ฉันต้องทำคือกด Caps Lock ค้างไว้แล้วกดปุ่มที่čอยู่บนแป้นพิมพ์ภาษาเซอร์เบีย (ในกรณีนี้ปุ่มเหล่านี้คือ; บนแป้นพิมพ์ภาษาอังกฤษ) เมื่อฉันปล่อย Caps Lock แป้นพิมพ์ "สลับกลับ" เป็นภาษาอังกฤษดังนั้นถ้าฉันกด; ฉันเข้าใจ ; ตามที่ต้องการ สุดยอดประโยชน์

โปรดทราบว่าฉันรู้วิธีเปลี่ยนเค้าโครงแป้นพิมพ์ ฉันต้องการใช้ Caps Lock เป็นปุ่มตัวปรับเปลี่ยนเพื่อเปลี่ยนภาษาเฉพาะในขณะที่ถูกระงับ!

มีวิธีการทำซ้ำพฤติกรรมนี้ใน Windows 7 หรือ Windows 8 หรือไม่?

หมายเหตุ: บางครั้งเรียกว่าการสลับอักขระ "ระดับที่สาม" (การกด Shift จะเป็นระดับที่สองเป็นต้น) ฉันไม่ใช่คนที่ติดอยู่กับ Caps Lock; ปุ่มอื่น ๆ จะทำ

คำตอบ:


1

สคริปต์ AutoHotKey ที่น่าเชื่อถือที่สุดจากการทดสอบของฉันคือ:

*CapsLock::
SetKeyDelay -1   ; If the destination key is a mouse button, SetMouseDelay is used instead.
;send {Blind}{CapsLock DownTemp}
PostMessage, 0x50, 0x02, 1,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 0x02 is forward
return

*CapsLock up::
SetKeyDelay -1  ; See note below for why press-duration is not specified with either of these SetKeyDelays.
;send {Blind}{CapsLock Up}
PostMessage, 0x50, 0x04, 1,, A ; 0x50 is WM_INPUTLANGCHANGEREQUEST. 0x04 is backward
return

หมายเหตุ: คุณต้องตั้งค่าภาษาป้อนเข้า 2 ภาษาในแผงควบคุมภูมิภาค / ภาษาของ windows

ยืนรุ่นที่ปฏิบัติการอยู่คนเดียวนี่

หากต้องการหยุดสคริปต์ให้คลิกขวาที่ H ในทาสก์บาร์ของคุณแล้วคลิกหยุดชั่วคราว / ออก

หากคุณต้องการที่จะรักษาฟังก์ชันการทำงานของแคปล็อค (เช่น: กดมันจะเปิด Caps Lock และภาษาการเปลี่ยนแปลงปล่อยมันจะกลับไปใช้ภาษาก่อนหน้า แต่ปล่อยให้แคปล็อค) เพียง แต่เอาทั้งสอง;ตัวละครในช่วงเริ่มต้นของทั้งสองsendสาย

ดูว่าฉันพิมพ์มันเร็วแค่ไหน:; č; č; č; č; č; č; č; č

ค่อนข้างเร็วใช่มั้ย


เร็วมากลุค เร็วมาก ... ขอบคุณนี่ยอดเยี่ยมมาก! :)
MarkovCh1

ป.ล. จะเกิดอะไรขึ้นถ้าฉันมี 3 ภาษา? (ไประหว่างสองคนแรก?)
MarkovCh1

1
ใช่ผมคิดว่าอย่างงั้น. การกระทำแบบเลื่อนลงไปที่ "ไปข้างหน้า" หรือ "ลง" 1 ในรายการภาษาและการกระทำแบบเลื่อนลงจะไปที่ "ย้อนกลับ" หรือ "ขึ้น" 1 (เปลี่ยนกลับเป็นภาษาต้นฉบับ)
ลุค

1

คุณอาจจะสามารถทำเช่นนี้ได้ค่อนข้างง่ายโดยใช้AutoHotKey คุณจะต้องอ่านตัวเองก่อนหากไม่เคยใช้มาก่อน แต่สามารถใช้แมปกับปุ่มใดก็ได้

ดูสิ่งนี้สำหรับการแมปคีย์ใหม่ (สะดวกมีรายการเฉพาะสำหรับ Caps Lock)


ฉันไม่แน่ใจว่าสามารถทำได้ ฉันจะบังคับสัญญาณอะไรเมื่อฉันกด Caps Lock
MarkovCh1

ฉันอ่านคำถามของคุณอีกครั้งและฉันคิดว่าฉันเข้าใจคุณผิดในตอนแรก หากคุณต้องการให้ CapsLock ทำเค้าโครงแป้นพิมพ์ 'ซ้อนทับ' ที่แตกต่างกันในขณะที่กดแป้นพิมพ์นั่นเป็นเรื่องยากมากที่จะประสบความสำเร็จ ไม่มีความคิดว่าคุณจะทำเช่นนั้นขอโทษ
pleinolijf

อาจเป็นไปได้ที่จะปรุงอาหารด้วยMSKLC ?
pleinolijf

ฉันจะลอง MSKLC ในบางจุด; ฉันจะกลับมาหาคุณ. ขอบคุณ
MarkovCh1

MSKLC ไม่สามารถจัดการงานได้
MarkovCh1

1

ใน windows 7 คุณสามารถตั้งค่าการซ้อนทับของแป้นพิมพ์ได้หลายวิธีโดยไปที่:

Control Panel-> "Clock, Language, and region" -> "Change Keyboards or other input methods" -> "Keyboards and Languages" tab -> "Change Keyboards"

จากที่นี่คุณสามารถเพิ่มแป้นพิมพ์เซอร์เบียภายใต้บริการที่ติดตั้ง

โดยค่าเริ่มต้นAlt+Shiftคือชุดค่าผสมเริ่มต้นเพื่อสลับระหว่างแป้นพิมพ์ แต่คุณสามารถกำหนดค่านี้ได้ภายใต้Advanced Key Settingsแท็บ

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


อาขอบคุณ แต่นี่ไม่ใช่สิ่งที่ฉันต้องการ
MarkovCh1

1

คำตอบก่อนหน้านี้สองคำตอบโดย @Jared และ @pleinolijf สามารถใช้ร่วมกันเพื่อสร้างคำตอบสุดท้ายได้

เมื่อใช้คำตอบของ Jared คุณสามารถกำหนดฮอตคีย์ของคีย์บอร์ดแต่ละแบบ

การใช้คำตอบของ pleinolijf คุณสามารถเขียนสคริปต์ AutoHotkey ที่จะส่งฮอตคีย์เพื่อเปลี่ยนเป็นเซอร์เบียเมื่อกด CapsLock จากนั้นกดภาษาอังกฤษเมื่อมีการเปิดตัว

หากไม่มีการทดสอบอะไรสิ่งนี้อาจคล้ายกับ:

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