|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
Ветеран Сообщения: 1269 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z |
|
Отправлено: 16:09, 04-04-2018 |
Старожил Сообщения: 440
|
Профиль | Сайт | Отправить PM | Цитировать ChopMan,
Справочку внимательно изучаем
[Setup]: AppendDefaultDirName Возможные значения: yes или no Значение по умолчанию: yes Описание: По умолчанию при указании пути на странице Выбор папки назначения с помощью кнопки Обзор... (Browse...) инсталлятор автоматически добавляет в конце имя папки, указанной в директиве DefaultDirName, в которую будет установлена программа. Например, если DefaultDirName={pf}\My Program и пользователь выбрал в обзоре диск "Z:\", то программа установится в "Z:\My Program". Если значение директивы no, то папка с указанным DefaultDirName именем в конечном каталоге создаваться не будет. На странице выбора появится кнопка "Создать папку" (Make New Folder). |
------- Отправлено: 07:17, 27-08-2018 | #91 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1269
|
Профиль | Отправить PM | Цитировать Цитата из ЛС:
PinToTaskbar
function PinToTaskbar(const FileName: string; IsPin: Boolean): Boolean; // FileName : full path to executable file // IsPin : False - unpin from TaskBar, True - pin to TaskBar var ShellApp: Variant; Verb: string; begin Result := False; if not FileExists(FileName) then Exit; try if IsPin then Verb := 'taskbarpin' else Verb := 'taskbarunpin'; ShellApp := CreateOleObject('Shell.Application'); ShellApp.Windows.Item.Document.Application.NameSpace(ExtractFileDir(FileName)).ParseName(ExtractFileName(FileName)).InvokeVerb(Verb); Result := True; except ShowExceptionMessage; end; end; PinToStartMenu
function PinToStartMenu(const FileName: string; const IsPin: Boolean): Boolean; // FileName : full path to exe- or lnk-file // IsPin : False - unpin from StartMenu, True - pin to StartMenu var ShellApp, FolderItem: Variant; Verb, LnkName: string; begin Result := False; if not FileExists(FileName) then Exit; try ShellApp := CreateOleObject('Shell.Application'); FolderItem := ShellApp.Windows.Item.Document.Application.NameSpace(ExtractFileDir(FileName)).ParseName(ExtractFileName(FileName)); if GetWindowsVersion < $06020000 then // below Windows 8 begin if IsPin then Verb := 'startpin' else Verb := 'startunpin'; FolderItem.InvokeVerb(Verb); Result := True; end else // Windows 8 and above begin if not FolderItem.IsLink then begin LnkName := FolderItem.ExtendedProperty('FileDescription'); if LnkName = '' then LnkName := ExtractFileName(FileName); LnkName := ExpandConstant('{commonprograms}\') + ChangeFileExt(LnkName, '.lnk'); if IsPin then Result := not FileExists(LnkName) and FileExists(CreateShellLink(LnkName, '', FileName, '', '', '', 0, SW_SHOWNORMAL)) else Result := DeleteFile(LnkName); end else begin LnkName := ExpandConstant('{commonprograms}\') + ExtractFileName(FolderItem.Path); if IsPin then Result := not FileExists(LnkName) and FileCopy(FolderItem.Path, LnkName, False) else Result := DeleteFile(LnkName); end; end; except ShowExceptionMessage; end; end; |
|
Отправлено: 09:26, 05-10-2018 | #92 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Здраствуйте. Помогите пож. разобратся с ярлыком деинсталятора в меню пуск.
Всегда указывал так: [Icons] Name: {group}\{cm:UninstallProgram,{#MyName}}; Filename: {uninstallexe}; Check: CheckError Ярлык деинсталятора в меню пуск Win 7 отображался. Установив прогу в Win 10 ярлык деинсталятора не отображается. Заметил что такая же проблема и в инсталяторах других разработчиков. Запустив установку в Win 10 в режиме совместимости с Win 7 всё нормально, рабочий ярлык на своём месте. Прописал следующее: [Icons] Name: {group}\Деинсталлировать {#MyName}; Filename: {uninstallexe}; Check: CheckError После этого всё норм, рабочий ярлык на своём месте. В чем же проблема в первом случае ? |
Последний раз редактировалось ROMKA-1977, 08-10-2018 в 15:20. Отправлено: 14:31, 08-10-2018 | #93 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Цитата ROMKA-1977:
|
|
Отправлено: 19:32, 08-10-2018 | #94 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Ребята, нубский вопрос...
Как средствами Inno Setup создать новый пустой текстовой файл? Я знаю только один хак создания через лист: var List: TStringList; txt: string; res: Integer; begin txt:= ExpandConstant('{tmp}\file.txt'); List:= TStringList.Create; List.Add('Добавляем первую строку в файл'); List.SaveToFile(txt); List.Free; end; Но по-моему к этому должна предшествовать какая-та трансляция. |
Последний раз редактировалось ErikPshat, 09-10-2018 в 15:36. Отправлено: 15:12, 09-10-2018 | #95 |
Ветеран Сообщения: 1269
|
Профиль | Отправить PM | Цитировать Цитата ROMKA-1977:
Цитата ErikPshat:
Цитата ErikPshat:
|
|||
Отправлено: 15:50, 09-10-2018 | #96 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать El Sanchez, о да, спасибо, проверил работает.
Если указано False, тогда перезаписывает файл, а если указать True, тогда записывает строку в конец файла. А я перелопатил в документации весь хэлп и почему-то пропустил эту команду. Оказывается она там есть ))) Спасибо ещё раз! |
Отправлено: 16:09, 09-10-2018 | #97 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать Подскажите пожалуйста, как проверить наличие записи в INI-файле?
У меня в секцию [CONFIG] записывается ключ "InstallDirectory" с путём в параметре. И я делаю отдельную функцию на его считывание: function InsDir(Default:String):String; Begin Result:= GetIniString('CONFIG','InstallDirectory','',ExpandConstant('{tmp}\config.ini')); end; if (ExpandConstant('{code:InsDir}') > 0) then begin DIR:= ExpandConstant('{code:InsDir}') end else if (ExpandConstant('{code:NewDir}') > 0) then begin DIR:= ExpandConstant('{code:NewDir}') end; Мне нужно на переменную DIR назначить существующий ключ. |
Последний раз редактировалось ErikPshat, 09-10-2018 в 18:58. Отправлено: 18:47, 09-10-2018 | #98 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Цитата ErikPshat:
Может есть какойто метод оптимизации секции [Icons] не прибегая к подробному тексту - Name: {group}\Деинсталлировать {#MyName}; Filename: {uninstallexe}; Check: CheckError Уточняю проблему - это только но win 10 и подобное не только у моих инсталяшек |
|
Последний раз редактировалось ROMKA-1977, 09-10-2018 в 21:01. Отправлено: 20:47, 09-10-2018 | #99 |
Пользователь Сообщения: 54
|
Профиль | Отправить PM | Цитировать ROMKA-1977, вам выше совет дал El Sanchez, вы читали?
То есть, вы вписали ключ MyName в файл Russian.isl и теперь хотите вывести его в секции [Icons]? А почему бы в шапке не написать через а потом выводить куда захочешь? Или в секцию CustomMessage через en. и ru. Кстати, нужно бы параметры в кавычки брать, а у вас без кавычек. Просто в Inno Setup иногда запятая всё решает. Из меня правда плохой советчик, кто бы мне самому подсказал, но у меня в секции [Icons] всегда так: |
Последний раз редактировалось ErikPshat, 09-10-2018 в 21:34. Отправлено: 21:08, 09-10-2018 | #100 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 |
|