ฉันกำลังพยายามกำหนดค่าแถบภาษา (ตัวสลับภาษาใน systray ซึ่งปรากฏขึ้นเมื่อคุณติดตั้งหลายภาษาสำหรับผู้ใช้ของเรา)
ฉันสามารถเพิ่มภาษาใหม่ได้อย่างง่ายดายโดยใช้ regkeys ด้านล่าง HKCU แต่ปัญหาคือผู้ใช้ต้องทำการเชื่อมต่อใหม่หรือรีบูตเครื่องคอมพิวเตอร์เพื่อดูผลกระทบ
คีย์ที่ฉันใช้ (ฉันกำลังเขียนด้วยการตั้งค่าที่ใช้งานอยู่) จะอยู่ใน "HKEY_CURRENT_USER \ Keyboard Layout \ Preload" ด้านล่างที่สำคัญคือชื่อ / ค่าประเภท REG_SZ
โดยปกติแล้วจะมีปุ่มเช่น "1" = "0000407" "2" = "0000409" ซึ่งหมายความว่าผู้ใช้มีการติดตั้งแป้นพิมพ์ภาษาเยอรมันและอังกฤษถ้าฉันต้องการเพิ่มให้พูดอิตาลีฉันจะเพิ่มคีย์ "3" = "0000410" หลังจากการออกจากระบบครั้งถัดไป / เข้าสู่ระบบการเปลี่ยนแปลงจะปรากฏแก่ผู้ใช้
ตอนนี้สิ่งที่ฉันได้ลองแล้วคือการส่งข้อความ windows ต่าง ๆ เช่น WM_SETTINGCHANGE หรือคำสั่ง "RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters" แต่ยังไม่มีผลลัพธ์ที่มีประโยชน์
ฉันหมดความคิดที่นี่ทำให้ผู้ใช้หลายร้อยคนออกจากระบบ / การเข้าสู่ระบบจะไม่ดี: /
ฉันยังคิดว่าจะทำการ mouseclicks อัตโนมัติ (เช่น autoit) แต่มันมักจะทำให้เกิดปัญหามากกว่าจะดี