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

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

 

Ветеран


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

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


Цитата habib2302:
т.е ты имеешь виду перевести info.rtf »
читать дальше »
Ага, именно это имею ввиду, и не только. Эти вопросы подробно описаны в справке, сотни раз пережеванны на форумах и есть в стандартных примерах. Большинство ответов у вас под рукой. Я начал свое знакомство с Inno с разбора буржуйских каракулей в справке и анализа коробочных примеров. Советую вам поступить так же - большинство вопросов отпадут сами, да и кругозор расширится. Дело не в том, что кто-то не хочет вам помогать, но в том, что порой совсем не хочется тратить время, на объяснение азов, человеку, который не впервый раз открыл Inno Setup. В названии данного форума нет слов "Сделайте за меня", здесь лишь помогают, на безвоздмездной основе, по мере своих возможностей. И помогут, если вы не будете каждый раз задавать вопросы, ответы на которые вам были даны ранее.
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:17, 30-06-2013 | #721



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

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


Аватара для habib2302

Ветеран


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

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


Цитата saurn:
Цитата habib2302:
переводился в зависимости от выбраного языка»
Как обычно самым простым способом, при помощи секции CustomMessages
Код: Выделить весь код
[Languages]
Name: Russian; MessagesFile: compiler:Languages\Russian.isl
Name: English; MessagesFile: compiler:Languages\English.isl

[CustomMessages]
Russian.MsgUnins=Текст сообщения на русском
English.MsgUnins=Текст сообщения на буржуйском
»
не работает.как было

так и осталось!!!

Отправлено: 17:55, 30-06-2013 | #722


Ветеран


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

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


Цитата habib2302:
не работает »
И не будет, если просто воткнуть строчки в скрипт и ждать, что они сами волшебным образом пропишутся везде, где нужно))
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
AppId=wwwwwwwwwwwwww

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

[CustomMessages]
Russian.MsgUnins=Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?
English.MsgUnins=Before installation it is necessary to remove the previous version of the app. Continue?

Russian.Failed=Удаление завершилось неудачей. Бывай!
English.Failed=Removal came to the end with failure. Happen!

[code]
function UninstallMyApp(): Boolean;
var
    Buff: String;
    i: Integer;
begin
    Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
    if not Result then Result := not FileExists(RemoveQuotes(Buff));
    if not Result then if MsgBox(CustomMessage('MsgUnins'), mbError, MB_YESNO) = IDYES then
    try
        Exec(RemoveQuotes(Buff), '', ExtractFilePath(RemoveQuotes(Buff)), SW_SHOW, ewWaitUntilTerminated, i);
    finally
        Result := not RegQueryStringValue( HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1', 'UninstallString', Buff );
        if not Result then MsgBox(CustomMessage('Failed'), mbError, MB_OK);
    end;
end;



function InitializeSetup(): Boolean;
begin
    Result := UninstallMyApp();
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:29, 30-06-2013 | #723


Ветеран


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

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


Johny777, вариант с таймером оказался не жизнеспособен: память утекает, как в трубу.

Отправлено: 15:08, 01-07-2013 | #724


Аватара для Dinvin4ester

Старожил


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

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


Ребята сильно не пинайте, но у меня опять возник вопрос - имею вот такое
Код: Выделить весь код
[Files]
Source: iconka.ico; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs
Source: InstallFiles\*; Flags: dontcopy
Source: "E:\Приколы\Игры\Flaming Ball\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdir
Вот эта папка - InstallFiles ставится вместе с игрой . Не подскажите как убрать ?

Отправлено: 15:35, 01-07-2013 | #725


Ветеран


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

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


Dinvin4ester
Код: Выделить весь код
Source: InstallFiles\*; DestDir: {tmp}; Flags: deleteafterinstall;
Хотя она и с флагом dontcopy не должна копироватся в папку установки...

Последний раз редактировалось saurn, 01-07-2013 в 16:06.


Отправлено: 16:01, 01-07-2013 | #726


Старожил


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

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


Dinvin4ester
Source: InstallFiles\*; Flags: dontcopy
это временные файлы установщика они не как не могут устанавливаться в app каталог

Отправлено: 16:12, 01-07-2013 | #727


Аватара для Johny777

Ветеран


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

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


saurn,
Цитата saurn:
вариант с таймером оказался не жизнеспособен: память утекает, как в трубу. »
Вот код. Что с работающим таймером, что без под конец установки процесс занимает 2700+ кб. Дело не в таймере:
Под себя при создании он берёт 1 раз 14 кб
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application



[Files]
Source: {fonts}\*; DestDir: {app}; Flags: external
Source: {fonts}\*; DestDir: {app}; Flags: external
Source: {fonts}\*; DestDir: {app}; Flags: external

[code  ]
type
    TFNTimerProc = Longint;
    
const
    TIMER_ID = 777;

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



procedure TimerProc(hwnd: HWND; uMsg: UINT; idEvent: UINT_PTR; dwTime: DWORD);
begin
    WizardForm.CancelButton.Enabled := FileExists('C:\msdia80.dll');
end;


procedure CurStepChanged(CurStep: TSetupStep);
begin
    case CurStep of
        ssInstall: SetTimer(WizardForm.Handle, TIMER_ID, 30, CallbackAddr('TimerProc'));

        ssPreInstall: KillTimer(WizardForm.Handle, TIMER_ID);
    end;
end;


procedure DeinitializeSetup();
begin
    KillTimer(WizardForm.Handle, TIMER_ID);
end;

И я не знаю какой таймер ты используешь. Я стандартным TTimer-м не пользуюсь
Кстати есть ещё высокоскоростной таймер MMTimer (мультимедийный), который работает в отдельном потоке без задержки, но он в твоём случае думаю неуместен

Последний раз редактировалось Johny777, 01-07-2013 в 16:51.

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

Отправлено: 16:46, 01-07-2013 | #728


Ветеран


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

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


Johny777, спасибо. Дело было именно в таймере, просто я реализовал его не верно.Точнее не так.
читать дальше »
Код: Выделить весь код
procedure Timer(Sender: TObject);
        begin
        ...
        end;
        
        ...
        Timer := TTimer.Create(nil);
        with Timer do
        begin
            Enabled := True;
            Interval := 5;
            OnTimer := @Timer;
        end;
        ...

Вот, как раз стандартный TTimer я и пользовал))

UPD:
А виноват действительно был не таймер. Нашел причину утечки памяти.

Последний раз редактировалось saurn, 01-07-2013 в 18:08.


Отправлено: 16:50, 01-07-2013 | #729


Аватара для Dinvin4ester

Старожил


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

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


Теперь такая ошибка - http://i46.fastpic.ru/big/2013/0701/...6ebac13f77.png
сам архив - http://sendfile.su/833359 . В том то и дело что вместе с игрой устанавливаются папки , но в них ничего нет .

Последний раз редактировалось Dinvin4ester, 01-07-2013 в 19:54.


Отправлено: 19:41, 01-07-2013 | #730



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




 
Переход