SHGetFileInfo 함수를 Visual Basic .NET 에서 파일과 연결된 아이콘을 가져올 수 방법

중요: 본 문서는 전문 번역가가 번역한 것이 아니라 Microsoft 기계 번역 소프트웨어로 번역한 것입니다. Microsoft는 번역가가 번역한 문서 및 기계 번역된 문서를 모두 제공하므로 Microsoft 기술 자료에 있는 모든 문서를 한글로 접할 수 있습니다. 그러나 기계 번역 문서가 항상 완벽한 것은 아닙니다. 따라서 기계 번역 문서에는 마치 외국인이 한국어로 말할 때 실수를 하는 것처럼 어휘, 구문 또는 문법에 오류가 있을 수 있습니다. Microsoft는 내용상의 오역 또는 Microsoft 고객이 이러한 오역을 사용함으로써 발생하는 부 정확성, 오류 또는 손해에 대해 책임을 지지 않습니다. Microsoft는 이러한 문제를 해결하기 위해 기계 번역 소프트웨어를 자주 업데이트하고 있습니다.

319340
이 문서가 보관되었습니다. "그대로" 제공되었으며, 업데이트가 되지 않을 것입니다.
이 문서에서는 Microsoft Visual C# .NET 버전에 319350 참조하십시오.
요약
이 문서에서는 SHGetFileInfo 함수를 사용하여 파일과 관련된 아이콘 가져오는 방법에 대해 설명합니다.

back to the top

Windows Forms 응용 프로그램 만들기

  1. Microsoft Visual Studio .NET 시작하십시오.
  2. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트 를 클릭하십시오.
  3. 새 프로젝트 대화 상자의 프로젝트 형식Visual Basic 프로젝트 클릭한 다음 템플릿 에서 Windows 응용 프로그램 을 누릅니다.
  4. 이름 상자에 GetIconSample를 입력하십시오.
back to the top

SHGetFileInfo 함수 사용

  1. Form1.vb 파일의 시작 부분에 다음 코드를 추가합니다.
    Imports System.Runtime.InteropServices					
  2. INHERITS 문 뒤에 다음 코드를 Form1 클래스에 추가합니다.
    Private Structure SHFILEINFO        Public hIcon As IntPtr ' : icon        Public iIcon As Integer ' : icondex        Public dwAttributes As Integer ' : SFGAO_ flags        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _        Public szDisplayName As String        <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _        Public szTypeName As StringEnd StructurePrivate Declare Ansi Function SHGetFileInfo Lib "shell32.dll" (ByVal pszPath As String, _ByVal dwFileAttributes As Integer, ByRef psfi As SHFILEINFO, ByVal cbFileInfo As Integer, _ByVal uFlags As Integer) As IntPtrPrivate Const SHGFI_ICON = &H100Private Const SHGFI_SMALLICON = &H1Private Const SHGFI_LARGEICON = &H0         ' Large iconPrivate nIndex = 0					
  3. 목록 컨트롤, 단추 컨트롤 및 imageList 컨트롤을 폼에 추가하십시오. 기본 이름은 각각 Button1, ListView1 및 ImageList1 있습니다.
  4. Button1 속성 창에서 단추 텍스트 파일 선택 을 설정하고 다음 Button1_click 이벤트에 다음 코드를 추가하여:
    Dim hImgSmall As IntPtr  'The handle to the system image list.Dim hImgLarge As IntPtr  'The handle to the system image list.Dim fName As String      'The file name to get the icon from.Dim shinfo As SHFILEINFOshinfo = New SHFILEINFO()Dim openFileDialog1 As OpenFileDialogopenFileDialog1 = New OpenFileDialog()openFileDialog1.InitialDirectory = "c:\temp\"openFileDialog1.Filter = "All files (*.*)|*.*"openFileDialog1.FilterIndex = 2openFileDialog1.RestoreDirectory = TruelistView1.SmallImageList = imageList1listView1.LargeImageList = ImageList1shinfo.szDisplayName = New String(Chr(0), 260)shinfo.szTypeName = New String(Chr(0), 80)If (openFileDialog1.ShowDialog() = DialogResult.OK) Then     fName = openFileDialog1.FileName     'Use this to get the small icon.     hImgSmall = SHGetFileInfo(fName, 0, shinfo, Marshal.SizeOf(shinfo), _         SHGFI_ICON Or SHGFI_SMALLICON)     'Use this to get the large icon.     'hImgLarge = SHGetFileInfo(fName, 0,      'ref shinfo, (uint)Marshal.SizeOf(shinfo),      'SHGFI_ICON | SHGFI_LARGEICON);     'The icon is returned in the hIcon member of the shinfo struct.     Dim myIcon As System.Drawing.Icon     myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon)     imageList1.Images.Add(myIcon) 'Add icon to imageList.     listView1.Items.Add(fName, nIndex) 'Add file name and icon to listview.     nIndex = nIndex + 1End If					
back to the top

프로젝트 실행

  1. 프로젝트를 컴파일하여: 빌드 메뉴에서 솔루션 빌드 를 클릭합니다.
  2. F5를 키를 눌러 프로젝트를 실행합니다.
  3. 파일 선택 을 클릭한 다음 열기 대화 상자에서 파일을 선택하십시오. 파일 이름과 해당 파일과 연결된 아이콘을 ListView 컨트롤에 나타납니다.
back to the top
참조
이 문서에서는 Microsoft Visual C# .NET 버전의 대해 Microsoft 기술 자료의 문서를 참조하십시오.
319350SHGetFileInfo 함수 파일에서 Visual C# .NET 사용하여 관련 있는 아이콘 가져오기 방법
back to the top

경고: 이 문서는 자동으로 번역되었습니다.

속성

문서 ID: 319340 - 마지막 검토: 12/07/2015 09:15:43 - 수정: 2.0

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

  • kbnosurvey kbarchive kbmt kbhowtomaster KB319340 KbMtko
피드백