วิธีการใช้ฟังก์ชัน SHGetFileInfo เพื่อเรียกดูไอคอนที่เกี่ยวข้องกับแฟ้มใน Visual .NET c#

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 319350 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

สรุป

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีใช้นี้SHGetFileInfoฟังก์ชันการเรียกใช้ไอคอนที่เกี่ยวข้องกับแฟ้ม

สร้างโปรแกรมประยุกต์ Windows Forms

  1. เริ่ม Microsoft Visual Studio .NET
  2. ในการแฟ้ม:เมนู ให้ชี้ไปที่ใหม่แล้ว คลิกProject.
  3. ในการโครงการใหม่กล่องโต้ตอบ คลิกแสดงโครงการ c#ภายใต้ชนิดโครงการแล้ว คลิกแอพลิเคชันของ windowsภายใต้แม่แบบ.
  4. ในการชื่อ:กล่อง ชนิดGetIconSample.

ใช้ฟังก์ชัน SHGetFileInfo

  1. เพิ่มรหัสต่อไปนี้ในแฟ้ม Form1.cs เมื่อสิ้นสุดการการใช้ใบแจ้งยอด
    using System.Runtime.InteropServices;
    					
  2. เพิ่มรหัสต่อไปนี้หลังจากform1คลาสของGetIconSamplenamespace
    [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;
    };
    
    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);
    }
    					
  3. เพิ่มรหัสต่อไปนี้ในการform1คลาสหลังจากส่วนตัวใบแจ้งยอด:
    private int nIndex = 0;
    					
  4. เพิ่มคำlistViewตัวควบคุม คำปุ่มตัวควบคุม และเพิ่มimageListควบคุมไปยังแบบฟอร์ม ชื่อเริ่มต้นคือ listView1, button1 และ imageList1 ตามลำดับ
  5. ในหน้าต่างคุณสมบัติของbutton1ตั้งค่าปุ่มข้อความเลือกแฟ้มแล้ว เพิ่มโค้ดต่อไปนี้ในการbutton1_clickเหตุการณ์:
    IntPtr hImgSmall; //the handle to the system image list
    IntPtr hImgLarge; //the handle to the system image list
    string fName; //  'the file name to get icon from
    SHFILEINFO shinfo = new SHFILEINFO();
       
    OpenFileDialog openFileDialog1 = new OpenFileDialog();
    openFileDialog1.InitialDirectory = "c:\\temp\\";
    openFileDialog1.Filter = "All files (*.*)|*.*";
    openFileDialog1.FilterIndex = 2;
    openFileDialog1.RestoreDirectory = true ;
    
    listView1.SmallImageList = imageList1;
    listView1.LargeImageList = imageList1;
    			
    if(openFileDialog1.ShowDialog() == DialogResult.OK) 
    {
         fName = openFileDialog1.FileName;
         //Use this to get the small Icon
         hImgSmall = Win32.SHGetFileInfo(fName, 0, ref shinfo,(uint)Marshal.SizeOf(shinfo),Win32.SHGFI_ICON |Win32.SHGFI_SMALLICON);
    
        //Use this to get the large Icon
        //hImgLarge = SHGetFileInfo(fName, 0, 
        //	ref shinfo, (uint)Marshal.SizeOf(shinfo), 
        //	Win32.SHGFI_ICON | Win32.SHGFI_LARGEICON);
    
        //The icon is returned in the hIcon member of the shinfo struct
        System.Drawing.Icon myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
    				
        imageList1.Images.Add(myIcon);
    				
        //Add file name and icon to listview
        listView1.Items.Add(fName, nIndex++); 
    }
    					

เรียกใช้โครงการ

  1. การคอมไพล์โครงการ: บนการสร้างเมนู คลิกสร้างโซลูชัน.
  2. กดแป้น F5 เพื่อเรียกใช้โครงการ
  3. คลิกเลือกแฟ้มจากนั้น เลือกแฟ้มในนั้นOPENกล่องโต้ตอบ ชื่อของแฟ้มและไอคอนที่เกี่ยวข้องกับแฟ้มปรากฏขึ้นในการListViewตัวควบคุม

ข้อมูลอ้างอิง

สำหรับข้อมูลเพิ่มเติมในบทความนี้รุ่น Microsoft Visual Basic .NET คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:
319340วิธีการใช้ฟังก์ชัน SHGetFileInfo เพื่อเรียกดูไอคอนที่เกี่ยวข้องกับแฟ้มใน Visual Basic .NET

คุณสมบัติ

หมายเลขบทความ (Article ID): 319350 - รีวิวครั้งสุดท้าย: 13 มกราคม 2554 - Revision: 5.0
ใช้กับ
  • Microsoft Visual Studio .NET 2003 Professional Edition
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft Visual Studio .NET 2002 Professional Edition
  • Microsoft Visual Studio .NET 2002 Enterprise Architect
  • Microsoft Visual Studio .NET 2002 Enterprise Developer
  • Microsoft Visual Studio .NET 2002 Academic Edition
Keywords: 
kbhowtomaster kbmt KB319350 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:319350

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com