Inno Setup (создание инсталяционных пакетов)

  • Автор темы Автор темы Shegorat
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
Приветствую)
Возможно это сообщение предназначено для sergey3695, так как эту фишку я увидел у него, но буду рад, если кто-то еще знает, как реализовать эту фишку и мне подскажет)
e3c521b73629.jpg

1a6853eb38fa.jpg

cb82b9ab9b38.jpg
Второй и третий скрины представляют для меня наибольший интерес)
 
Всем добрый день и хорошего настроения.Есть такой вопросик:как назначить значок для папки с устанавливаемым приложением?То есть что бы после установки папка была уже со своим значком.Внедрение файла desktop.ini не помогает.Заранее спасибо.
 
ATTACUE, код...
 
nik1967, благодарю. Но вот 2 момента неприятных появились еще до твоего исправления:

1. По непонятной причине появилась эта полоска. По идее это YesRadio..
with WizardForm.YesRadio do
begin
Enabled := False;
Visible := False;
end;
33d309f6f733a34dc59b265590181a7f.png

2. При английском варианте инсталлятора у меня Кнопка "Finish (Завершить)" немного дальше уезжает, чем в русском варианте. Поправить так и не удалось самому.
e7002422b3c6a1036c86dcda28af6974.png

77306e43b61fc525f9ad4a0e9e039f6b.png
 
vint56 Спасибо за ссылку,всё сработало,я чуток подредактировал для использования вместо отдельного файла .ico идёт для значка родной .exe. Но возник ещё маленький вопросик:файл Desktop.ini создаёт сам скрипт,но хотелось что бы он был не видимым,а как и где в коде дописать атрибут Attribs: hidden (невидимый) не пойму.
Вот код:
Код:
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini '), ['[.ShellClassInfo]',
'IconFile=WEI.exe',
'IconIndex=0'], False)
 
Tolyak26,
1. Это LabelTime3 - найди всё, что с ним связано и удали/закомментируй. Хотя у меня такого нет.
2. В Procedure CurPageChanged(CurPageID: Integer); в if CurPageID=wpFinished then begin добавь WizardForm.NextButton.SetBounds(327, 327, 75, 23);
пример
 
Последнее редактирование:
nik1967, 1 пункт уже исправил. Теперь 2-ой только осталось :) Всё равно, спасибо за помощь.
 
ilzok17
[Setup]
AppName=Иконка
AppVerName=Иконка
DefaultDirName={pf}\Иконка
DefaultGroupName=Иконка

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

[Dirs]
Name: "{app}"; Attribs: system; AfterInstall: CreateIni();

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

Код:
type
#ifdef UNICODE
  #define A "W"
  PChar = PAnsiChar;
#else
  #define A "A"
#endif

function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall';
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
  SetFileAttributes(PChar(ExpandConstant('{app}\Desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
end;
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//[/SPOILER]
 
ilzok17
[Setup]
AppName=Иконка
AppVerName=Иконка
DefaultDirName={pf}\Иконка
DefaultGroupName=Иконка

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

[Dirs]
Name: "{app}"; Attribs: system; AfterInstall: CreateIni();

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

Код:
type
#ifdef UNICODE
  #define A "W"
  PChar = PAnsiChar;
#else
  #define A "A"
#endif

function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall';
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
  SetFileAttributes(PChar(ExpandConstant('{app}\Desktop.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
end;
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ***************************************************//[/SPOILER][/QUOTE]

Ещё раз спасибо,но ты меня не понял:я имею ввиду что надо прописать в коде что бы файл Desktop.ini,который создаётся инсталлятором был скрытым(невидимым).А с остальным всё в порядке - папка появляется уже с моим значком,но вот файл Desktop.ini(как в скачанном по ссылке ,так и в этом коде) - обычный(видимый).
 
ilzok17 ну я и так скрыл Desktop.ini который создаёт установщик а ты с начало удали старую папку и установи заново
 
Последнее редактирование:
ilzok17, через секцию [Files] копируй этот готовый уже Desktop.ini с атрибутом hidden system и не морочь себе голову.
Вот у тебя при создании ini файла ничего не меняется, так что не вижу проблему сделать как я написал.
Код:
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;
Помню также хотел сделать,что ты хочешь...так вот с помощью SetFileAttributes у меня не получилось.
 
ilzok17 покажи скрипт
[Setup]
SourceDir=.
OutputDir=.
AppName=Winaero WEI Tool 1.0
AppVerName=Winaero WEI Tool 1.0
AppVersion=Winaero WEI Tool 1.0
DefaultDirName={pf}\Winaero WEI
DefaultGroupName=Winaero WEI Tool 1.0
AllowNoIcons=yes
OutputBaseFilename=WEI
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal

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

[Files]
Source: icon.ico; DestDir: {app}
Source: "D:\3\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

[Dirs]
Name: "{app}"; Attribs: system; AfterInstall: CreateIni();

[Icons]
Name: "{group}\{cm:UninstallProgram,Winaero WEI Tool 1.0}"; Filename: "{uninstallexe}"

[UninstallDelete]
Type: filesandordirs; Name: "{app}"

Код:
type
#ifdef UNICODE
#define A "W"
PChar = PAnsiChar;
#else
#define A "A"
#endif

function SetFileAttributes(lpFileName: PChar; dwFileAttributes: DWORD): BOOL; external 'SetFileAttributesA@kernel32.dll stdcall';
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ************************************************** *//
procedure CreateIni();
begin
SaveStringsToFile(ExpandConstant('{app}\Desktop.ini'), ['[.ShellClassInfo]',
'IconFile=icon.ico',
'IconIndex=0'], False)
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then begin
SetFileAttributes(PChar(ExpandConstant('{app}\Desk top.ini')), FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_SYSTEM);
end;
end;
//******************************************* [ Папка, в которую устанавливается программа, имеет свою иконку ] ************************************************** *//
 
vint56 ,всё спасибо нашёл ошибку,там в одном месте лишний пробел был,сейчас всё отлично.Ещё раз спасибо.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху