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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 5]

Аватара для El Sanchez

Ветеран


Contributor


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


Конфигурация

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]
Скрипты Inno Setup. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

Аватара для Gnom_aka_Lexander

Ветеран


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

Профиль | Сайт | Отправить PM | Цитировать


t16bz,
Код: Выделить весь код
WizardForm.ComponentsList.Font.Name := 'MS Sans Serif';
Дело, конечно не в шрифте, а в косяке китайцев, но факт остается фактом - выбор шрифта без ClearType-сглаживания вполне спасает

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:36, 12-07-2012 | #401



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


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

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


Джони так поможешь ?

Отправлено: 01:29, 13-07-2012 | #402


Аватара для Johny777

Ветеран


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

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


FX-DENIS,
в общем то уже!

Цитата FX-DENIS:
мне надо скопировать папку в мои документы текущего пользователя,без создания папки названия игры »
у меня в примере так и есть и никакие "папки названия игры" не создаются
а флаг "создавать подкаталоги" по незамысловатой причине работает только с флагом "обрабатывать подкаталоги"
но "обрабатывать подкаталоги" может работать и в одиночку (я ж не знаю есть ли в паке из которой ты копируешь папки с файлами)
Цитата FX-DENIS:
константа {userdocs} в XP сработает ?»
ну поддержку XP товарищи ещё не отменили и константа одна, так что сам догадайся
давай ты выложи полные пути-примеры откуда, куда, что и из каких папок копируется, потому что я не совсем понимаю, что именно тебя не устраивает
...............................................................................
кажись понял
ты хочешь из рядом лежащей папки "Ubisoft" скопировать файлы в Мои Документы\папка названия игры\Ubisoft
ну припиши

... DestDir: {userdocs}\Driver San Francisco\Ubisoft; Flags: external skipifsourcedoesntexist

Последний раз редактировалось Johny777, 13-07-2012 в 02:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:17, 13-07-2012 | #403


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Johny777, FX-DENIS, мнээээ, а в шапке смотрели стандартные папки Windows ?
Код: Выделить весь код
; Данный скрипт позволяет получить путь к стандартным папкам Windows

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes

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

