Название: [Qt 4.2.2] Асооциации файлов Отправлено: crossly от Июль 04, 2007, 20:42 Всем привет.... Вопрос таков... Как определить иконку ассоциированную с определённым файлом?... Пробовал функцию win api... Примерно вот так.....
Код: HINSTANCE hi; WORD pi=0; HICON ic=ExtractAssociatedIcon(hi,path.utf16(),&pi); Название: [Qt 4.2.2] Асооциации файлов Отправлено: Racheengel от Июль 04, 2007, 21:18 HICON ic=ExtractAssociatedIconA(hi,path.toAscii().data(),&pi);
попробуй Название: [Qt 4.2.2] Асооциации файлов Отправлено: crossly от Июль 06, 2007, 19:12 не катит..... таже хрень.....
Название: [Qt 4.2.2] Асооциации файлов Отправлено: Tonal от Июль 06, 2007, 22:10 Не пробывал так:
HINSTANCE hi = 0; Название: [Qt 4.2.2] Асооциации файлов Отправлено: pastor от Июль 06, 2007, 23:59 Первый параметр (HINSTANCE hi) должен быть валиндый handle на приложение, которое вызвало эту функцию. имхо, в этом вся проблема.
Название: [Qt 4.2.2] Асооциации файлов Отправлено: vaprele07 от Июль 07, 2007, 02:35 аналогичная функция не требующая HINSTANCE: ExtractIconEx (http://msdn2.microsoft.com/en-us/library/ms648069.aspx)
строка должна быть закрыта '\0' что обычно не делает toAscii().data() по крайней мере у меня. Название: [Qt 4.2.2] Асооциации файлов Отправлено: crossly от Июль 07, 2007, 07:28 я уже понял что проблема в HINSTANCE... и как я понимаю ExtractIconEx извлекает иконку только если она есть в файле, а иконку ассоциированного приложения не сможет... или я не прав..??
добавлено спустя 2 минуты: и ещё мот кто нибудь знает как получить валидный Handle() в Qt....? Название: [Qt 4.2.2] Асооциации файлов Отправлено: pastor от Июль 07, 2007, 17:34 Цитата: "crossly" и ещё мот кто нибудь знает как получить валидный Handle() в Qt....? Могу ошибаться, но помоему никак. Юзай WinAPI Название: [Qt 4.2.2] Асооциации файлов Отправлено: crossly от Июль 07, 2007, 18:23 дико извиняюсь.... но с winAPI знаком плохо (никогда не любил vc++, а тут нашлась такая замечательная вещь как Qt :) ).... мот на примерчике... плиз...
Название: [Qt 4.2.2] Асооциации файлов Отправлено: pastor от Июль 07, 2007, 18:48 С радостью бы подсказал, но не помню этой функции. Почитай в MSDN или погугли
Название: [Qt 4.2.2] Асооциации файлов Отправлено: crossly от Июль 07, 2007, 20:11 Цитата: "pastor" Цитата: "crossly" и ещё мот кто нибудь знает как получить валидный Handle() в Qt....? Могу ошибаться, но помоему никак. Юзай WinAPI читал..... там то и нашол ExtractAssociatedIcon... вот только где взять HINSTANCE в QT не знаю.... Другие функции не катят (пробовал)..... Название: [Qt 4.2.2] Асооциации файлов Отправлено: Tonal от Июль 07, 2007, 22:54 А причём здесь Qt, если ты напрямую WinAPI-шную функцию используешь?
Инициализируй 0 и посмотри чё получится - большинство WinAPI-шных функций ожидающих HINSTANCE воспримут 0 как HINSTANCE приложения. Если не помогёт, то смотри в доке компилера. Обычно есть системная переменная где лежит HINSTANCE модуля. Ну и для dll-ки ещё можно написать свою DllMain - оно туба виндой передоётся. Название: [Qt 4.2.2] Асооциации файлов Отправлено: Racheengel от Июль 07, 2007, 23:09 я юзал функцию, которая выглядела так:
Код:
и работала нормально, во взяком случае под ХР и 2000. Название: [Qt 4.2.2] Асооциации файлов Отправлено: vaprele07 от Июль 08, 2007, 02:32 GetModuleHandle (http://msdn2.microsoft.com/en-us/library/bb202816.aspx) возвращает HINSTANCE
Название: [Qt 4.2.2] Асооциации файлов Отправлено: crossly от Июль 13, 2007, 19:03 перебои со связью...:)
кому интересно.... Код:
Ну если завел тему.... Мот кто подскажет как реализовать под линукс(к примеру KDE)?? .... так на будущее....:) Название: Re: [Qt 4.2.2] Асооциации файлов Отправлено: Amouse от Август 30, 2007, 17:16 Как сделать тоже самое под Linux??
Название: Re: [Qt 4.2.2] Асооциации файлов Отправлено: Пантер от Апрель 22, 2009, 17:20 перебои со связью...:) Побуду некропостером. :) Решение хорошое, спасибо за него. Вот только косячек один - некоторые иконки рисуются с черным фоном. Если сделать QPixmap::Alpha фон становится нормальным, но те иконки, которые до этого нормальными были, становятся непонятного цвета. С графикой никогда не сталкивался, подскажите, как сделать правильно.кому интересно.... Код: WORD w; Ну если завел тему.... Мот кто подскажет как реализовать под линукс(к примеру KDE)?? .... так на будущее....:) Название: Re: [Qt 4.2.2] Асооциации файлов Отправлено: Grekon от Июль 11, 2009, 23:11 А почему для этой цели нельзя было использовать QFileIconProvider?
|