如何将图标分配给自定义文件类型?

问题描述:

在C或C++中有没有办法做到这一点(我知道它可以在C#中完成,所以如果你知道如何做,它也会有帮助!)?如何将图标分配给自定义文件类型?

我想要的是一种自动和通过我自己的应用程序将自定义文件扩展名与自定义图标相关联的方法。例如,使所有当前和后续.foo文件具有自己的图像的东西,而不是平淡的白皮书表单默认。就像Java在安装时将.jar文件和Dev-C++转换为.c和.cpp文件一样。

通过我的研究,我发现了很多关于Shell或其他东西的相关信息。我在this page上完成了自己的工作,并且看起来似乎是可行的,但我不知道如何实现它,也不知道它究竟是什么。对不起,如果我听不到声音!

OS是Windows。

+0

这与语言无关,它是特定于您正在使用的shell/OS(即实现此目的的技术将从Windows到Linux/Gnome,Linux/KDE,Mac OS X等不同)。 – yfrancis

+0

您链接的页面正在讨论*注册表*。 Windows存储文件关联的地方是什么(以及其他一些东西)。建议您了解注册表的工作原理以及如何在代码中对其进行修改。 – john

+0

是你的程序一个基于win32的应用程序? –

首先,你需要知道如何修改在C++中的注册表,这里是一个职位,解释说:

Registry and c++

在您提供您有需要更新密钥的链接

HKEY_CLASSES_ROOT/[yourextension]

调用SHChangeNotify仅用于告诉资源管理器在您修改图标后进行刷新。