2011년 8월 3일 수요일

아이콘파일, 실행파일에서 아이콘 가져오기

파일관리자 같은 앱을 만들다보면 꼭 필요하지요...


/// System.Drawing.Icon을 이용하여 아이콘을 추출하는 함수
public System.Windows.Media.ImageSource getIcon(string filename)
{
            System.Windows.Media.ImageSource icon;
            using (System.Drawing.Icon sysicon = System.Drawing.Icon.ExtractAssociatedIcon(filename))
            {
                icon = System.Windows.Interop.Imaging.CreateBitmapSourceFromHIcon(
                            sysicon.Handle,
                            System.Windows.Int32Rect.Empty,
                            System.Windows.Media.Imaging.BitmapSizeOptions.FromEmptyOptions());
            }
            return icon;
}

// 이렇게 사용하세요. 아이콘파일의 기본 크기는 32이니깐...
private void button5_Click(object sender, RoutedEventArgs e)
{
            image1.Source = getIcon(textBox1.Text);
            image1.Width = 32;
            image1.Height = 32;
}

당연하겠지만, 이코드를 사용하려면 System.Drawing을 참조추가해야만 하겠죠?


getIcon(textBox1.Text) 에서 textBox1.Text는 추출하고자 하는 파일의 실제경로(FullPath)이어야 합니다.
경로가 틀리면 에러가 발생하겠죠?

using (System.Drawing.Icon sysicon = System.Drawing.Icon.ExtractAssociatedIcon(filename))
이 줄에서 에러가 발생합니다. 

실제 사용하려면 에러 핸들러를 달거나, 파일유무를 검사하면 되겠죠...

댓글 없음:

댓글 쓰기