หากโปรแกรมไม่ได้ให้ข้อมูลนี้เอง Add / Remove Programs จะถูกบังคับให้เดา
ปัญหาคือไม่มีวิธี "ชัดเจน" ในการแมปรายการในรายการ Add / Remove Programs กับโปรแกรมจริง แต่ละรายการในรายการสำหรับผู้ที่ใส่ใจในสิ่งต่าง ๆ นั้นมาจากHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
รีจิสทรีคีย์
เพียงคุณสมบัติที่จำเป็นสำหรับโปรแกรม uninstallable เป็นและDisplayName
UninstallPath
ทุกอย่างอื่นเป็นตัวเลือก
สมมติว่า Add / Remove Programs ได้รับการลงทะเบียนโปรแกรมดังนี้:
ในการรับค่า "ใช้ครั้งสุดท้าย" และ "ความถี่" โปรแกรมเพิ่ม / เอาออกต้องทราบชื่อของ EXE เพื่อให้สามารถถามเมนูเริ่ม "เฮ้ผู้ใช้เรียกใช้โปรแกรมนี้บ่อยเพียงใดและเมื่อใด ครั้งสุดท้ายที่มันเกิดขึ้น? "
โปรดสังเกตว่าไม่มีเงื่อนงำในการลงทะเบียนข้างต้นเกี่ยวกับข้อมูลประจำตัวของไฟล์ EXE นี้
ดังนั้นโปรแกรม Add / Remove จึงเริ่มคาดเดา มันจะผ่านโปรแกรมทั้งหมดในเมนูเริ่มของคุณและเปรียบเทียบชื่อของพวกเขากับชื่อที่ปรากฏของรายการที่ถอนการติดตั้ง มันจะมองหารายการเมนูเริ่มที่ใช้คำอย่างน้อยสองคำร่วมกับชื่อใน DisplayName
ตัวอย่างเช่นหากมีรายการเมนูเริ่มที่เรียกว่า "โปรแกรม Windows สวยดี" สิ่งนี้จะนับเป็นการจับคู่สองคำ ("Windows" และ "โปรแกรม")
จากนั้นจะนำหนึ่งในแมทช์ที่มากที่สุดและตัดสินใจว่า "โอเคฉันเดาว่านี่แหละ" สมมติว่าภาพประกอบที่ตรงกันที่สุดคือ "Pretty Decent Windows Program.lnk" ซึ่งเป็นทางลัดไปยัง "C: \ Program Files \ LitWare \ Decent.exe Program \ Decent.exe" โปรแกรม Add / Remove จะตัดสินว่า "โปรแกรมน่ากลัวสำหรับ Windows" ควรได้รับไอคอนสำหรับ "Pretty Decent Windows Program.lnk" ซึ่งความถี่ในการใช้งานและข้อมูลที่ใช้งานล่าสุดสำหรับ "C: \ Program Files \ LitWare \ Decent Program \ Decent.exe "จะปรากฏขึ้นสำหรับ" โปรแกรมน่ากลัวสำหรับ Windows "
แต่เดี๋ยวก่อนยังมีอีกมาก นอกจากนี้ยังมีขนาดโปรแกรม เพิ่ม / ลบโปรแกรมค้นหาในไดเรกทอรี "ไฟล์โปรแกรม" ของคุณสำหรับไดเรกทอรีที่มีชื่อร่วมกันอย่างน้อยสองคำที่เหมือนกันกับ DisplayName การจับคู่ที่ดีที่สุดถือว่าเป็นไดเรกทอรีที่ติดตั้งไฟล์โปรแกรมไว้ ขนาดจะถูกรวมเข้าด้วยกันและรายงานเป็นขนาดของ "โปรแกรมที่ยอดเยี่ยมสำหรับ Windows"
โปรแกรมสามารถเพิ่มคุณสมบัติบางอย่างในการลงทะเบียนเพื่อหลีกเลี่ยงการเดามาก มันสามารถตั้งค่าคุณสมบัติ EstimatedSize เพื่อหลีกเลี่ยงการเพิ่ม / เอาโปรแกรมออกเดาว่าโปรแกรมนั้นใหญ่แค่ไหน นอกจากนี้ยังสามารถตั้งค่าคุณสมบัติ DisplayIcon เพื่อระบุไอคอนที่จะแสดงสำหรับโปรแกรมในรายการ
แต่ถ้าโปรแกรมละเว้นคำแนะนำเหล่านี้ทั้งหมดการเดาว่า Add / Remove Programs ที่สร้างขึ้นนั้นมักจะเป็นเครื่องหมายที่กว้างเนื่องจากการจับคู่คำโดยบังเอิญ จากประสบการณ์ของฉันชาวสเปนได้รับความทุกข์ทรมานอย่างมากจากอัลกอริทึมนี้เนื่องจากมีการใช้คำบุพบทและบทความจำนวนมากในภาษานั้น
ใช่นี่เป็นง่อยเลยทีเดียว แต่เมื่อคุณถูกบังคับให้ทำงานด้วยข้อมูลที่ไม่เพียงพอง่อยนั้นดีที่สุดที่คุณสามารถทำได้