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

Компьютерный форум 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

 

Аватара для habib2302

Ветеран


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

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


мне кто нибудь ответит на мое сообщение????

-------
Помог? От "Полезное сообщение" не откажусь!!!


Отправлено: 16:49, 04-06-2013 | #571



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

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


Аватара для Johny777

Ветеран


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

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


habib2302, Сокрытие месседжбокса после удаления:

читать дальше »
Код: Выделить весь код
[code]
const
    ID_QUESTION = 65579;

function InitializeUninstall(): Boolean;
var
    ErrorCode: Integer;
begin
    if not UninstallSilent then
    begin
        Exec(ExpandConstant('{uninstallexe}'), '/SILENT', '', SW_SHOW, ewNoWait, ErrorCode);
        Exit;
    end;
    
    if MsgBoxEx(0, FmtMessage(SetupMessage(msgConfirmUninstall), ['{#SetupSetting("AppName")}'] ), SetupMessage(msgUninstallAppTitle), MB_YESNO, ID_QUESTION, 0) = IDYES then Result := True;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:11, 04-06-2013 | #572


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

Ветеран


Contributor


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

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


Цитата habib2302:
мне кто нибудь ответит на мое сообщение???? »
habib2302, на основе примера из шапки:
Код: Выделить весь код
const
    WM_CLOSE = $0010;

function SetTimer(hWnd: HWND; nIDEvent: UINT_PTR; uElapse: UINT; lpTimerFunc: Longint): UINT_PTR; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: HWND; uIDEvent: UINT_PTR): BOOL; external 'KillTimer@user32.dll stdcall';

var
    iTimer: UINT_PTR;

//////////////////////////////////////////////////////////////////////////////
procedure TimerProc(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD);
var
    hWindow: HWND;
begin
    hWindow := FindWindowByWindowName(FmtMessage(SetupMessage(msgUninstallAppFullTitle), ['{#SetupSetting("AppName")}']));
    if hWindow > 0 then
    begin
        PostMessage(hWindow, WM_CLOSE, 0, 0);
        KillTimer(0, iTimer);
    end;
end;

////////////////////////////////////////////////////////////////////
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
    case CurUninstallStep of
        usPostUninstall: iTimer := SetTimer(0, 0, 50, CallbackAddr('TimerProc'));
    end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:12, 04-06-2013 | #573


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


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

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


Подскажите функцию поиска папки по маске или по имени.

Отправлено: 12:02, 05-06-2013 | #574


Аватара для Johny777

Ветеран


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

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


Robby, по имени, с рекурсией:
читать дальше »
Код: Выделить весь код
procedure SearchForFolder(const RootFolder, SearchFolderName: String; var ResultPathArray: array of String);
var
    NewSearchPath: String;
    FindRec: TFindRec;
    Len: Integer;
begin
    NewSearchPath := AddBackslash(RemoveBackslash(RootFolder));

    if FindFirst(NewSearchPath + '*.*', FindRec) then
    try

        repeat
            if (FindRec.Name <> '.') and (FindRec.Name <> '..') then
            if FindRec.Attributes and FILE_ATTRIBUTE_DIRECTORY = FILE_ATTRIBUTE_DIRECTORY then
            begin
                if FindRec.Name = SearchFolderName then
                begin
                    Len := GetArrayLength(ResultPathArray);
                    SetArrayLength(ResultPathArray, Len+1);
                    ResultPathArray[Len] := NewSearchPath + FindRec.Name;
                end
                else
                SearchForFolder(NewSearchPath + FindRec.Name, SearchFolderName, ResultPathArray);
            end;
        until not FindNext(FindRec);

    finally
        FindClose(FindRec);
    end;
end;


procedure InitializeWizard();
var
    AArray: array of String;
    i: Integer;
begin
    SearchForFolder('C:\Program Files (x86)\CAPCOM', 'nativePC', AArray);
    
    for i := 0 to GetArrayLength(AArray)-1 do MsgBox(AArray[i], mbInformation, MB_OK);
end;
[/font]

по завершении входной массив содержит пути к папкам с искомым именем
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:23, 05-06-2013 | #575


Аватара для audiofeel

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


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

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


прошу протестировать простой установщик (отправил знакомому через файлообменник, не запускается пишет ошибка
"Divizion by zero
09:49:50
Runtime error
at 153:614
Invalid Opcode"
тут = http://file.sampo.ru/w287gd/

Отправлено: 10:43, 07-06-2013 | #576


Ветеран


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

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


audiofeel
читать дальше »
Погонял на 64-х разрядной семерке. Ошибок не замечено. Divizion by zero - нечто в скрипте делят на ноль, а это в свою очередь запрещено. Нужно смотреть во время отладки скрипта на той машине, где вылазиет ошибка.
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:33, 07-06-2013 | #577


Аватара для Tco 03

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


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

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


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

Отправлено: 19:16, 07-06-2013 | #578


Аватара для Johny777

Ветеран


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

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


Tco 03, если правильно понял:

читать дальше »
Код: Выделить весь код
[Languages]
Name: "en"; MessagesFile: "compiler:Languages\English.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"


[code ]
procedure InitializeWizard();
begin
  case ActiveLanguage() of
    'en': MsgBox('English', mbInformation, MB_OK);
    'ru': MsgBox('Russian', mbInformation, MB_OK);
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:59, 07-06-2013 | #579


Аватара для audiofeel

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


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

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


saurn,
Цитата saurn:
Divizion by zero - нечто в скрипте делят на ноль, а это в свою очередь запрещено. »
может это говорить о здоровье системы на которой тестилось, насчет
Цитата saurn:
Нужно смотреть во время отладки скрипта на той машине, где вылазиет ошибка. »
не выйдет у меня ни как

Отправлено: 22:03, 07-06-2013 | #580



Компьютерный форум 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




 
Переход