Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > pl.comp.programming > #31417 > unrolled thread

[Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze?

Started byBorneq <borneq@antyspam.hidden.pl>
First post2018-01-23 13:14 +0100
Last post2018-01-23 19:34 +0100
Articles 4 — 1 participant

Back to article view | Back to pl.comp.programming


Contents

  [Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze? Borneq <borneq@antyspam.hidden.pl> - 2018-01-23 13:14 +0100
    Re: [Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze? Borneq <borneq@antyspam.hidden.pl> - 2018-01-23 13:40 +0100
      Re: [Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze? Borneq <borneq@antyspam.hidden.pl> - 2018-01-23 18:00 +0100
      Re: [Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze? Borneq <borneq@antyspam.hidden.pl> - 2018-01-23 19:34 +0100

#31417 — [Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze?

FromBorneq <borneq@antyspam.hidden.pl>
Date2018-01-23 13:14 +0100
Subject[Windows][Registry][Qt] Jak pobrać ikonkę o ujemnym numerze?
Message-ID<p478ui$m4i$1@node2.news.atman.pl>
Chcę pobrać ikonkę skojarzoną z rozszerzeniem pliku. Dla .dot się udaje:
w rejestrach HKEY_CLASSES_ROOT\.dot\OpenWithProgIDs jest LibreOffice.Dot
z kolei HKEY_CLASSES_ROOT\LibreOffice.Dot\DefaultIcon jest
C:\Program Files (x86)\LibreOffice 5\program\soffice.bin,2
pobieram ikonkę 2 z soffice.bin numer 2 i ok.

Teraz chcę pobrać .mp3:
HKEY_CLASSES_ROOT\.mp3\OpenWithProgids ma WMP11.AssocFile.MP3
HKEY_CLASSES_ROOT\WMP11.AssocFile.MP3\DefaultIcon ma
%SystemRoot%\system32\wmploc.dll,-732

zamieniam na
C:\Windows\system32\wmploc.dll,-732
napisaną swoją klasą (czy Qt dostarcza do tej zamiany procedur?)
i teraz jest błąd zarówno dla -732 jak i dla 732
A dla 0 też jest źle, bo po kilkunastu razach buntuje się i nie chce 
pobrać ikonki:
Failed to extract icons from %SystemRoot%\system32\wmploc.dll 
(Użytkownik zatrzymał wyliczanie zasobów.)
"%SystemRoot%\\system32\\wmploc.dll,-732"


Więc, czy po
UINT extractedIconCount =
         ExtractIconEx(sourceFileC, index, 0, icons.data(), iconCount);
return QtWin::fromHICON(icons[0]);

należy jakoś zwalniać zasoby?

[toc] | [next] | [standalone]


#31418

FromBorneq <borneq@antyspam.hidden.pl>
Date2018-01-23 13:40 +0100
Message-ID<p47agk$nhn$1@node2.news.atman.pl>
In reply to#31417
W dniu 23.01.2018 o 13:14, Borneq pisze:
> Failed to extract icons from %SystemRoot%\system32\wmploc.dll 
> (Użytkownik zatrzymał wyliczanie zasobów.)
> "%SystemRoot%\\system32\\wmploc.dll,-732"

Rozwiązanie:
QPixmap result = QtWin::fromHICON(icons[0]);
     for (UINT i = 0; i < extractedIconCount; ++i)
         DestroyIcon(icons[i]);
     return result;

i ikonki mogą być ujemne.
Jedyny problem: że pobieranie wmploc.dll trwa znacznie dłużej niż z 
niesystemowych plików.

[toc] | [prev] | [next] | [standalone]


#31419

FromBorneq <borneq@antyspam.hidden.pl>
Date2018-01-23 18:00 +0100
Message-ID<p47po3$61n$1@node2.news.atman.pl>
In reply to#31418
W dniu 23.01.2018 o 13:40, Borneq pisze:
> i ikonki mogą być ujemne.

to znaczy, indeksy ikonek mogą być ujemne

[toc] | [prev] | [next] | [standalone]


#31420

FromBorneq <borneq@antyspam.hidden.pl>
Date2018-01-23 19:34 +0100
Message-ID<p47v7l$bhm$1@node2.news.atman.pl>
In reply to#31418
W dniu 23.01.2018 o 13:40, Borneq pisze:
> i ikonki mogą być ujemne.
> Jedyny problem: że pobieranie wmploc.dll trwa znacznie dłużej niż z 
> niesystemowych plików.

Dłużej, bo pobierałem wszystkie zamiast jednej, teraz działa ok.

[toc] | [prev] | [standalone]


Back to top | Article view | pl.comp.programming


csiph-web