[ Code]
const
  MAX_PATH = 260;
  // ниже приведён список id папок, путь которой хотим получить...
  // Виртуальный каталог, представляющий Рабочий стол. (Корень в проводнике)
  CSIDL_DESKTOP                 = $0000;
  // Виртуальный каталог для Internet Explorer.
  CSIDL_INTERNET                = $0001;
  // Меню Пуск -> Программы
  CSIDL_PROGRAMS                = $0002;
  // Виртуальный каталог, содержащий иконки пунктов панели управления
  CSIDL_CONTROLS                = $0003;
  // Виртуальный каталог, содержащий установленные принтеры
  CSIDL_PRINTERS                = $0004;
  // Виртуальный каталог, представляющий папку "Мои документы"
  CSIDL_PERSONAL                = $0005;
  // До Vista ссылался на какталог "Мои документы" на жёстком диске
  // Избранное. (обычно C:\Documents and Settings\username\Favorites)
  CSIDL_FAVORITES               = $0006;
  // Пуск -> Программы -> Автозагрузка
  CSIDL_STARTUP                 = $0007;
  // Недавние документы (обычно C:\Documents and Settings\username\My Recent Documents
  CSIDL_RECENT                  = $0008;
  // Папка, содержащая ярлыки меню "Отправить" (Sent to...) (обычно C:\Documents and Settings\username\SendTo)
  CSIDL_SENDTO                  = $0009;
  // Виртуальный каталог, содержащий файлы в корзине текущего пользователя
  CSIDL_BITBUCKET               = $000a;
  // Элементы меню Пуск текущего пользователя (обычно C:\Documents and Settings\username\Start Menu)
  CSIDL_STARTMENU               = $000b;
  // Рабочий стол текущего пользователя (обычно C:\Documents and Settings\username\Desktop)
  CSIDL_DESKTOPDIRECTORY        = $0010;
  // Виртуальный каталог, представляющий папку "Мой компьютер"
  CSIDL_DRIVES                  = $0011;
  // Виртуальный каталог, представляющий "Сетевое окружение"
  CSIDL_NETWORK                 = $0012;
  // Папка "My Nethood Places" (обычно C:\Documents and Settings\username\NetHood)
  // В неё ссылки на избранные расшаренные ресурсы
  CSIDL_NETHOOD                 = $0013;
  // Папка, содержащая установленные шрифты. (обычно C:\Windows\Fonts)
  CSIDL_FONTS                   = $0014;
  // Шаблоны документов. (Обычно Settings\username\Templates)
  CSIDL_TEMPLATES               = $0015;
  // Элементы меню Пуск для всех пользователей. (обычно C:\Documents and Settings\All Users\Start Menu)
  // Константы, начинающиеся на CSIDL_COMMON_ существуют только в NT версиях
  CSIDL_COMMON_STARTMENU        = $0016;
  // Меню Пуск -> программы для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs)
  CSIDL_COMMON_PROGRAMS         = $0017;
  // Меню Пуск -> Программы -> Автозагрузка для всех пользователей (обычно C:\Documents and Settings\All Users\Start Menu\Programs\Startup)
  CSIDL_COMMON_STARTUP          = $0018;
  // Элементы Рабочего стола для всех пользователей (обычно C:\Documents and Settings\All Users\Desktop)
  CSIDL_COMMON_DESKTOPDIRECTORY = $0019;
  // Папка, в которой рограммы должны хранить свои данные(C:\Documents and Settings\username\Application Data)
  CSIDL_APPDATA                 = $001a;
  // Установленные принтеры. (обычно C:\Documents and Settings\username\PrintHood)
  CSIDL_PRINTHOOD               = $001b;
  // user's nonlocalized Startup program group. Устарело.
  CSIDL_ALTSTARTUP              = $001d;         // DBCS
  // Устарело
  CSIDL_COMMON_ALTSTARTUP       = $001e;         // DBCS
  // Ссылки "Избранное" для всех пользователей
  CSIDL_COMMON_FAVORITES        = $001f;
  // Временные Internet файлы (обычно C:\Documents and Settings\username\Local Settings\Temporary Internet Files)
  CSIDL_INTERNET_CACHE          = $0020;
  // Папка для хранения Cookies (обычно C:\Documents and Settings\username\Cookies)
  CSIDL_COOKIES                 = $0021;
  // Хранит ссылки интернет истории IE
  CSIDL_HISTORY                 = $0022;
  // Административные инструменты текущего пользователя (например консоль MMC). Win2000+
  CSIDL_ADMINTOOLS              = $30;
  // Папка для файлов, подготовленных к записи на CD/DVD
  // (Обычно C:\Documents and Settings\username\Local Settings\Application Data\Microsoft\CD Burning)
  CSIDL_CDBURN_AREA             = $3b;
  // Папка, содержащая инструменты администрирования
  CSIDL_COMMON_ADMINTOOLS       = $2f;
  // Папака AppData для всех пользователей. (обычно C:\Documents and Settings\All Users\Application Data)
  CSIDL_COMMON_APPDATA          = $23;
  // Папка "Общие документы" (обычно C:\Documents and Settings\All Users\Documents)
  CSIDL_COMMON_DOCUMENTS        = $2e;
  // Папка шаблонов документов для всех пользователей (Обычно C:\Documents and Settings\All Users\Templates)
  CSIDL_COMMON_TEMPLATES        = $2d;
  // Папка "Моя музыка" для всех пользователей. (обычно C:\Documents and Settings\All Users\Documents\My Music)
  CSIDL_COMMON_MUSIC            = $35;
  // Папка "Мои рисунки" для всех пользователей. (обычно C:\Documents and Settings\All Users\Documents\My Pictures)
  CSIDL_COMMON_PICTURES         = $36;
  // Папка "Моё видео" для всех пользователей (C:\Documents and Settings\All Users\Documents\My Videos)
  CSIDL_COMMON_VIDEO            = $37;
  // Виртуальная папка, представляет список компьютеров в вашей рабочей группе
  CSIDL_COMPUTERSNEARME         = $3d;
  // Виртуальная папка, представляет список сетевых подключений
  CSIDL_CONNECTIONS             = $31;
  // AppData для приложений, которые не переносятся на другой компьютер (обычно C:\Documents and Settings\username\Local Settings\Application Data)
  CSIDL_LOCAL_APPDATA           = $1c;
  // Виртуальный каталог, представляющий папку "Мои документы"
  CSIDL_MYDOCUMENTS             = $0c;
  // Папка "Моя музыка"
  CSIDL_MYMUSIC                 = $0d;
  // Папка "Мои рисунки"
  CSIDL_MYPICTURES              = $27;
  // Папка "Моё видео"
  CSIDL_MYVIDEO                 = $0e;
  // Папка пользователя (обычно C:\Documents and Settings\username)
  CSIDL_PROFILE                 = $28;
  // Папка Program Files (обычно C:\Program Files)
  CSIDL_PROGRAM_FILES           = $26;
  CSIDL_PROGRAM_FILESX86        = $2a;
  // Папка Program Files\Common (обычно C:\Program Files\Common)
  CSIDL_PROGRAM_FILES_COMMON    = $2b;
  CSIDL_PROGRAM_FILES_COMMONX86 = $2c;
  // Папка для ресерсов. Vista и выше (обычно C:\Windows\Resources)
  CSIDL_RESOURCES               = $38;
  CSIDL_RESOURCES_LOCALIZED     = $39;
  // Папака System (обычно C:\Windows\System32 или C:\Windows\System)
  CSIDL_SYSTEM                  = $25;
  CSIDL_SYSTEMX86               = $29;
  // Папка Windows. Она же %windir% или %SYSTEMROOT% (обычно C:\Windows)
  CSIDL_WINDOWS                 = $24;

