【发布时间】:2013-08-20 10:10:13
【问题描述】:
我正在设计一种新的编程语言,我想让我的用户在输出的二进制文件中嵌入一个自定义图标,该文件不是标准的 EXE 文件。
EXE 文件允许自定义图标(并非所有 .EXE 文件都使用相同的图标)。我怎样才能用我自己的二进制文件做到这一点?
【问题讨论】:
我正在设计一种新的编程语言,我想让我的用户在输出的二进制文件中嵌入一个自定义图标,该文件不是标准的 EXE 文件。
EXE 文件允许自定义图标(并非所有 .EXE 文件都使用相同的图标)。我怎样才能用我自己的二进制文件做到这一点?
【问题讨论】:
如果要为具有相同扩展名的文件提供不同的图标,则需要注册一个 Icon Handler shell 扩展名。有关详细信息,请参阅 MSDN 中的this page。
您的处理程序需要知道如何从文件中提取图标并将其返回给资源管理器。
【讨论】:
这些说明应该会有所帮助:
http://msdn.microsoft.com/en-us/library/windows/desktop/hh127427%28v=vs.85%29.aspx
基本上,在 HKEY_CLASSES_ROOT 中为您的扩展程序创建注册表项(按照其他示例或该链接)以指定图标,并使用 SHCNE_ASSOCCHANGED 调用 SHChangeNotify()。
此答案涵盖 C++ 中的注册表更改:
【讨论】: