获取应用程序的图标,
一、using System.Runtime.InteropServices;
二、[DllImport("Shell32.dll")]
public static extern int ExtractIcon(IntPtr hInst, string strFileName, int nIconIndex);
[DllImport("Shell32.dll")]
public static extern int SHGetFileInfo(string pszPath, uint dwFileAttributes, ref Fileinfos psfi, uint cbFileInfo, uint uFlags);
public struct Fileinfos
{
public IntPtr hIcon;
public int iIcon;
public uint dwAttributes;
public char szDisplayName;
public char szTypeName;
}
/// <summary>
/// 设置图标,把得到的图标放入一个ImageList
/// </summary>
/// <param name="imageList">ImageList,可以new一个</param>
/// <param name="FileName">应用程序的路径</param>
/// <param name="pic">图片控件名</param>
/// <param name="tf">不了解</param>
private void SetIcon(ImageList imageList, string FileName,System.Windows.Forms.PictureBox pic, bool tf)
{
Fileinfos fi = new Fileinfos();
if (tf == true)
{
int iTotal = (int)SHGetFileInfo(FileName, 0, ref fi, 100, 16640);
try
{
if (iTotal > 0)
{
Icon ic = Icon.FromHandle(fi.hIcon);
imageList.Images.Add(ic);//添加到ImageList,可放图标和图片,只做一个转换用
pic.Image=imageList.Images[0];//把图标取出来
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error);
}
}
else
{
int iTotal = (int)SHGetFileInfo(FileName, 0, ref fi, 100, 257);
try
{
if (iTotal > 0)
{
Icon ic = Icon.FromHandle(fi.hIcon);
imageList.Images.Add(ic);//添加到ImageList,可放图标和图片,只做一个转换用
pictureBox1.Image = imageList.Images[0];//把图标取出来
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error);
}
}
}
/// <summary>
/// 设置图标,这里是当前窗体
/// </summary>
/// <param name="FileName">应用程序的路径</param>
/// <param name="tf">不知道什么意思</param>
private void SetFormIcon(string FileName, bool tf)
{
Fileinfos fi = new Fileinfos();
if (tf == true)
{
int iTotal = (int)SHGetFileInfo(FileName, 0, ref fi, 100, 16640);
try
{
if (iTotal > 0)
{
Icon ic = Icon.FromHandle(fi.hIcon);
this.Icon = ic;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error);
}
}
else
{
int iTotal = (int)SHGetFileInfo(FileName, 0, ref fi, 100, 257);
try
{
if (iTotal > 0)
{
Icon ic = Icon.FromHandle(fi.hIcon);
this.Icon = ic;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "错误提示", 0, MessageBoxIcon.Error);
}
}
}
转载于:https://www.cnblogs.com/pointdeng/archive/2008/02/01/1060897.html
获取应用程序的图标,相关推荐
- 获取应用程序图标的代码
获取应用程序图标的代码 unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Contro ...
- logo qt添加_linux下如何给qt程序添加图标?
Linux下Qt程序打包发布并设置图标 之前整理过一篇文章是关于Windows下Qt打包发布与设置环境变量的,那篇文章里面Qt发布的程序是没有设置应用程序图标的,之后会再整理一篇文章的,顺便测试下使用 ...
- 根据文件名或文件扩展名获取文件的默认图标
新建一个vs2010 窗体项目,新建按钮button和图片picturebox 下面是程序 using System; using System.Collections.Generic; using ...
- Android之获取应用程序(包)的大小-----PackageManager的使用(二)
http://blog.csdn.net/qinjuning/article/details/6892054 通过第一部分 << Android中获取应用程序(包)的信息-----Pack ...
- Android之中获取应用程序(包)的信息-----PackageManager的使用(一)
转载:http://blog.csdn.net/qinjuning/article/details/6867806 本节内容是如何获取Android系统中应用程序的信息,主要包括packagename ...
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
本节内容是如何获取Android系统中应用程序的信息,主要包括packagename.label.icon.占用大小等.具体分为两个 部分,计划如下: 第一部分: 获取应用程序的packagename ...
- C# 获取Windows系统ICON图标的四种方式-可提取各种文件夹、文件等等图标
本文介绍的是提取Windows系统内部Icon图标的方法,就是系统资源管理器里面显示的图标,包括文件夹.文件,如:常规文件夹的图标.特定文件夹图标(磁盘根目录.收藏夹.网络共享目录等).各文件类型图标 ...
- C++ 主程序中打开子程序窗口隐藏,操作控件 遍历窗口控件句柄EnumChildWindows();获取其他程序进度条数据 操作选择框 按钮点击
1.线程启动子程序 ShowWindow(hWnd, SW_SHOW)显示 ShowWindow(hwnd, SW_HIDE);隐藏 system_hide(L"Odin3.exe&quo ...
- Android 进程 缓存服务,Android获取应用程序大小和缓存的实例代码
info package com.qin.appsize; import android.content.Intent; import android.graphics.drawable.Drawab ...
最新文章
- 郑州计算机技校哪个学校好,郑州十大技校排名 详细介绍
- Python读取文件内容为字符串的方法(多种方法详解)
- 卸载。net开发的服务
- JS基础篇--函数声明与定义,作用域,函数声明与表达式的区别
- Android aidl在Framework的使用
- 白帽子发现美军网站SQL注入漏洞,可获取敏感数据
- golang 解决 TCP 粘包问题
- php admin_priv,ECshop后台开发模块步骤
- gif动图怎么制作?gif动图制作软件推荐
- 英雄联盟祖安服务器要维护多久,英雄联盟祖安大区到底有多凶残?手速慢了必然赢不了对面!...
- 知乎网页(用php从数据库读取数据)
- Wc2015……酱油记?
- 苹果这波是要偷家啊。。
- android中bitmap压缩的几种方法详解
- R语言epiDisplay包的kap函数计算配对列联表的计算一致性的比例以及Kappa统计量的值(总一致性、期望一致性)、使用xtabs函数生成二维列联表、使用wttable参数设置权重表参数为w2
- 苹果中国官网全面更新,官翻产品不容错过!
- 互联网晚报 | 1月23日 星期日 | 抖音推出PC版客户端;春节档预售票房破亿;岚图FREE第10000辆下线...
- 校企合作计算机专业共建协议书,校企合作共建实训基地协议书
- 2019辽宁阜新公务员考试行测常识大全:公务员常识40000问(四十三)
- linux ec20 usb驱动移植,linux下EC20 4G模块驱动移植