function SHGetSpecialFolderPath(hwndOwner: HWND; lpszPath: PChar; nFolder: Integer; fCreate: BOOL): BOOL;
  external 'SHGetSpecialFolderPathA@shell32.dll stdcall';

function GetSpecialPath(CSIDL: Word): string;
var
  s:  string;
begin
  SetLength(s, MAX_PATH);
  if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, True) then s := '';
  Result:= PChar(s);
end;

procedure InitializeWizard;
begin
  // определим расположение папки "Мои рисунки"
  MsgBox(GetSpecialPath(CSIDL_MYPICTURES), mbInformation, MB_OK);
end;

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 06:38, 13-07-2012 | #404


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


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

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


Ребят, доброе время суток! Столкнулся с такой проблемой, как при запуске инсталлятора, произвести проверку реестра на значение ключа, и вывести его в MsgBox. Чтобы призапуске появлялось сообщение: Ваша версия программы: "тут значение прочитанное из реестра"??? mbInformation, mbOK и если такое возможно, то эту версию вывести в label призапуске инсталлятора на странице wpWelcome, чтобы label сам считывал версию из реестра?

Отправлено: 08:34, 13-07-2012 | #405


Пользователь


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

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


Цитата R.i.m.s.k.y.:
FX-DENIS, мнээээ »
это что?Грузин? Посмотрел называется CSIDL_MYDOCUMENTS ,и что?Ты думаешь любой мужик увидевший это ,сразу поймет как эту константу использовать?Чтоб использовать константу при копировании папки я так понимаю надо знать язык программирования Паскаль.Не одного примера как использовать их не нашел.Так ,что не надо язвить уважаемый.

Джони благодарствую.

Последний раз редактировалось FX-DENIS, 13-07-2012 в 12:18. Причина: По делу


