Kojarzenie ikony nie zawsze działa

0

Cześć. Napisałem se programik. Do execa dodałem ikonę w taki sposób:

{$R 1.res}

, gdzie 1.res to nazwa zasobu, w którym siedzi ikona.

Skompilowałem. Wpisałem ręcznie do rejestru(rozszerzenie jakie rejestruje to .sub):

HKCR.sub@ = "subFile"
HKCR\subFile\DefaultIcon@ = sciezka_do_execa\project1.exe,1
HKCR\subFile\shell\open\command@ = sciezka_do_execa\project1.exe %1.

Po odświeżeniu wszystko działało.
Usunąłem te wpisy.

Zrobiłem instalkę InnoSetup'em ver. 5. W kodzie porobiłem te same wpisy w rejestrze(dobrze je zrobiłem, bo są). Po zainstalowaniu ikona się nie zmieniła. Jest zwykła windowsowa. Myślałem, że może po ponownym uruchomieniu, ale też nie. Zwykła windowsowa ikona. A wpisy w rejestrze są porobione.

Gdy klikam na plik 2 razy, to owszem, uruchamia się w moim programie. Ale nie ma ikony :|

Jeszcze jedna wiadomość, być może ważna. Plik exe jest spakowany UPXem. Czy to może mieć znaczenie?

0

Hmm... upx nie pakuje ikon, wiec to nie to... Moze ustawiles zla <ort>scierzke </ort>do programu w ikonie?

0
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0)

A file type association has changed. SHCNF_IDLIST must be specified in the uFlags parameter. dwItem1 and dwItem2 are not used and must be NULL

0

Może weź parametr w cudzysłów?

0
sapero napisał(a)
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0)

A file type association has changed. SHCNF_IDLIST must be specified in the uFlags parameter. dwItem1 and dwItem2 are not used and must be NULL

Undeclared Identyfier. Co muszę dodać do uses?

Thenkles: Nic nie daje.

0
migajek napisał(a)

Hmm... upx nie pakuje ikon, wiec to nie to... Moze ustawiles zla scierzke do programu w ikonie?

upx moze pakowac ikony - zalezy jak spakujesz :P

0

nie wiem co masz dodać bo nie mam Delphi
w SDK pisze:

shell32 version 4.0 or later
header shlobj.h

Jak nie znajdziesz to zrób przez LoadLibrary
CONST SHCNE_ASSOCCHANGED = 0x8000000
CONST SHCNF_IDLIST = 0

znalazłem na googlarce Uses ShlObj

1 użytkowników online, w tym zalogowanych: 0, gości: 1