Страница: 1 |
Страница: 1 |
Вопрос: Выделение иконки из EXE-файла
Добавлено: 19.04.07 13:12
Автор вопроса: Yanex | Web-сайт:
Проблема заключается вот в чем :
1. Нужно выделить первую иконку из EXE-файла в ICO-файл (иконка, которая по умолчанию показывается в Проводнике). В сети есть некоторые проекты, но они очень неудобны (в идеале хотелось бы иметь единую процедуру/функцию).
2. Как вариант, можно конвертировать иконку в строковой тип (String). Не знаю, как это сделать, но, вероятно, можно (тогда нужно будет написать и обратную функцию - перевода из строки в картинку).
Если Вы знаете, как можно осуществить данный замысел, пишите! Буду благодарен любому ответу.
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
D o c a l
ICQ: 408802757
Вопросов: 76
Ответов: 985
Web-сайт:
Профиль | | #1
Добавлено: 19.04.07 13:31
Через 1:30 скину на мило
Номер ответа: 2
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #2
Добавлено: 19.04.07 15:36
Вот пример, кинь на форму кнопку и PictureBox.
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Public Function FolderExists(ByVal strPathName As String) As Boolean
Dim DirectoryFound As String
Const errPathNotFound As Integer = 76
On Error GoTo 0
DirectoryFound = Dir(strPathName, vbDirectory)
If (Len(DirectoryFound) = 0 Or Err = errPathNotFound) Then
FolderExists = False
Else
FolderExists = True
End If
End Function
Private Sub Command1_Click() 'Çàïèñíàÿ êíèæêà
Dim hIcon As Long, i As Long
Dim FilePath As String
FilePath = "NOTEPAD.exe"
Picture1.BorderStyle = 0
Picture1.BackColor = vbWhite
Picture1.Height = Screen.TwipsPerPixelY * 32
Picture1.Width = Screen.TwipsPerPixelY * 32
'While hIcon <> 0
hIcon = ExtractIcon(App.hInstance, FilePath, i)
Set Picture1.Picture = LoadPicture(""
Picture1.AutoRedraw = True
Call DrawIcon(Picture1.hdc, 0, 0, hIcon)
Picture1.AutoRedraw = False
Picture1.Refresh
SavePicture Picture1.Image, "c:\" & 1 & ".ico"
End Sub