Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

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

Аватара для 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] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

Аватара для diman_21Ru

Старожил


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

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


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

Отправлено: 12:06, 18-01-2014 | #1881



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

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


Аватара для nik1967

Старожил


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

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


novahudonoser, saurn, чё велосипед то изобретать?
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppName")}_is1,InstallLocation|{pf}\My Program}
OutputDir=.
DisableReadyPage=yes

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 12:15, 18-01-2014 | #1882


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


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

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


saurn, так я её закоментил...
http://clip2net.com/s/6CzeTh

Цитата nik1967:
novahudonoser, saurn, чё велосипед то изобретать? »
спасибо, но это не полностью решает задачу описанную выше... http://forum.oszone.net/post-2291507-1879.html

Последний раз редактировалось novahudonoser, 18-01-2014 в 12:53.


Отправлено: 12:25, 18-01-2014 | #1883


Ветеран


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

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


nik1967, там, если ключ есть, нужно пропустить страницу выбора папки, так что все равно лезть в код, походя и поиск папки сделал через код, разница не велика.
novahudonoser, проверил еще раз http://forum.oszone.net/post-2291503-1878.html, все работает, как и положено.

Последний раз редактировалось saurn, 18-01-2014 в 14:02.


Отправлено: 13:01, 18-01-2014 | #1884


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


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

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


Цитата saurn:
все работает, как и положено. »
я тоже все проверил, не работает
возможно конфликтует с другими функциями кода, хз (

Отправлено: 17:04, 18-01-2014 | #1885


Ветеран


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

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


novahudonoser, скрипт покажитте

Отправлено: 17:14, 18-01-2014 | #1886


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


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

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


Вложения
Тип файла: txt 1.txt
(6.5 Kb, 9 просмотров)

пример

Отправлено: 17:23, 18-01-2014 | #1887


Ветеран


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

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


novahudonoser, немножко допилил и причесал скрипт. Проверил: страницы пропускаются и показываются, как и требуется.
Скрипт
Код: Выделить весь код
[Setup]
AppName=TimeCalculator
AppVerName=TimeCalculator
AppPublisher=zzz
OutputDir=.
OutputBaseFilename=TimeCalculator_1.8
DefaultDirName={code:GetInstallDir}
;AllowNoIcons=yes
DefaultGroupName=TimeCalculator
DisableStartupPrompt=yes
Compression=lzma
SolidCompression=yes
WizardImageFile=setup_2.bmp
WizardSmallImageFile=setup_1.bmp


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


[Files]
Source: "TimeCalculator.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: recursesubdirs
Source: "DataBaseEditor.exe"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: recursesubdirs
Source: "help\TimeCalculator.chm"; DestDir: "{app}"; CopyMode: alwaysoverwrite; Flags: recursesubdirs


[Tasks]
Name: desktopicon; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"


[Registry]
Root: HKLM; Subkey: SOFTWARE\TimeCalculator; Flags: dontcreatekey uninsdeletekey;


[Icons]
Name: "{group}\TimeCalculator"; Filename: "{app}\TimeCalculator.exe"; WorkingDir: "{app}"; IconFilename:"{app}\TimeCalculator.exe"
Name: "{group}\Справка"; Filename: "{app}\TimeCalculator.chm"
Name: "{group}\Удалить программу"; Filename: "{uninstallexe}"
Name: "{userdesktop}\TimeCalculator"; Filename: "{app}\TimeCalculator.exe"; WorkingDir: "{app}"; IconFilename:"{app}\TimeCalculator.exe"; Tasks: desktopicon


[Run]
Filename: "{app}\TimeCalculator.exe"; Description: "Запустить программу"; Flags: nowait postinstall skipifsilent
Filename: "{app}\TimeCalculator.chm"; Description: "Открыть справку"; Flags: shellexec nowait postinstall skipifsilent


[InstallDelete]
Type: files; Name: "{app}\TimeCalculator.exe"
Type: files; Name: "{app}\TimeCalculator.chm"
Type: files; Name: "{app}\DataBaseEditor.exe"


[UninstallDelete]
Type: files; Name: "{app}\TimeCalculator.exe"
Type: files; Name: "{app}\TimeCalculator.tcs"
Type: files; Name: "{app}\TimeCalculator.chm"
Type: files; Name: "{app}\DataBaseEditor.exe"


[Code]
var
    ValueExists: Boolean;
    
    
// функция обнаружения запущенного процесса
function IsProcessRunning(FileName: String): Boolean;
var
    objSWbemLocator, objSWbemServices: Variant;
begin
    try
        objSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
    except
        ShowExceptionMessage;
        Exit;
    end;
    objSWbemServices := objSWbemLocator.ConnectServer();
    objSWbemServices.Security_.ImpersonationLevel := 3;
    Result := (objSWbemServices.ExecQuery('SELECT * FROM Win32_Process WHERE Name="' + FileName + '"').Count > 0);
end;


// проверка ключа в реестре, если он есть - берём из него путь для установки
function GetInstallDir(const Default: String): String;
begin
    RegQueryStringValue(HKLM, 'SOFTWARE\TimeCalculator', 'path', Result);
    if Result <> '' then RemoveBackslash(Result) else Result := ExpandConstant('{pf}\TimeCalculator');
end;


// на этапе установки проверяем запущен ли определённый процесс, если запущен - отменяем установку и выводим месейдж
function InitializeSetup(): Boolean;
begin
    Result := not IsProcessRunning('TimeCalculator.exe');
  if not Result then MsgBoxEx(Application.Handle, 'Программа TimeCalculator запущена!'+ Chr(10)+'Закройте приложение выбрав пункт меню "Закрыть программу"'+ Chr(10)+'И повторите установку обновления.', 'Установка обновления отменена', $10, 0, 0);
end;


procedure RedesignWizardForm;
begin
    with TLabel.Create(nil) do
    begin
        Parent := WizardForm.WelcomePage;
        SetBounds(ScaleX(426), ScaleY(288), ScaleX(51), ScaleY(13));
        Caption := '© zzz';
    end;
    
    WizardForm.WelcomeLabel2.Height := ScaleY(207);
    WizardForm.RunList.Height := ScaleY(107);
end;


procedure InitializeWizard();
begin
    RedesignWizardForm;
end;


// если путь из ключа выбран - пропускаем страницу с выбором пути
function ShouldSkipPage(PageID: Integer): Boolean;
begin
    ValueExists := RegValueExists(HKLM, 'SOFTWARE\TimeCalculator', 'path');
    case PageID of
        wpSelectDir: Result := ValueExists;
        wpReady: Result := not ValueExists;
    end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
    case CurPageID of
        wpSelectTasks: if ValueExists then WizardForm.NextButton.Caption := SetupMessage(msgButtonNext) else WizardForm.NextButton.Caption := SetupMessage(msgButtonInstall);
    end;
end;


// на этапе деинсталяции проверяем запущен ли определённый процесс, если запущен - отменяем деинсталяцию и выводим месейдж
function InitializeUninstall(): Boolean;
begin
    Result := not IsProcessRunning('TimeCalculator.exe');
    if not Result then MsgBoxEx(Application.Handle, 'Программа TimeCalculator запущена!'+ Chr(10)+'Закройте приложение выбрав пункт меню "Закрыть программу"'+ Chr(10)+'И запустите процесс деинсталяции заново.', 'Деинсталяция отменена', $10, 0, 0);
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:53, 18-01-2014 | #1888


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


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

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


да, теперь работает всё как надо!
большое тебе человеческое спасибо saurn не знаю как по батюшки.
в чём был косяк полагаю спрашивать бесполезно...

Отправлено: 18:12, 18-01-2014 | #1889


Ветеран


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

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


Цитата novahudonoser:
в чём был косяк полагаю спрашивать бесполезно... »
В этом: DisableReadyPage=yes. Изначально в секции Setup был задан пропуск страницы готовности, это глобальный параметр.

Отправлено: 18:44, 18-01-2014 | #1890



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход