我可以信任 imageres.dll 系统图标索引吗?

2023-12-01

我制作了一个自定义目录树控件,它使用从中提取的系统图标imageres.dll文件。我的意思是该文件是从 Windows 目录中读取的,因此根据 Windows 版本,该文件会有多个版本。

下面是确切的 C# 片段:

ImageList.Images.Add("Folder", ExtractSystemIconBitmap("imageres.dll", 4));
ImageList.Images.Add("File", ExtractSystemIconBitmap("imageres.dll", 2));

在我的 Windows 10 上,它看起来没问题,但它可以在不同的 Windows 版本(例如 Vista、7、8 和 8.1)上使用吗?

我的程序至少需要 Windows Vista 才能运行(由于依赖于 .NET Framework 4.5)。

更精确的问题是 - 从 Windows Vista 到 Windows 10,这些图标索引是否恒定?如果不是——更好的方法是什么?


获取图标的正确方法是使用SHGetStockIconInfo。它会告诉您该图标在当前版本的 Windows 中的位置。

如果您想要系统当前的文件夹图标(由于用户自定义,可能不是标准的),请使用SHGetFileInfo.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我可以信任 imageres.dll 系统图标索引吗? 的相关文章

  • 将spark.local.dir设置为不同的驱动器

    我正在尝试在 Windows 10 上设置独立 Spark 我想设置spark local dir to D spark tmp tmp 目前它似乎正在使用C Users
  • 从 Windows 命令行打印 PDF

    我正在尝试打印当前目录中的所有 pdf 文件 当我在 cmd 中调用这个 bash 脚本时 singlepdf sh C Program Files x86 Adobe Reader 10 0 Reader AcroRd32 exe t G
  • std::string 到 LPCTSTR

    新版本典型问题如何转换而来std string to LPCTSTR 从不同的帖子中我了解到我应该这样做 CreateDirectory path c str NULL 编译器仍然给出错误 因为cannot convert from con
  • 如何使用 Java 以独立于平台的方式读取 Windows 共享驱动器?

    如何使用 Java 从 Windows 共享驱动器中读取数据 以便执行读取的 Java 代码可以在任何平台上同样正确地运行 您可以使用JCIFS http jcifs samba org 使用纯 Java 代码访问 SMB CIFS 共享
  • 确定矩形在窗口内是否可见

    我想确定窗口内的矩形是否完全可见 我找到了 RectVisible 但该函数确定矩形的任何部分是否可见 我想知道整个矩形是否可见 有没有这方面的功能 首先通过使用将系统剪切区域 窗口的可见区域 变成一个区域GetRandomRgn http
  • Inno Setup中如何处理带空格的路径?

    我想允许带有空格的路径 例如program files 当使用 Inno Setup 安装我的程序时 但是 带有空格的路径会让我安装的服务崩溃 Inno 安装文件如下所示 Setup AppName Demo DefaultDirName
  • Anaconda (Python) - Windows 10 上的 Cmder 集成

    我在 Windows 10 64 位上通过 Anaconda 让 Cmder 使用 Python 时遇到了一些麻烦 我让 Anaconda 工作得很好 测试过用 matplotlib 绘制一些东西 它与 Anaconda Prompt 一起
  • 发送和接收 Windows 消息

    Windows 消息似乎是通知 Windows 操作系统上的应用程序的好方法 它实际上运作良好 但我想到了几个问题 How to指定结构化数据lparamSendMessage 例程 就像许多消息代码一样 我的意思是 参数当然是一个指针 但
  • 在powershell中,在启动进程中设置亲和力

    在 powershell 中 我可以启动一个进程 app name app exe app arguments arg0 Start Process app name app arguments 我尝试设置亲和力 app Start Pro
  • Git,无法在 Windows 上克隆存储库

    我正在尝试在 Windows 上使用 git 克隆远程存储库 我可以在我的 mac 上克隆它 但在 Windows 上我遇到了问题 当使用 git bash 克隆时 我收到一条消息 指出服务器的主机密钥未缓存在注册表中 它要求我按 y 或
  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • Jetty 提供静态内容所需的最少文件集?

    背景 免责声明 I have veryJava 经验很少 我们之前在 Ant 构建期间使用了 Jetty 6 的包装版本来处理按需静态内容 JS CSS 图像 HTML 因此我们可以使用 PhantomJS 针对 HTTP 托管环境运行单元
  • 在 R 中查找 Windows 用户名

    有没有办法在 R 会话中获取当前的 Windows 用户名或 Windows 主目录 Thanks 抱歉 如果我错过了什么 但我找不到任何东西 你可以做 Sys getenv USERNAME Sys getenv HOME 如果你只是输入
  • 二进制模式下的 Windows 管道

    我在windows中编写了一个程序 它将播放通过stdin发送给它的二进制音频 我将其称为play 就像linux程序一样 然后我写了一个单独的程序如下 FILE f popen aplay exe wb FILE song fopen C
  • 使用 FILE_FLAG_NO_BUFFERING 会带来明显的速度增益吗?

    最近在MSDN中注意到FILE FLAG NO BUFFERING标志的详细描述 并阅读了几条关于Windows中无缓冲I O的Google搜索结果 http msdn microsoft com en us library aa36385
  • 如何在 Windows 中的命令提示符启动时运行命令

    EDIT 如果您想在计算机启动时执行任何任务或基于 活动这非常有帮助 http answers microsoft com en us windows forum windows 7 performance how to schedule
  • 将 SQL 数据库附加到 ComboBox.ItemSsource (WPF)

    我想知道如何将 SQL Server 数据库分配给 ComboBox 的 ItemSource 属性 在 WPF 应用程序中 我将数据源分配给项目 但不知道如何分配给属性 此致 你可以这样尝试 你可以像下面这样绑定组合框的项目源属性 Ite
  • 通过 Python 与 Windows 控制台应用程序交互

    我在 Windows 上使用 python 2 5 我希望通过 Popen 与控制台进程交互 我目前有一小段代码 p Popen console app exe stdin PIPE stdout PIPE issue command 1
  • .NET 进程分配的内存何时释放回 Windows

    设置 NET 在启动时以及在收集后尝试满足分配请求时 分段为每一代的堆 0 1 2 LOH 分配内存 以获得连续的内存块 为每个堆分配的内存可能会随着应用程序 预热 而趋于平稳 但第 2 代和大型对象堆可能除外 在垃圾收集期间 每个堆 0
  • 如何使用 winrar 提取与 zip 文件同名的文件夹中的所有 zip 文件?

    我需要迭代一个文件夹 对于每个 zip 文件 我需要使用它的名称来提取它 也就是说 如果它是 test zip 那么它应该解压到 test 文件夹 同样 它应该迭代我的文件夹及其子文件夹并提取内容 我编写了下面的代码 但它没有使用 zip

随机推荐

  • 如何操作data.table中的data.frame

    我有data table其中某些观察列包含data frame 例如 data table colA c A1 A2 A3 colB list data frame data frame colsubB1 c B2a B2b colsubB
  • 使用 char 指针输入与 char 数组输入

    考虑代码 include
  • npmpublish 的包名称与现有包太相似

    我想将我的包发布到 npm 我得到的错误是 包名称与现有包太相似 403 Forbidden PUT https registry npmjs org mypack Package name too similar to existing
  • ajax请求中的angularjs错误处理

    我想在我的应用程序中编写一个错误处理部分 我使用下面的代码 但是当错误 500 发生时 它可以正常工作 但是存在一个小或可能大的问题 这就是页面加载的第一次和几秒后的错误页面加载 如何才能我删除这几秒钟并直接进入错误页面而不加载释放错误的主
  • 如何使用多短语查询?

    http lucene apache org java 2 3 1 api core org apache lucene search MultiPhraseQuery html 对于 Microsoft app 这个例子 他说使用Inde
  • CSS 选择器中允许使用括号吗?

    在下面的示例中 我想创建一个仅适用于带有文本 Blockhead 的标题的 CSS 规则 div class gumby span class pokey span h3 Blockhead h3 h3 Clay rules h3 div
  • 如何获取嵌套fragment中的Activity?

    我试图在 ViewPager 中包含的片段中调用 getActivity 的活动 并且该 ViewPager 包含在 Fragment 中 我需要在这些片段中调用此活动的一些方法 但 getActivity 始终为此片段返回 NULL 我不
  • 实例字段的初始化与局部变量的初始化

    我一直想知道为什么在下面的例子中可以not初始化实例字段 依赖于它将具有默认值 并访问它 而局部变量显然must被初始化 即使我将其初始化为默认值 它无论如何都会得到 public class TestClass private bool
  • (!object) 和 (object == nil) 之间有区别吗? [复制]

    这个问题在这里已经有答案了 可能的重复 Objective C if obj 和 if obj null 哪个更好 这两个条件有区别吗 if object do something 和 if object nil do something
  • 在 MySQL 中的 accountID 之间转移“钱”

    我有一个问题 我尝试用谷歌搜索但尚未找到答案 我想做的是使用存储过程在 MySQL 中的两个帐户之间转账 例如 如果我使用呼叫转接 20 Test 3 5 然后我将从 accountID 3 转 20 美元到 accountID 5 并写入
  • 返回先前位置时如何避免 TDbgrid 滚动

    在下面的代码中 我们对某些选定的行进行一些操作 不是删除 然而 有时 完成后 顶部选定的行会滚动 使其显示在网格下方 1 2 处 有没有办法避免这种滚动 如果我的遍历下面选定行的代码由于某些不相关的原因不正确 我欢迎更正 Function
  • 里面有数字的叶子标记

    我想使用 Folium 在地图上做一些标记 并在标记内添加一些数字 我希望标记看起来像 Google 地图使用的标准倒置水滴形状 我看到对于 folium Marker 您可以使用参数 icon folium DivIcon html co
  • Codeigniter 查询生成器在 where_in 中使用 implode 函数

    这是我使用 implode 函数的正常 sql 查询 SELECT from search result WHERE skills IN implode s id 现在我想将其转换为 codeigniter 形式 我尝试了以下代码 但失败了
  • Unicode 组合字符的实际最大数量是多少?

    我正在寻找在非组合字符之后出现的 unicode 组合字符的最大数量在现实的自然文本中 我知道在 unicode 文本中 文本中的任何位置都可以放置任意数量的组合 但是 我正在编写一个专门的应用程序 该应用程序必须在资源有限的情况下运行 并
  • React - 从同级组件调用函数

    假设我有一个组件树 如下所示
  • 在基于 iframe 的文本编辑器中禁用 Firefox 和 Chrome 拼写检查

    有很多关于如何禁用 html 中的拼写检查的信息textarea元素通过使用spellcheck false 然而 要使文本区域具有更高级的功能 必须使用iframe with designMode on 参见例如这一页 这是在 GWT 中
  • 使用 C# 错误,可空对象必须具有值 datetime

    我在 C datetime 中遇到一个问题 我已经尝试了很多时间 它不是 给出问题的解决方案 所以给我一个解决方案 var accommodationcategoryList EmployeeAttendanceCacheMaster Ge
  • sprintf():作为参数的小数位数

    目前的解决方案是 dp lt 2 sprintf paste0 dp f 0 123 期望的解决方案没有 Paste0 并且类似于 sprintf 2 d f 0 123 2L 除了它有效之外 您可以使用 插入dp进入格式 dp lt 2
  • 使用“push”或“sub”x86 指令时,堆栈内存是如何分配的?

    我已经浏览了一段时间 我试图了解在执行以下操作时如何将内存分配给堆栈 push rax 或者移动堆栈指针为子例程的局部变量分配空间 sub rsp X Move stack pointer down by X bytes 我的理解是 堆栈段
  • 我可以信任 imageres.dll 系统图标索引吗?

    我制作了一个自定义目录树控件 它使用从中提取的系统图标imageres dll文件 我的意思是该文件是从 Windows 目录中读取的 因此根据 Windows 版本 该文件会有多个版本 下面是确切的 C 片段 ImageList Imag