|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 9] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 9]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме 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 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить 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 | |
|