crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Как из exe файла дастать иконку
Razerio
  опции профиля:
сообщение 16.1.2013, 21:47
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 13
Регистрация: 16.1.2013
Пользователь №: 3677

Спасибо сказали: 1 раз(а)




Репутация:   0  


Пытаюсь в винде (Win7x64) достать иконку из exe файла. В принципе всё работает:
    QFileInfo *info = new QFileInfo("somefile.exe");
    QFileIconProvider *provider = new QFileIconProvider();
    icon = new QImage(provider->icon(*info).pixmap(32, 32).toImage());

Вот только таким методом можно получить иконку размером до 32x32. Тоесть даже если вписать ".pixmap(64, 64).", то всё-равно будет возвращено 32x32 пикселя. (Разумеется в exe файле есть иконка 64x64).

Отсюда и вопрос — как вытаскивать большие иконки?

P.S.
На Дельфях помню проблему решил используя WinAPI функцию PrivateExtractIcons
function PrivateExtractIcons(lpszFile: PChar; nIconIndex, cxIcon, cyIcon: integer; phicon: PHANDLE; piconid: PDWORD; nicon, flags: DWORD): DWORD; stdcall; external 'user32.dll' name 'PrivateExtractIconsW';
// ...
var
  mIcon: THandle;
  nIconId: DWORD;
Begin
  PrivateExtractIcons(PChar("somefile.exe"), 0, 48, 48, @mIcon, @nIconId, 1, LR_LOADFROMFILE);

Вот только как PrivateExtractIcons в Qt объявить не знаю((
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
sidsukana
  опции профиля:
сообщение 17.1.2013, 6:38
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 158
Регистрация: 23.12.2010
Из: Челябинск
Пользователь №: 2296

Спасибо сказали: 10 раз(а)




Репутация:   2  


Цитата(Razerio @ 16.1.2013, 23:47) *
Пытаюсь в винде (Win7x64) достать иконку из exe файла. В принципе всё работает:
    QFileInfo *info = new QFileInfo("somefile.exe");
    QFileIconProvider *provider = new QFileIconProvider();
    icon = new QImage(provider->icon(*info).pixmap(32, 32).toImage());

Вот только таким методом можно получить иконку размером до 32x32. Тоесть даже если вписать ".pixmap(64, 64).", то всё-равно будет возвращено 32x32 пикселя. (Разумеется в exe файле есть иконка 64x64).

Отсюда и вопрос — как вытаскивать большие иконки?

P.S.
На Дельфях помню проблему решил используя WinAPI функцию PrivateExtractIcons
function PrivateExtractIcons(lpszFile: PChar; nIconIndex, cxIcon, cyIcon: integer; phicon: PHANDLE; piconid: PDWORD; nicon, flags: DWORD): DWORD; stdcall; external 'user32.dll' name 'PrivateExtractIconsW';
// ...
var
  mIcon: THandle;
  nIconId: DWORD;
Begin
  PrivateExtractIcons(PChar("somefile.exe"), 0, 48, 48, @mIcon, @nIconId, 1, LR_LOADFROMFILE);

Вот только как PrivateExtractIcons в Qt объявить не знаю((

Чем WinAPI на дельфях отличается от C++ ? Ничем практически, ищите такую же функцию WinAPI на C++
вот она http://msdn.microsoft.com/ru-ru/library/wi...5(v=vs.85).aspx
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 2.12.2024, 13:39