c ++ ดึงไอคอนของปฏิบัติการเพื่อใช้ในเส้นทางไอคอนรีจิสทรีของ Windows?

ฉันกำลังพยายามตั้งค่าในรีจิสทรีของ Windows ของแอปพลิเคชันของฉัน เส้นทางปฏิบัติการทำงานได้ดีเพียงเพิ่มเส้นทาง แต่เมื่อฉันโหลดมัน ไอคอนของแอปพลิเคชันนี้ไม่สามารถมองเห็นได้ในโปรแกรม Windows ฉันจะดึงไอคอนจากแอปพลิเคชันของฉันอย่างถูกต้องและใช้เป็นเส้นทางไอคอนในรีจิสทรีได้อย่างไร

ฉันจำเป็นต้องตั้งค่าบางอย่างภายในแอปพลิเคชันของฉันเพื่อให้รีจิสทรีมองเห็นไอคอนหรือไม่

key reg สำหรับคำสั่ง shell-open-command "C:\myapp\test.exe" "%1" แต่สำหรับคีย์ reg ไอคอนเริ่มต้น "" ฉันจำเป็นต้องใช้ไฟล์ .ico แบบปกติใกล้กับ exe หรือไม่หรือฉันจะได้รับจาก ไฟล์ปฏิบัติการ .exe ของ ico ที่ฉันใช้จากภายในแอปพลิเคชันคืออะไร

ฉันต้องการหลีกเลี่ยงการใช้ไฟล์ .ico ดังนั้นหากสามารถทำได้โดยใช้ไอคอนไฟล์ปฏิบัติการก็คงจะดี

ตัวอย่างที่ดีที่จะเข้าใจเพราะมันไม่ซ้ำกันคือลิงก์แม่เหล็กทอร์เรนต์

ตรวจสอบแม่เหล็ก -> เปลือก -> เปิด -> คำสั่ง

และแม่เหล็ก -> DefaultIcon

ในรีจิสทรีของระบบ

ความช่วยเหลือใด ๆ ที่ชื่นชมมาก


person Vas    schedule 17.02.2018    source แหล่งที่มา
comment
คุณสามารถเรียกข้อมูลหมายเลขอ้างอิงไอคอน exe ได้โดยใช้ ฟังก์ชัน ExtractIcon ไม่แน่ใจว่าคุณกำลังพยายามบรรลุอะไร ไอคอนเป็นส่วนหนึ่งของ exe ไอคอนสามารถเปลี่ยนแปลงได้ผ่านส่วนทรัพยากรของโครงการก่อนทำการคอมไพล์ มันเป็นอาร์เรย์ของไบต์ทั้งหมดเมื่อมีการสร้างไฟล์ปฏิบัติการ ดูฟังก์ชัน CreateWindow   -  person Ron    schedule 17.02.2018
comment
อาจซ้ำกับ ตั้งค่าไอคอน exe สำหรับโปรแกรมของฉัน   -  person Ivan Aksamentov - Drop    schedule 17.02.2018
comment
คุณกำลังพยายามตั้งค่าคีย์รีจิสทรีใด คีย์ที่ต่างกันคาดว่าจะมีตำแหน่งไอคอนในรูปแบบที่แตกต่างกัน ตัวอย่างเช่น การตั้งค่าเส้นทางปฏิบัติการเป็นค่า DisplayIcon ในส่วน Uninstall จะทำให้ไอคอนแอปพลิเคชันหลักแสดงในรายการแอปพลิเคชันที่ติดตั้ง   -  person user7860670    schedule 17.02.2018
comment
ไอคอนแอปพลิเคชันของฉันก็โอเค ... มันสามารถเห็นได้ในทาสก์บาร์หรือถาดหรืออะไรก็ได้ที่ฉันชอบ ฉันต้องการให้สามารถใช้ไอคอนเดียวกับที่ปฏิบัติการได้กับระบบที่ใช้เปิดแอปพลิเคชันจากเส้นทางเช่น ลิงก์ฝนตกหนักแม่เหล็ก เมื่อหน้าต่างโต้ตอบปรากฏขึ้น แสดงพาธไปยังไฟล์ปฏิบัติการและชื่อของแอปพลิเคชันแสดงและกำลังทำงานอยู่ แต่ไอคอนของแอปพลิเคชันไม่แสดงเลย   -  person Vas    schedule 17.02.2018


คำตอบ (1)


ค่าคีย์ควรเป็นเส้นทางแบบเต็ม ตามด้วยดัชนีไอคอน

ตัวอย่างเช่น DefaultIcon -> path.exe,-123 ที่นี่ path.exe คาดว่าจะมีไอคอนซึ่งมี ID ทรัพยากรเป็น 123

HKEY_CURRENT_USER\Software\Classes\.txt -> myapp

สร้าง myapp และเพิ่มคีย์ย่อย DefaultIcon

HKEY_CURRENT_USER\Software\Classes\myapp\DefaultIcon -> path.exe,-123
HKEY_CURRENT_USER\Software\Classes\myapp\shell\open\command -> "path.exe" /open "%1"
person Barmak Shemirani    schedule 17.02.2018
comment
ขอบคุณสำหรับคำตอบครับ ผมกำลังเดินทางไปทดสอบครับ - person Vas; 18.02.2018
comment
ใช่ Barmak จริงๆ ฉันต้องใช้เวลาสักพักเพราะฉันมีปัญหากับรีจิสทรีแต่ทุกอย่างก็ดี ขอบคุณ - person Vas; 18.02.2018