Проблема Собственная Иконка для ярлыка.

Kotuy

Новичок
Доброе время суток!!!

Есть не большая проблема.

Прописал в секцию [Icons] свою иконку
Выглядит это так:
Name: {commondesktop}\{#AppName}; Filename: {app}\{#AppExec}; WorkingDir: {app}; IconFilename: {app}\icon1.ico; Tasks: desktopicon
Но иконка на ярлыке не появляется.

Дописал в секцию [Files] путь до иконки
Source: "C:\NEW\icon1.ico"; DestDir: "{app}"; Flags: ignoreversion

Иконка стала отображаться, но теперь я её не могу заменить на другую. Заменяю иконку на другую в скрипте, а при установки игры ставиться старая иконка

В чём может быть проблема, может кто знает? Или может есть другой способ прописать свою иконку.

Заранее благодарю.
 

Carlos

Участник
Модератор
Так то всё правильно, он же тебе с диска "с:\" иконку компилирует.
А по сути иконка icon1.ico должна быть в папке с игрой. Лучше сразу делай архивы с этой иконкой внутри.
Если ты сам файл иконки меняешь, а после установки она не меняется, то попробуй перезагрузиться.
И что ты меняешь иконку на диске "с:\" или в скрипте просто пишешь что-то другое?
 

Timick

Старожил
Kotuy, всё у тебя правильно. Нужно лишь обновить рабочий стол (Можно вручную, клавишей F5, а можно и автоматически)

Пример sergey3695:
Код:
const
    SHCNE_ASSOCCHANGED = $08000000;
    SHCNF_IDLIST = $0000;

Procedure SHChangeNotify(wEventId: Integer; uFlags: UINT; dwItem1, dwItem2: Longint); External 'SHChangeNotify@shell32.dll stdcall';

Procedure InitializeWizard();
begin
    SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);
end;
 

Kotuy

Новичок
Carlos, Заменяю иконку в скрипте на другую, заново делаю Компиляцию. Удаляю старые файлы. Запускаю новый сетупник и устанавливаю, и появляется ярлык со старой иконкой.
Timick, перезагрузка и обновы раб.стола не помогает.

Даже файл иконка1 удалил полностью из скрипта, а он всё равно эту старую иконку устанавливает.

Может тогда уже дело в винде самой? Хотя установлена винда 4 дня назад.
 

Timick

Старожил
Kotuy, тогда бери иконку с деинсталлятора или exe файла запуска игры:
Код:
Name: "{userdesktop}\{#GameNameFolder}"; Filename: "{#exeGameFolder}\{#exeGameFile}"; WorkingDir: "{#exeGameFolder}"; IconFilename: "{app}\Uninstall\unins000.exe"; Tasks: DesktopIcon
 

Kotuy

Новичок
Timick, так иконка от ехе файла мне как раз не надо на сам ярлык, а нужна своя на ярлык
 

vint56

Ветеран
Проверенный
Kotuy,
Код:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Files]
Source: "icon.ico"; DestDir: {app};

[Icons]
Name: "{group}\My Program"; Filename: {app}\MyProg.exe; WorkingDir: {app}; IconFilename: {app}\icon.ico;
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: {uninstallexe}; WorkingDir: {app}; IconFilename: {app}\icon.ico;
 

Kotuy

Новичок
Всем спасибо за помощь. Но иконка не меняется, пока не изменишь её названия в скрипте и иконки. Странно но не критично.
 

EvilAlex

Старожил
Всем спасибо за помощь. Но иконка не меняется, пока не изменишь её названия в скрипте и иконки. Странно но не критично.
Это баг винды. у меня такое было, винда отображает почему-то старую картинку иконки если название совпадают, а открываешь средством просмотра фотографий и иконка новая...
 
Сверху