คู่มือ · ทำงานที่ไหนบ้าง
Lang Switcher ทำงานในหน้าต่างของโปรแกรมที่เรียกใช้ในฐานะผู้ดูแลระบบไหม?
ได้ Lang Switcher ติดตั้งใน C:\Program Files และตัวติดตั้งจะสร้างใบรับรองของตัวเองบนคอมพิวเตอร์ ใช้ลงนามโค้ดเท่านั้น ลงนาม Lang Switcher แล้วทำลายกุญแจทันที และเมื่อถอนการติดตั้งก็ลบใบรับรองด้วย Windows จึงอนุญาตให้ Lang Switcher ทำงานในหน้าต่างของโปรแกรมที่เรียกใช้ในฐานะผู้ดูแลระบบ ส่วนหน้าจอคำขอ UAC, Ctrl+Alt+Del และหน้าลงชื่อเข้าใช้ โปรแกรมจับการกดแป้นไม่ได้ เป็นข้อจำกัดของ Windows
ทำไมทำงานได้
สิทธิ์ผู้ดูแลระบบ — ครั้งเดียว ตอนติดตั้ง: Lang Switcher ติดตั้งลงใน C:\Program Files\Lang_Switcher และตัวติดตั้งจะสร้างใบรับรองบนคอมพิวเตอร์เครื่องนี้ เพื่อให้ Lang Switcher ทำงานได้ในหน้าต่างของโปรแกรมที่เรียกใช้ในฐานะผู้ดูแลระบบด้วย (manifest uiAccess) ส่วนตัว Lang Switcher เองทำงานโดยไม่ใช้สิทธิ์ผู้ดูแลระบบ
uiAccess เป็นกลไกของ Windows เอง: แป้นพิมพ์บนหน้าจอ แว่นขยาย และผู้บรรยายก็ใช้กลไกนี้ โปรแกรมได้รับอนุญาตให้ทำงานในหน้าต่างระดับสูงกว่า แต่ไม่ได้รับสิทธิ์ผู้ดูแลระบบ Windows จะอนุญาตแบบนี้ก็ต่อเมื่อไฟล์โปรแกรมมีลายเซ็นที่คอมพิวเตอร์เครื่องนี้เชื่อถือ และอยู่ใน C:\Program Files
ด้วยเหตุนี้ การเริ่มพร้อม Windows จึงไม่มีคำขอ UAC: เครื่องหมายที่ “เริ่มทำงานเมื่อฉันลงชื่อเข้าใช้” ไม่ถามอะไร
ที่ที่ไม่ทำงาน
บนหน้าจอคำขอ UAC, Ctrl+Alt+Del และหน้าลงชื่อเข้าใช้ โปรแกรมจับการกดแป้นไม่ได้ เป็นข้อจำกัดของ Windows นอกจากระบบเองแล้วไม่มีโปรแกรมใดเข้าถึงที่นั่นได้
บางเกมก็เช่นกัน: เกมเหล่านี้อ่านแป้นพิมพ์โดยไม่ผ่าน Windows และไม่รับการแทนที่ข้อความ เพิ่มเกมแบบนี้ในข้อยกเว้น
รุ่นสำรอง
ถ้าเรียกใช้ตัวติดตั้งด้วยตัวเลือก /NOLOCALCERT จะได้รุ่นสำรอง: โค้ดเดียวกัน แต่ไม่มี uiAccess รุ่นสำรองทำงานได้ทุกที่ ยกเว้นหน้าต่างของโปรแกรมที่เรียกใช้ในฐานะผู้ดูแลระบบ: ที่นั่นแป้นพิมพ์ลัดไม่มีผล
ถ้าติดตั้งรุ่นเต็มบนคอมพิวเตอร์เครื่องนี้ไม่ได้ ตัวติดตั้งจะติดตั้งรุ่นสำรองเอง และตอนท้ายจะบอกด้วยหน้าต่าง: “ติดตั้ง Lang Switcher แล้ว แต่จะไม่ทำงานในหน้าต่างของโปรแกรมที่เรียกใช้ในฐานะผู้ดูแลระบบ…” ถ้าเห็นหน้าต่างนี้ ให้เขียนถึงผู้พัฒนา: เมนูไอคอน → “เขียนถึงผู้พัฒนา…”
ดูเพิ่มเติม
คำถามและปัญหาที่ GitHub Issues ↗ หรืออีเมล send.me@panda-pishet-kod.dev