ในการเปลี่ยนแถบเลื่อนที่แสดงในแอปพลิเคชันคุณต้องเข้าใจวิธีการแสดงผล GUI
GUI (ส่วนต่อประสานกราฟิกกับผู้ใช้) สามารถสร้างการแสดงผลได้โดยหนึ่งในสองวิธีต่อไปนี้:
มาตรฐาน : แอปพลิเคชันขอให้ระบบปฏิบัติการแสดงวิดเจ็ตบางประเภท มีวิดเจ็ตในตัวในระบบปฏิบัติการ Windows; วิดเจ็ตเหล่านี้จะปรากฏในแอปพลิเคชัน Microsoft ในตัวรวมถึงโปรแกรมของ บริษัท อื่นหลายแห่งที่ใช้ชุดเครื่องมือเดียวกัน
กำหนดเอง : แอปพลิเคชันจำนวนมากใช้ชุดเครื่องมือวิดเจ็ตที่กำหนดเองหรือกำหนดสไตล์เองของวิดเจ็ตหรือที่เรียกว่า "ไม่ใช่เจ้าของภาษา" แอปพลิเคชันจะขอผืนผ้าใบทั่วไป 2 มิติซึ่งโดยทั่วไปจะเป็นรูปสี่เหลี่ยมผืนผ้าที่ว่างเปล่าและด้วยตนเอง "วาด" พิกเซลที่ต้องการลงในพื้นที่นั้น แอปพลิเคชันที่ทำสิ่งนี้ไม่ได้เรียกใช้ระบบปฏิบัติการ Windows เพื่อร้องขอวิดเจ็ตดั้งเดิมของตัวเอง พวกเขา "ทาสี" โดยใช้ชุดเครื่องมือหรือรหัสเฉพาะแอปพลิเคชันแทน
ตัวอย่างชุดเครื่องมือที่ใช้เนทิฟวิดเจ็ตโดยตรงหรือโดยอ้อม ได้แก่ :
- Java SWT
- แอปพลิเคชั่น. NET ส่วนใหญ่ที่ใช้ Windows Forms แม้ว่าตัวสร้างแบบฟอร์มที่กำหนดเองจะเป็นไปได้ก็ตาม
- แอปพลิเคชันที่ใช้ ATL, MFC หรือ Win32 Win32 โดยตรง
ตัวอย่างของชุดเครื่องมือที่กำหนดเองรวมถึง:
- GTK + (เอ็นจินบางตัว; มีเอ็นจิน "เนทีฟ" ที่วาดวิดเจ็ต Windows ดั้งเดิม)
- Java Swing (Java ยังคงวาดภาพของตัวเอง แต่จะใช้ทรัพยากรกราฟิกจากลักษณะที่ปรากฏของเครื่องมือพื้นเมืองเพื่อเลียนแบบหรือประมาณลักษณะและความรู้สึกของเครื่องมือพื้นเมือง)
- Qt (เอ็นจินบางตัว; มีเอ็นจิน "เนทีฟ" ที่ใกล้เคียงกับวิดเจ็ต Windows ดั้งเดิมหรือใช้โดยตรงถ้าเป็นไปได้)
- Juce (คล้ายกับ Java Swing)
ตอนนี้เมื่อคุณพูดว่า "เปลี่ยนแถบเลื่อนค่าเริ่มต้นของ Windows 7" ฉันคิดว่าคุณกำลังพูดถึงการเปลี่ยนลักษณะที่ปรากฏของแถบเลื่อนดั้งเดิม เพราะมันเป็นเรื่องยากหรือเป็นไปไม่ได้บังคับให้ทุกแอปพลิเคชันที่เคยใช้แถบเลื่อนเพื่อวาดในลักษณะเฉพาะเนื่องจากแอปพลิเคชันอาจมีรหัสที่กำหนดเองที่วาดแถบเลื่อนด้วยตนเองและคุณไม่สามารถดักจับรหัสที่ใช้ และเปลี่ยนมัน
โดยเฉพาะอย่างยิ่งหากแอปพลิเคชันที่คุณใช้อยู่ใช้ชุดเครื่องมือแบบกำหนดเองที่รู้จักกันดีเช่น Java Swing คุณอาจบังคับให้ปรับแต่ง UI สำหรับชุดเครื่องมือเฉพาะ แต่คุณจะต้องใช้การเปลี่ยนแปลงเหล่านี้ในแบบ "ต่อชุดเครื่องมือ" และคุณก็ยังโชคไม่ดีถ้าแอปพลิเคชั่นใช้การวาดภาพเขียนลงบนผืนผ้าใบโดยไม่ต้องใช้เครื่องมือใด ๆ เลย
WindowBlinds ตัวอย่างเช่นใช้ DLL "hook" เพื่อฉีดรหัสของตัวเองลงในแอปพลิเคชันกราฟิกบนระบบ โค้ด WindowBlinds ดักจับการเรียกใช้ลงใน Windows API ที่ร้องขอวิดเจ็ตดั้งเดิมและแทนที่จะวาดวิดเจ็ตสไตล์เริ่มต้นมันจะดึงหนึ่งขึ้นอยู่กับข้อมูลชุดรูปแบบที่จัดทำโดยธีม WindowBlinds ตะขอ DLL นี้เป็นวิธีเดียวที่จะทำได้ ไม่มีการแก้ไขรีจิสทรีวัตถุประสงค์ทั่วไปหรือการแฮ็คทรัพยากรที่สามารถแก้ไของค์ประกอบกราฟิกของแอปพลิเคชันดั้งเดิมได้ คุณสมบัติการกำหนดธีม / สไตล์ในตัวของ Windows ไม่ยืดหยุ่นอย่างยิ่งดังนั้นความต้องการแอปพลิเคชันของบุคคลที่สามเช่น WindowBlinds ซึ่งฉีดโค้ดที่กำหนดเองลงในทุกแอปพลิเคชันที่คุณเรียกใช้เพื่อทำการเปลี่ยนรูปจากแถบเลื่อนเริ่มต้น
การใช้งานเคลฟเวอร์ (หรือการใช้งานที่มีสิทธิ์การรักษาความปลอดภัยบางอย่าง) สามารถป้องกัน hooking DLL นี้เพราะมันมีความเสี่ยงด้านความปลอดภัยที่มีศักยภาพเพื่อความสมบูรณ์ของข้อมูลในใบสมัครที่: ถ้าโปรแกรมที่ไม่น่าเชื่อถือสามารถประสบความสำเร็จขอ DLL ในโปรแกรมของคุณก็สามารถทำอะไรซึ่งรวมถึงฟีเจอร์ จำกัด การทำงานของแอพพลิเคชั่นนั้น ดังนั้นบางแอปพลิเคชั่นเพื่อความปลอดภัยห้ามมิให้มีการดัดแปลงนี้
คำตอบสั้น ๆ ก็คือคุณควรใช้ WindowBlinds (จ่ายเงิน!) แต่ระวังให้ดีว่าคุณจะไม่สามารถเปลี่ยนแถบเลื่อนได้ 100% ในทุกแอปพลิเคชั่นเนื่องจากวิธีการแสดงผลที่แตกต่างกัน .