เครื่องมืออัตโนมัติสำหรับแล็ปท็อป Lenovo ThinkPad บางรุ่น (เช่น X1c, X1e, P1) เพื่อควบคุมไฟแบ็คไลท์ของคีย์บอร์ดและความสว่างของหน้าจอ LCD (แบ็คไลท์) ในการติดตั้ง Windows โดยใช้แอปพลิเคชันถาดระบบ แล็ปท็อปเหล่านี้ไม่มีกลไกควบคุมอัตโนมัติสำหรับทั้งสองเครื่อง พฤติกรรมเพิ่มเติมที่เพิ่มโดยโปรแกรมนี้เลียนแบบการทำงานอัตโนมัติบางอย่างที่พบในอุปกรณ์อื่น การควบคุมแสงพื้นหลังของแป้นพิมพ์จะถูกกระตุ้นโดยการหมดเวลากิจกรรมของผู้ใช้ และการควบคุมแสงพื้นหลังของหน้าจอจะสุ่มตัวอย่างระดับแสงโดยรอบโดยใช้กล้องในตัว
โปรเจ็กต์นี้จัดเตรียมแอปพลิเคชันถาดระบบ Windows พื้นหลังที่เพิ่มการควบคุมแบ็คไลท์ของคีย์บอร์ดและหน้าจอ LCD ผ่านซอฟต์แวร์ การตั้งค่าที่รองรับคุณสมบัติทั้งสองนี้สามารถกำหนดค่าได้ผ่านเมนูบริบท GUI (คลิกขวา) บนถาดระบบ สามารถปิดใช้งานหรือเปิดใช้งานทีละรายการได้
ไฟแบ็คไลท์ของคีย์บอร์ดจะสว่างขึ้นโดยอัตโนมัติทุกครั้งที่ผู้ใช้โต้ตอบกับฮาร์ดแวร์คีย์บอร์ด/เมาส์ในตัว หลังจากหมดเวลาการไม่ใช้งานที่ปรับได้ ไฟพื้นหลังจะมืดลง ระดับความสว่างของแป้นพิมพ์จะเปลี่ยนไปตามแป้นพิมพ์ลัด "Fn+Space" ที่มีอยู่สำหรับระดับแบ็คไลท์ การตั้งค่าจะคงอยู่ตลอดเหตุการณ์การใช้พลังงาน (สลีป/ปลุก, เปิด/ปิดจอแสดงผล) เพื่อประสบการณ์แบบแฮนด์ฟรี ซึ่งแตกต่างจากพฤติกรรมของโรงงานในสต็อกซึ่งจะรีเซ็ตไฟแบ็คไลท์ตลอดเหตุการณ์การใช้พลังงาน
แสงพื้นหลังของหน้าจอจะส่องสว่างโดยอัตโนมัติโดยการสุ่มตัวอย่างกล้องในตัวเพื่อเลียนแบบเซ็นเซอร์วัดแสงโดยรอบ กล้องจะถ่ายภาพสแนปชอตที่มีความละเอียดต่ำขั้นพื้นฐานและคำนวณระดับความเข้มเฉลี่ยเพื่อใช้เป็นพร็อกซีสำหรับระดับแสงโดยรอบ ระดับจะถูกแมปกับเปอร์เซ็นต์ความสว่างของหน้าจอโดยใช้เส้นโค้งการปรับเทียบที่กำหนดค่าได้ กระบวนการสุ่มตัวอย่างและการอัปเดตจะถูกกระตุ้นโดยเหตุการณ์พลังงาน (สลีป/ปลุก เปิด/ปิดจอแสดงผล) หรือโดยการหมดเวลาของกิจกรรมผู้ใช้บนแป้นพิมพ์/เมาส์ในตัว ซึ่งจะทำให้ไฟแบ็คไลท์พร้อมในการใช้งานครั้งแรก สามารถเลือกระบุช่วงเวลาการสุ่มตัวอย่างเป็นระยะได้ อย่างไรก็ตาม สิ่งนี้อาจทำให้เสียสมาธิได้เนื่องจากมีไฟ LED แสดงกิจกรรมในตัวกล้อง แอปพลิเคชันนี้จะสุ่มตัวอย่างกล้องตามเหตุการณ์ที่คาดการณ์ได้เท่านั้น (เหตุการณ์ด้านพลังงาน การหมดเวลาของกิจกรรมผู้ใช้) เพื่อลดสิ่งรบกวนสมาธิ ปุ่มลัดที่กำหนดค่าได้ (ค่าเริ่มต้น: Alt-Space) ยังสามารถเรียกใช้การรีเฟรชแบ็คไลท์ของหน้าจอได้ เมื่อผู้ใช้เคลื่อนที่ไปยังสภาพแสงที่แตกต่างกัน
ไปที่ส่วนการเผยแพร่และดาวน์โหลดตัวติดตั้ง Windows ล่าสุด มันจะเพิ่ม "Auto Backlight for ThinkPad" ให้กับแอพพลิเคชั่นเริ่มต้นระบบเพื่อเริ่มต้นโดยอัตโนมัติด้วยการเข้าสู่ระบบของผู้ใช้ สามารถถอนการติดตั้งได้อย่างง่ายดายผ่าน "เพิ่มหรือลบโปรแกรม" หรือวิธีการอื่นที่คล้ายคลึงกัน
หากคุณต้องการปิดการใช้งานป๊อปอัปการแสดงผลบนหน้าจอของ Lenovo จะมีช่องทำเครื่องหมาย "เปิดใช้งานการแสดงผลบนหน้าจอ" ฝังอยู่ในการตั้งค่าบน Windows 10 เข้าถึงได้ผ่านการตั้งค่า -> ระบบ -> การแสดงผล -> การตั้งค่าการแสดงผลขั้นสูง - >คุณสมบัติของอะแดปเตอร์จอแสดงผลสำหรับจอแสดงผล 1-->การกำหนดค่าหน้าจอ ดูภาพ.
โปรเจ็กต์นี้สร้างขึ้นจากเทมเพลตโปรเจ็กต์ Visual Studio 2019 C# WPF และเทมเพลตโปรเจ็กต์การตั้งค่า Windows เพื่อสร้างตัวติดตั้ง C# บนเฟรมเวิร์ก Microsoft .NET ได้รับเลือกสำหรับโค้ดที่มีความเข้ากันได้สูง โดยไม่มีการพึ่งพาภายนอก โดยใช้เฉพาะเฟรมเวิร์กที่ติดตั้งไว้ การสื่อสารกับแป้นพิมพ์ทำได้ผ่านการเรียก Windows IO ไปยัง IbmPmDrv (ไดรเวอร์การจัดการพลังงานของ Lenovo/IBM) ซึ่งควรมีให้ใช้งานบนแล็ปท็อปเหล่านี้ อินเทอร์เฟซของกล้องนั้นผ่านไลบรารีการประมวลผลภาพ Accord.NET ของบริษัทอื่นซึ่งใช้ Microsoft DirectShow ภายใต้ประทุน
แอปพลิเคชันเชื่อมโยงกับเหตุการณ์ Windows Win32 Power Management ต่างๆ เช่น Suspend, Resume, Display On/Off, Lid Close/Open เพื่อทริกเกอร์การจัดการพิเศษของสถานะแบ็คไลท์รอบๆ เหตุการณ์เหล่านี้ เหตุการณ์เหล่านี้ทำให้เกิดการอัพเดตไฟแบ็คไลท์ของคีย์บอร์ดและ/หรือไฟแบ็คไลท์ของหน้าจอ Windows Win32 Raw Input ใช้เพื่อแจ้งเตือนแอปตามกิจกรรมของผู้ใช้สำหรับอุปกรณ์ฮาร์ดแวร์บางอย่าง (แป้นพิมพ์และเมาส์ในตัวของแล็ปท็อป) กิจกรรมกิจกรรมเหล่านี้จะกระตุ้นให้แสงไฟส่องด้านหลัง ซึ่งจะถูกรีเซ็ตในภายหลังหลังจากหมดเวลา เหตุการณ์การป้อนข้อมูลบ่อยครั้งจะถูกปิดเสียงอย่างรวดเร็วเพื่อรักษาอายุการใช้งานแบตเตอรี่ (การใช้งาน CPU) เมื่อไม่จำเป็น การใช้งาน CPU ได้รับการทดสอบในระหว่างการพัฒนาแอปเพื่อให้น้อยที่สุดในฐานะแอปพลิเคชันพื้นหลัง
โซลูชัน Visual Studio มีทั้งโครงการ C# (ตัวแอปพลิเคชันเอง) และโครงการการตั้งค่า Windows (ตัวติดตั้ง) ตราบใดที่การพึ่งพาหลักเป็นไปตาม Microsoft .NET Framework ทุกอย่างควรสร้างแบบสำเร็จรูปบน Visual Studio 2019 โปรเจ็กต์นี้เรียบง่ายและส่วนใหญ่เป็นการตั้งค่ามาตรฐาน/ค่าเริ่มต้น เคล็ดลับอย่างหนึ่งในการใช้งานคือการเปลี่ยนเส้นทางการอ้างอิง dll ภายนอก โดยปกติไฟล์ dll เหล่านี้ (จากแพ็คเกจ NuGet ที่รวมไว้) จะปรากฏข้างแอปพลิเคชันในตัวสำรวจไฟล์ แต่ส่วนใหญ่จะถูกฝังอยู่ภายในไฟล์ปฏิบัติการซึ่งเป็นส่วนหนึ่งของกระบวนการสร้าง
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต Apache-2.0 ดูไฟล์ใบอนุญาตสำหรับข้อความฉบับเต็ม ดูไฟล์ประกาศสำหรับการระบุแหล่งที่มา