首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图标分配给与指定的软件图标不同的文件类型

将图标分配给与指定的软件图标不同的文件类型
EN

Stack Overflow用户
提问于 2022-08-31 10:15:28
回答 1查看 7关注 0票数 0

在这里发布这篇文章,因为没有关于如何做到这一点的好例子,甚至MSDN也不清楚。

有许多例子,但没有一个(我发现)解决了软件关联图标覆盖的问题。

我的软件有不同的文件类型。我希望每个文件类型都有一个特定的图标,同时保持与我的软件的关联。

使用大多数方法,可以将图标分配给文件类型,但如果文件与软件相关联,则该图标将被该软件图标覆盖。

EN

回答 1

Stack Overflow用户

发布于 2022-08-31 10:15:28

这可以通过以下方式来完成:

代码语言:javascript
复制
var path = System.Reflection.Assembly.GetEntryAssembly().Location;
var icopath = "c:/whatever/icon.ico";
var softwareId = "MySoftware";
var ext = ".myfiletype";


bool isElevated = false;
using (WindowsIdentity identity = WindowsIdentity.GetCurrent())
{
    WindowsPrincipal principal = new WindowsPrincipal(identity);
    isElevated = principal.IsInRole(WindowsBuiltInRole.Administrator);
}

if (isElevated)
{
    Registry.SetValue(@"HKEY_CLASSES_ROOT\" + ext, "", softwareId + ext);
    Registry.SetValue(@"HKEY_CLASSES_ROOT\" + softwareId + ext + @"\DefaultIcon", "", icopath);
    Registry.SetValue(@"HKEY_CLASSES_ROOT\" + softwareId + ext + @"\shell\open\command", null, path + " \"%1\"");

    // refresh
    SHChangeNotify(0x8000000, 0x1000, IntPtr.Zero, IntPtr.Zero);
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73554348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档