如何在 C# 中加载程序图标

2023-12-02

我有某个程序的路径(例如explorer),如何获取程序图标,将其转换为png/jpeg,然后显示在PictureBox中?

我有这样的事情:

string filePath = "C:\\myfile.exe";
Icon TheIcon = IconFromFilePath(filePath);
if (TheIcon != null) {

 // But then I don't know what to do...

}

public Icon IconFromFilePath(string filePath){
 Icon programicon = null;
 try {
  programicon = Icon.ExtractAssociatedIcon(filePath);
 }
 catch { } 
 return programicon;
}

我发现了类似的东西here。这是图标。如何创建 32 位图标?

256 colors


如果您知道在哪里查找,那么代码会出人意料地简单。从Icon class,因为这从根本上就是您所追求的。

如果你浏览它的方法,你会发现一个非常有趣的外观ExtractAssociatedIcon。它接受单个字符串参数,该参数指定包含图标的文件(例如可执行文件)的路径。

所以这给了你一个Icon对象,现在您只需将其显示在 PictureBox 中。您不必将其转换为 PNG 或 JPEG,位图就可以正常工作。有一个内置的成员函数:ToBitmap.

将新位图分配给PictureBox.Imageproperty 就是显示它所需要做的全部工作。

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

如何在 C# 中加载程序图标 的相关文章

  • 注销租约抛出 InvalidOperationException

    我有一个使用插件的应用程序 我在另一个应用程序域中加载插件 我使用 RemoteHandle 类http www pocketsilicon com post Things That Make My Life Hell Part 1 App
  • 如何将 protobuf-net 与不可变值类型一起使用?

    假设我有一个像这样的不可变值类型 Serializable DataContract public struct MyValueType ISerializable private readonly int x private readon
  • 如何让 Swagger 插件在自托管服务堆栈中工作

    我已经用 github 上提供的示例重新提出了这个问题 并为任何想要自己运行代码的人提供了一个下拉框下载链接 Swagger 无法在自托管 ServiceStack 服务上工作 https stackoverflow com questio
  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 从 Linux 内核模块中调用用户空间函数

    我正在编写一个简单的 Linux 字符设备驱动程序 以通过 I O 端口将数据输出到硬件 我有一个执行浮点运算的函数来计算硬件的正确输出 不幸的是 这意味着我需要将此函数保留在用户空间中 因为 Linux 内核不能很好地处理浮点运算 这是设
  • 在一个平台上,对于所有数据类型,所有数据指针的大小是否相同? [复制]

    这个问题在这里已经有答案了 Are char int long 甚至long long 大小相同 在给定平台上 不能保证它们的大小相同 尽管在我有使用经验的平台上它们通常是相同的 C 2011 在线草稿 http www open std
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • Cmake 链接共享库:包含库中的头文件时“没有这样的文件或目录”

    我正在学习使用 CMake 构建库 构建库的代码结构如下 include Test hpp ITest hpp interface src Test cpp ITest cpp 在 CMakeLists txt 中 我用来构建库的句子是 f
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler

随机推荐

  • Wix Burn - 自定义模板

    有没有办法改变安装程序中红色的 CD 图片 这是 Burn 项目的代码
  • HDFS Thrift服务器返回本地FS的内容,而不是HDFS

    我正在使用 Thrift 访问 HDFS 这是 HDFS 上预期的 也是正确的 内容 hadoop hdp namenode 01 hadoop fs ls Found 3 items drwxr xr x hadoop supergrou
  • 为什么我的 double 可以包含低于机器 epsilon 的值?

    我正在使用双精度求解方程 我得到 7 07649e 17作为解决方案而不是0 我同意它足够接近 我可以说它是相等的 但是我读到 C 双精度类型的机器 epsilon 是2 52这比我得到的值要大 那么为什么我的值比机器 epsilon 低呢
  • 如何在Python中生成随机字符串?

    如何在 Python 中创建随机字符串 我需要它先是数字 然后是字符 重复直到迭代完成 这就是我创建的 def random id length number 0123456789 alpha abcdefghijklmnopqrstuvw
  • 如何在 Android 中获取电话号码

    我想知道电话号码 我使用了这个示例代码 TelephonyManager tm TelephonyManager getSystemService TELEPHONY SERVICE String strphonenumber tm get
  • 使用 PhaseListener 代替 Servlet Filter 进行授权的限制

    我目前正在使用PhaseListener如下进行用户授权 private PhaseId phaseId PhaseId RESTORE VIEW Override public void afterPhase PhaseEvent eve
  • 浏览器控制台中需要 Javascript

    在浏览器控制台窗口中输入 javascript 时 1 以下代码有效 alert hi 2 以下则不然 function var scr document createElement script scr src http www myra
  • jsf 2.0 Primefaces 多个 Fileupload 不记得上传的文件

    我已经在这篇文章中修复了一些其他问题 fileuploadhandler 现在正在工作 我的代码如下 Bean ManagedBean ViewScoped public class TempBean implements Serializ
  • Laravel 5.6 Passport 驱动程序无法在 socket.io 中工作并给出未经授权的异常

    当驱动程序是 api 时 下面的代码可以完美运行 然后我创建了一个新项目并将驱动程序更改为护照 现在 我总是收到错误 未经授权 我可以确认请求标头在浏览器中具有授权令牌代码 请单击下面的图像进行检查 然后单击缩放以查看质量更好的图像 我在下
  • 规则集中的字体和行高顺序

    我认为规则集中 CSS 的顺序并不重要 只要不存在隐式重复的规则 例如border and border top 事实上 许多 CSS 样式指南建议采用任意顺序 例如 按组 或 按字母顺序 然而 顺序font and line height
  • NSURLConnection 在 GET 上提前关闭

    我正在研究一种集中 URL 连接的方法 用于从服务器发送和接收 JSON 数据 它适用于 POST 但不适用于 GET 我正在使用 Google App Engine 服务器 在我的计算机上它将处理 POST 请求并返回正确的结果 并正确记
  • Jetty:Servlet 无法转发到 JSP

    我遇到以下问题 我尝试将请求从 servlet 转发到 jsp 页面 但收到 404 当我直接访问 sites home jsp 时 它会加载 jsp WebAppContext sites new WebAppContext src co
  • java可执行jar创建

    如何从 java 文件创建可执行 jar 文件 只有一个使用awt和applet创建的java文件dm java 我需要创建带有图标或图像的可执行 jar 单击该 jar 它将作为应用程序打开 这是可能的 请帮我 Using Eclipse
  • 从字符串中提取 URL

    我正在尝试找到一个可靠的解决方案来从字符串中提取网址 我有一个网站 用户可以在其中回答问题 并在来源框中输入信息来源 我允许他们输入网址 我想提取该网址并将其设为超链接 类似于雅虎问答的做法 有谁知道可以做到这一点的可靠解决方案 我发现的所
  • 预编译头在使用 Qt Creator / qmake / MinGw 的调试构建中不起作用

    在 Qt Creator 中 我有一个使用预编译标头的 pro 文件 当我在发布模式下构建时 构建工作非常完美 但是在调试模式下构建会出现错误 生成目标文件失败 例子 17 12 40 Running steps for project E
  • 在 AngularJS 中,HTML 模板中包含的任何内联 javascript 代码都不起作用

    在 AngularJS 中 HTML 模板中包含的任何内联 JavaScript 代码都不起作用 例如 main html 文件 div div 和 script html 文件 当我打开主页时 我期待一条警告消息说 是 但什么也没有发生
  • 在远程计算机上安装软件? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 这看起来像是一个垃圾问题 但我对 VbScript 的完全无知让我没有机会尝试解
  • Python sqlite3 和并发

    我有一个使用 线程 模块的Python 程序 每秒 我的程序都会启动一个新线程 从网络上获取一些数据 并将这些数据存储到我的硬盘上 我想使用 sqlite3 来存储这些结果 但我无法让它工作 问题似乎与以下行有关 conn sqlite3
  • jQuery MultiSelect dropdownlist 如何访问结果?

    如何从按 mvc3 razor 调用的 JQUery 多选下拉列表中获取结果 http abeautifulsite net blog 2008 04 jquery multiselect 多选插件使用 符号将选定的值发送到服务器 一如既往
  • 如何在 C# 中加载程序图标

    我有某个程序的路径 例如explorer 如何获取程序图标 将其转换为png jpeg 然后显示在PictureBox中 我有这样的事情 string filePath C myfile exe Icon TheIcon IconFromF