Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Stealthmax

Новый участник


Сообщения: 46
Благодарности: 15

Профиль | Цитировать


Цитата Dodakaedr:
Как создать ключи для: Не создавать ярлык на рабочем столе, Не создавать ярлык в меню «Пуск»? »
Ну все по той же схеме, что в примерах выше. Либо кастомные ключи делаешь для каждого чекбокса или используешь секцию Tasks.
Код: Выделить весь код
[Icons]
//здесь открепляем ярлыки от привязки к общей группе {group}
//{commonprograms}- общая для всех пользователей папка в меню Пуск
//{userprograms}- для отдельного пользователя в меню Пуск
Name: "{commonprograms}\{#MyAppName}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: StartMenu
Name: "{commonprograms}\{#MyAppName}\{cm:VisitSiteProduct,{#MyAppName}}"; Filename: "{#MyAppURL}"; Check: UrlMenu
Name: "{commonprograms}\{#MyAppName}\{cm:Uninstall} {#MyAppName}"; Filename: "{app}\{uninstallexe}"; Check: UninstallMenu
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: Desktop
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Check: QuickStart

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

[CustomMessages]
Russian.VisitSiteProduct=Посетить сайт продукта
Russian.Uninstall=Удалить 

[_Code]
var 
  startmenu1 : boolean;

function StartMenu: Boolean;
begin
  Result := StartMenuRadioButton.Checked or startmenu1;
end;

Function InitializeSetup: Boolean;
var
   i : integer;
Begin
  for i:=2 to ParamCount do begin
  if ( Pos(LowerCase('/startmenu'), Lowercase(ParamStr(i))) > 0 ) then startmenu1 := true else startmenu1 := false; //назначаем ключ для выполнения задачи
  Result := True;
end;
end;
Если будешь использовать по отдельности для каждого ярлыка, то например, при наличием {group} будет игнорироваться состояние чекбокса, тут думаю понятно почему.
В этом примере самый простой способ. Используются ключи из справки: /TASKS="startmenu,urlmenu,uninstallicon,desktopicon,quicklaunchicon", либо так /COMPONENTS="component1,component2", чтобы не создавать /TASKS="!startmenu,!urlmenu,!uninstallicon,!desktopicon,!quicklaunchicon"- восклицательный знак перед именем задачи
Код: Выделить весь код
[Icons]
Name: "{commonprograms}\{#MyAppName}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: startmenu
Name: "{commonprograms}\{#MyAppName}\{cm:VisitSiteProduct,{#MyAppName}}"; Filename: "{#MyAppURL}"; Tasks: urlmenu
Name: "{commonprograms}\{#MyAppName}\{cm:Uninstall} {#MyAppName}"; Filename: "{app}\{#uninstallexe}"; Tasks: uninstallicon
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon

[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "startmenu"; Description: "{#MyAppName}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "urlmenu"; Description:"{cm:VisitSiteProduct,{#MyAppName}}"; GroupDescription: "{cm:AdditionalIcons}";
Name: "uninstallicon"; Description: "{cm:Uninstall,{#MyAppName}}"; GroupDescription: "{cm:AdditionalIcons}";

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

[CustomMessages]
Russian.VisitSiteProduct=Посетить сайт продукта
Russian.Uninstall=Удалить
Russian.CreateDesktopIcon=Создать ярлык на рабочем столе
Russian.CreateQuickLaunchIcon=Добавить ярлык в панель Быстрого запуска

Последний раз редактировалось Stealthmax, 19-04-2014 в 21:35. Причина: замечания Nordek


Отправлено: 18:19, 19-04-2014 | #472