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

3
有没有办法在C或C++中实现这一点(我知道可以在C#中实现,如果您知道如何实现它,也会有所帮助!)?
我的目标是通过自己的应用程序自动地将自定义文件扩展名与自定义图标关联起来。例如,使所有当前和随后的.foo文件都具有自己的图像,而不是单调的白纸张默认图标。就像Java对.jar文件和Dev-C++对.c和.cpp进行安装后一样。
通过我的研究,我发现了很多相关信息,其中一个叫做Shell的东西。我最终进入了此页面,尽管它所说的可能是可行的,但我根本不知道如何实现它,也无法理解它到底是什么。如果我听起来像个新手,请见谅!
操作系统是Windows。

这与编程语言无关,而是与您使用的Shell/操作系统有关(即实现此目标的技术因Windows、Linux/Gnome、Linux/KDE、Mac OS X等而异)。 - yfrancis
你链接的页面在谈论注册表。这是Windows存储文件关联(以及许多其他内容)的地方。建议你搜索一下注册表的工作原理,以及如何在代码中修改它。 - john
你的程序是基于Win32的应用吗? - Syntactic Fructose
链接是正确的。安装程序会写入这些注册表键。 - Hans Passant
1个回答

2

首先,您需要知道如何在C++中修改注册表,这里有一篇文章解释了这个问题:

注册表和C++

在您提供的链接中,您可以找到需要更新的键。

HKEY_CLASSES_ROOT/[您的扩展名]

调用SHChangeNotify只是为了告诉资源管理器在您修改图标后刷新。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接