<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C# 獲取系統(tǒng)圖標類

       

      C# 獲取系統(tǒng)圖標類

      來源 http://blog.5d.cn/vip/allinhands/200505/83959.html

       

      源碼下載

       

      代碼
      using System;
      using System.IO;
      using System.Drawing;
      using Microsoft.Win32;


      using System.Runtime.InteropServices;


      namespace ThunderStarter
      {
      ///
      /// 提供從操作系統(tǒng)讀取圖標的方法
      ///
      public class GetSystemIcon
      {
      ///
      /// 依據(jù)文件名讀取圖標,若指定文件不存在,則返回空值。
      ///
      ///
      ///
      public Icon GetIconByFileName(string fileName)
      {
      if (fileName == null || fileName.Equals(string.Empty)) return null;
      if (!File.Exists(fileName)) return null;

      SHFILEINFO shinfo
      = new SHFILEINFO();
      //Use this to get the small Icon
      Win32.SHGetFileInfo(fileName, 0, ref shinfo, (uint)Marshal.SizeOf(shinfo), Win32.SHGFI_ICON | Win32.SHGFI_SMALLICON);
      //The icon is returned in the hIcon member of the shinfo struct
      System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
      return myIcon;
      }

      ///
      /// 給出文件擴展名(.*),返回相應(yīng)圖標
      /// 若不以"."開頭則返回文件夾的圖標。
      ///
      ///
      ///
      ///
      public Icon GetIconByFileType(string fileType, bool isLarge)
      {
      if (fileType == null || fileType.Equals(string.Empty)) return null;

      RegistryKey regVersion
      = null;
      string regFileType = null;
      string regIconString = null;
      string systemDirectory = Environment.SystemDirectory + "\\";

      if (fileType[0] == '.')
      {
      //讀系統(tǒng)注冊表中文件類型信息
      regVersion = Registry.ClassesRoot.OpenSubKey(fileType, true);
      if (regVersion != null)
      {
      regFileType
      = regVersion.GetValue("") as string;
      regVersion.Close();
      regVersion
      = Registry.ClassesRoot.OpenSubKey(regFileType + @"\DefaultIcon", true);
      if (regVersion != null)
      {
      regIconString
      = regVersion.GetValue("") as string;
      regVersion.Close();
      }
      }
      if (regIconString == null)
      {
      //沒有讀取到文件類型注冊信息,指定為未知文件類型的圖標
      regIconString = systemDirectory + "shell32.dll,0";
      }
      }
      else
      {
      //直接指定為文件夾圖標
      regIconString = systemDirectory + "shell32.dll,3";
      }
      string[] fileIcon = regIconString.Split(new char[] { ',' });
      if (fileIcon.Length != 2)
      {
      //系統(tǒng)注冊表中注冊的標圖不能直接提取,則返回可執(zhí)行文件的通用圖標
      fileIcon = new string[] { systemDirectory + "shell32.dll", "2" };
      }
      Icon resultIcon
      = null;
      try
      {
      //調(diào)用API方法讀取圖標
      int[] phiconLarge = new int[1];
      int[] phiconSmall = new int[1];
      uint count = Win32.ExtractIconEx(fileIcon[0], Int32.Parse(fileIcon[1]), phiconLarge, phiconSmall, 1);
      IntPtr IconHnd
      = new IntPtr(isLarge ? phiconLarge[0] : phiconSmall[0]);
      resultIcon
      = Icon.FromHandle(IconHnd);
      }
      catch { }
      return resultIcon;
      }
      }



      [StructLayout(LayoutKind.Sequential)]
      public struct SHFILEINFO
      {
      public IntPtr hIcon;
      public IntPtr iIcon;
      public uint dwAttributes;
      [MarshalAs(UnmanagedType.ByValTStr, SizeConst
      = 260)]
      public string szDisplayName;
      [MarshalAs(UnmanagedType.ByValTStr, SizeConst
      = 80)]
      public string szTypeName;
      };

      ///
      /// 定義調(diào)用的API方法
      ///
      class Win32
      {
      public const uint SHGFI_ICON = 0x100;
      public const uint SHGFI_LARGEICON = 0x0; // 'Large icon
      public const uint SHGFI_SMALLICON = 0x1; // 'Small icon

      [DllImport(
      "shell32.dll")]
      public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, uint cbSizeFileInfo, uint uFlags);
      [DllImport(
      "shell32.dll")]
      public static extern uint ExtractIconEx(string lpszFile, int nIconIndex, int[] phiconLarge, int[] phiconSmall, uint nIcons);

      }
      }

       

      posted on 2010-02-23 17:27  大寶pku  閱讀(1782)  評論(0)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 亚洲色大成网站www看下面| 麻豆天美东精91厂制片| 亚洲成在人线AV品善网好看| 亚洲中文字幕久久精品蜜桃| 99久久精品一区二区国产| 久久精品国产亚洲av成人| 欧美老少配性行为| 中文字幕第一页国产| 国内精品综合九九久久精品| 亚洲熟妇色xxxxx亚洲| 中文字幕日韩精品国产| 国产卡一卡二卡三免费入口| 天天狠天天透天天伊人| 国产精品日韩中文字幕熟女| 在线高清免费不卡全码| 国产不卡一区不卡二区| 色吊丝一区二区中文字幕| 欧美极品色午夜在线视频| 人妻少妇偷人精品一区| 亚洲经典av一区二区| 亚洲国产成人久久77| 高清不卡一区二区三区| 国产偷窥熟女高潮精品视频| 湘乡市| 欧美成人黄在线观看| 最近中文字幕日韩有码| 亚洲 欧美 影音先锋| 欧美videosdesexo吹潮| 亚洲成人av综合一区| 久久AV中文综合一区二区| 国产高颜值不卡一区二区| 欧美三级a做爰在线观看| 强奷漂亮雪白丰满少妇av| 国产成人午夜精品影院| 中文字幕亚洲人妻一区| 国产乱码精品一区二区三| 国产精品美人久久久久久AV| 91孕妇精品一区二区三区| 宝贝腿开大点我添添公视频免| 好紧好滑好湿好爽免费视频| 人妻体内射精一区二区三四|