Отправлено: 12:08, 13-07-2012 | #406


Аватара для Johny777

Ветеран


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

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


Цитата FX-DENIS:
... Так ,что не надо язвить уважаемый. »
Не наезжай на человека. Он тебе помочь хотел!
тот пример очень классный, тк содержит большое количество констант путей, которых нет в инно
прочитай сообщение автора http://forum.oszone.net/post-1218002-103.html
Цитата FX-DENIS:
Не одного примера как использовать их не нашел »
внизу того же скрипта

наглядный, более практичный здесь http://krinkels.org/showpost.php?p=12005&postcount=532
только смыл?
зачем тебе китайские палочки, если есть вилка (читай константа {userdocs})

Последний раз редактировалось Johny777, 13-07-2012 в 13:06. Причина: сам сабя зацензурил

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:55, 13-07-2012 | #407


Пользователь


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

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


Цитата Johny777:
зачем тебе китайские палочки, если есть вилка (читай константа {userdocs}) »
Прочитал обе ссылки,присматривался,увидел только функции,но не увидел как указать какой файл скопировать и откуда,внешний или внутренний.В общем способ через {userdocs} будет для меня более упрощенным,спасибо вам.

Отправлено: 01:17, 14-07-2012 | #408


Забанен


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

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


Привет. Может подскажет кто, как добавить программу в исключение браундера через инно?

Цитата Johny777:
Не наезжай на человека. Он тебе помочь хотел! »
Ага, им помогают а они ещё выёживаются. Лучше б спасибо нажали . Ведь пример дали не для одного а со всеми поделились.

Отправлено: 01:53, 14-07-2012 | #409


Аватара для Johny777

Ветеран


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

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


L1nk3R,
вот тебе код для "добавления / удаления программ из правил брандмауэра Windows"
кто автор не знаю, но спасибо ему!

читать дальше »
Код: Выделить весь код
;Добавление правила для брандмауэра Windows

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.

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

[Icons]
Name: {group}\{cm:UninstallProgram,My Program}; Filename: {uninstallexe}

[code]
// Вспомогательные функции для установки Inno
// Используется для добавления / удаления программ из правил брандмауэра Windows
// Код, родом из http://news.jrsoftware.org/news/innosetup/msg43799.html

const
  NET_FW_SCOPE_ALL = 0;
  NET_FW_IP_VERSION_ANY = 2;

procedure SetFirewallException(AppName,FileName:string);
var
  FirewallObject: Variant;
  FirewallManager: Variant;
  FirewallProfile: Variant;
begin
  try
    FirewallObject := CreateOleObject('HNetCfg.FwAuthorizedApplication');
    FirewallObject.ProcessImageFileName := FileName;
    FirewallObject.Name := AppName;
    FirewallObject.Scope := NET_FW_SCOPE_ALL;
    FirewallObject.IpVersion := NET_FW_IP_VERSION_ANY;
    FirewallObject.Enabled := True;
    FirewallManager := CreateOleObject('HNetCfg.FwMgr');
    FirewallProfile := FirewallManager.LocalPolicy.CurrentProfile;
    FirewallProfile.AuthorizedApplications.Add(FirewallObject);
  except
  end;
end;

procedure RemoveFirewallException( FileName:string );
var
  FirewallManager: Variant;
  FirewallProfile: Variant;
begin
  try
    FirewallManager := CreateOleObject('HNetCfg.FwMgr');
    FirewallProfile := FirewallManager.LocalPolicy.CurrentProfile;
    FireWallProfile.AuthorizedApplications.Remove(FileName);
  except
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep=ssPostInstall then
     SetFirewallException('My Server', ExpandConstant('{app}')+'\TCPServer.exe');
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep=usPostUninstall then
     RemoveFirewallException(ExpandConstant('{app}')+'\TCPServer.exe');
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:40, 14-07-2012 | #410



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 5]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход