Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Работа с файлами Добавлено: 25.02.09 23:41  

Автор вопроса:  Habitus Tercy
В программе VB.NET в дереве отображается список файлов с иконками. Как сделать так, чтобы иконка соотвествовала приложению, который данный файл открывает? Ну например: файлу XXX.doc соответствует иконка, показывающая, что данный файл открывается Word

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 Mutalisk



ICQ: 364366445 

Вопросов: 4
Ответов: 11
 Профиль | | #1 Добавлено: 25.02.09 23:59
Попробуй использовать Drawing.Icon.ExtractAssociatedIcon(filePath).ToBitmap

Ответить

Номер ответа: 2
Автор ответа:
 Mutalisk



ICQ: 364366445 

Вопросов: 4
Ответов: 11
 Профиль | | #2 Добавлено: 25.02.09 23:59
Попробуй использовать
  1. Drawing.Icon.ExtractAssociatedIcon(filePath).ToBitmap

Ответить

Номер ответа: 3
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #3
Добавлено: 26.02.09 11:01
от так:
  1. <StructLayout(LayoutKind.Sequential)> _
  2.         Private Structure SHFILEINFO
  3.             Public hIcon As IntPtr
  4.             Public iIcon As IntPtr
  5.             Public dwAttributes As UInteger
  6.             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=260)> _
  7.             Public szDisplayName As String
  8.             <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=80)> _
  9.             Public szTypeName As String
  10.         End Structure
  11.         <DllImport("shell32.dll")> _
  12.         Private Shared Function SHGetFileInfo(ByVal pszPath As String, ByVal dwFileAttributes As UInteger, ByRef psfi As SHFILEINFO, ByVal cbSizeFileInfo As UInteger, ByVal uFlags As UInteger) As IntPtr
  13.         End Function
  14.         Private Const SHGFI_ICON As UInteger = &H100
  15.         Private Const SHGFI_SMALLICON As UInteger = &H1
  16.         Private Const SHGFI_LARGEICON As UInteger = &H0
  17.  
  18.  
  19. Dim shinfo As SHFILEINFO
  20. shinfo = New SHFILEINFO
  21.                 Dim info As New FileInfo(filename)
  22.                 Dim ext As String = info.Extension
  23.                 If String.IsNullOrEmpty(ext) Then
  24.                     If ((info.Attributes & FileAttributes.Directory) <> 0) Then
  25.                         ext = "5EEB255733234c4dBECF9A128E896A1E"
  26.                     Else
  27.                         ext = "F9EB930C78D2477c80A51945D505E9C4"
  28.                     End If
  29.                 Else
  30.                     If (ext.Equals(".exe", StringComparison.InvariantCultureIgnoreCase) Or ext.Equals(".lnk", StringComparison.InvariantCultureIgnoreCase)) Then ext = info.Name
  31.                 End If
  32.                 SHGetFileInfo(mass(i), 0, shinfo, Convert.ToUInt32(Marshal.SizeOf(shinfo)), SHGFI_ICON Or SHGFI_SMALLICON)
  33.                 Dim smallpict As Bitmap = Bitmap.FromHicon(shinfo.hIcon)

Ответить

Номер ответа: 4
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #4
Добавлено: 26.02.09 11:05
хммм интересно, а нафига я проводил манипуляции с ext, если оно ниде не используеца...

Ответить

Номер ответа: 5
Автор ответа:
 Habitus Tercy



Вопросов: 6
Ответов: 10
 Профиль | | #5 Добавлено: 26.02.09 20:49
Skywalker
<StructLayout(LayoutKind.Sequential)> _
        Private Structure SHFILEINFO
            Public hIcon As IntPtr
            Public iIcon As IntPtr
            Public dwAttributes As UInteger
            <MarshalAs(UnmanagedType.ByValTStr, Size ...


Я, извиняюсь, СОВСЕМ не продвинутый, а можно по-подробнее ... Прокоментируйте, пожалуйста свой листинг

Ответить

Номер ответа: 6
Автор ответа:
 Habitus Tercy



Вопросов: 6
Ответов: 10
 Профиль | | #6 Добавлено: 26.02.09 20:51
Mutalisk
Попробуй использовать Drawing.Icon.ExtractAssociatedIcon(filePath).ToBitmap


Спасибо, работает ...

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам