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

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

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

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

Ветеран


Contributor


Сообщения: 1273
Благодарности: 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

 

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


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

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


Всем привет. Хочу добавить ярлык в обозреватель игр в Windows 7. Это уже, конечно, обсуждалось, однако, как бы я ни старался, не могу создать ярлык.

Делал по инструкции

Код: Выделить весь код
#define GDFBinary "{app}\GDF.dll"  
 
[Tasks] 
Name: Gameux; Description: "Добавить ссылки в Game Explorer"; GroupDescription: "Game Explorer:"; MinVersion: ,6.0.6000;  
 
[Files] 
Source: include\GDF.dll; DestDir: {app}; 
Source: include\GameuxInstallHelper.dll; DestDir: {app}; Flags: overwritereadonly 
 
[_Code] 
type 
TGUID = record D1: Cardinal; D2: Word; D3: Word; D4: Array [0..8] of Byte; end; 
  
function AddToGameExplorer(BinaryPatch: String; Path: String; InstallType: Integer; var GUID: TGUID): Cardinal; external 'AddToGameExplorerA@files:GameuxInstallHelper.dll stdcall setuponly';  
function RetrieveGUIDForApplication(BinaryPatch: String; var GUID: TGUID): Cardinal; external 'RetrieveGUIDForApplicationA@{app}\GameuxInstallHelper.dll stdcall uninstallonly';  
function RemoveFromGameExplorer(var GUID: TGUID): Cardinal; external 'RemoveFromGameExplorer@{app}\GameuxInstallHelper.dll stdcall uninstallonly';  
 
var GUID: TGUID;  
procedure CurStepChanged(CurStep: TSetupStep);  
var GDFBinary: String;  
  begin  
    if (CurStep = ssPostInstall) and IsTaskSelected('Gameux') then 
      begin  
        GDFBinary:=ExpandConstant('{#GDFBinary}');  
        AddToGameExplorer(GDFBinary, ExpandConstant('{app}'), 3, GUID);  
      end;  
  end; 
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  
var GDFBinary: String; GUID: TGUID;  
  begin  
    if (CurUninstallStep=usUninstall) then  
      begin  
        GDFBinary:=ExpandConstant('{#GDFBinary}');  
        RetrieveGUIDForApplication(GDFBinary, GUID);  
        RemoveFromGameExplorer(GUID);  
        UnloadDll(ExpandConstant('{app}\GameuxInstallHelper.dll'));  
      end;  
  end;
Естественно, подправив. Однако, на этапе компилляции выскакивает ошибка Duplicate identifier 'TGUID'

Порывшись, узнал, что это из-за версии компиллятора. Чтобы не менять версию, закомменторовал строчку type TGUID = record D1: Cardinal; D2: Word; D3: Word; D4: Array [0..8] of Byte; end;

Может ли это являться причиной моих неудач?

Конечно, есть также вероятность, что я неправильно сконструировал GDF.dll

Инструкции нормальной таки не нашел. Если такая имеется, то подскажите, где ее брать...

Отправлено: 23:35, 21-07-2013 | #831



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

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


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


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

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


saurn, да, юникодавая. Но она поддерживает некоторые функции, т.ч. я не хотел бы отказываться от нее...

P.S. последняя поправка проблему не решает. Ошибка на строке TGUID = record
- Duplicate identifier 'TGUID'

Отправлено: 00:38, 22-07-2013 | #832


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


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

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


saurn, ох, ковыряю уже давно...Явно что-то там не так)

Отправлено: 00:54, 22-07-2013 | #833


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


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

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


saurn, спасибо, проверю!

saurn, не создается, зараза...

Отправлено: 01:17, 22-07-2013 | #834


Ветеран


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

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


adelina.dragonborn@vk, а так:
читать дальше »
Код: Выделить весь код
[Code]
#define A = (Defined UNICODE) ? "W" : "A"
#define GDFBinary "{app}\GDF.dll"

type
    TGUID_ID = record
      DATA1: Cardinal;
      DATA2: Word;
      DATA3: Word;
      DATA4: Array [0..8] of Byte;
    end;


function AddToGameExplorer(BinaryPatch: String; Path: String; InstallType: Integer; var GUID: TGUID_ID): Cardinal; external 'AddToGameExplorer{#A}@files:GameuxInstallHelper.dll stdcall setuponly';
function RetrieveGUIDForApplication(BinaryPatch: String; var GUID: TGUID_ID): Cardinal; external 'RetrieveGUIDForApplication{#A}@{app}\GameuxInstallHelper.dll stdcall uninstallonly';
function RemoveFromGameExplorer(var GUID: TGUID_ID): Cardinal; external 'RemoveFromGameExplorer@{app}\GameuxInstallHelper.dll stdcall uninstallonly';


var
    GUID: TGUID_ID;

    
procedure CurStepChanged(CurStep: TSetupStep);
var
    GDFBinary: String;
begin
    case CurStep of
        ssPostInstall:
        begin
            if isTaskSelected('Gameux') then
            GDFBinary:=ExpandConstant('{#GDFBinary}');
            AddToGameExplorer(GDFBinary, ExpandConstant('{app}'), 3, GUID);
        end;
    end;
end;


procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
    GDFBinary: String;
    GUID: TGUID_ID;
begin
    case CurUninstallStep of
        usUninstall:
        begin
            GDFBinary:=ExpandConstant('{#GDFBinary}');
            RetrieveGUIDForApplication(GDFBinary, GUID);
            RemoveFromGameExplorer(GUID);
            UnloadDll(ExpandConstant('{app}\GameuxInstallHelper.dll'));
        end;
    end;
end;

Последний раз редактировалось saurn, 22-07-2013 в 02:15.

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

Отправлено: 02:10, 22-07-2013 | #835


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


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

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


Цитата Johny777:
добавим следующее (красным выделил имплиментацию новой страницы) »
Спасибо огромное, хотя это я и так понял... этот принцип... но загвоздка в том, что у нас появляется 2 "if PrevCurPageID=wpSelectDir" - первое IF и третье... и получается билиберда... я решил это следующим способом... я пришил эту функцию к Кнопке "Далее":
Код: Выделить весь код
procedure OKBtnClick(h:HWND);
begin
  WizardForm.NextButton.OnClick(WizardForm.NextButton);
begin HideWelcomePage; HideSelectDirPage;  ShowSelectComponentsPage;
     end;
  end;
Цитата Johny777:
необходимо удалить директиву DisableReadyPage=yes из раздела [Setup] »
А причем тут ReadyPage? Мне же нужен wpSelectComponents = 7;
Объясните пожалуйста.

Это все (вышеописанное) я уже сделал... а как добавить то само поле с выбором компонентов... ему же надо задать координаты на форме и его размер... как его описать в скрипте?

Отправлено: 08:54, 22-07-2013 | #836


Аватара для nik1967

Старожил


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

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


mat_y@vk,
Как вариант
Код: Выделить весь код
[Setup]
AppName=Приложение
AppVerName=Приложение
DefaultDirName={pf}\123
OutputDir=.

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

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: Game; Description: Game_Component;
Name: Game\Lokal; Description: Game_Local_Component; Flags: exclusive; Types: full;
Name: Game\Full; Description: Game_Full_Component; Flags: exclusive; 

[_Code]
var
  NewForm: TWizardPage;

procedure InitializeWizard();                       
begin
  NewForm:= CreateCustomPage(wpSelectComponents, 'Выбор компонентов', 'Что нибудь ещё');
  with WizardForm.ComponentsList do begin
    Parent:= NewForm.Surface;
  end;
end;

А, не. Ты же делаешь на ботве. Советую скачать Need for Speed™ Undercover.iss v 2.4c [Final] от YURSHAT модернизированный мной, и посмотреть, как там реализованы компоненты.

Лишние символы
Код: Выделить весь код
procedure OKBtnClick(h:HWND);
begin
  WizardForm.NextButton.OnClick(WizardForm.NextButton);
begin HideWelcomePage; HideSelectDirPage;  ShowSelectComponentsPage;
     end;
  end;

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


Последний раз редактировалось nik1967, 22-07-2013 в 10:42.

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

Отправлено: 10:13, 22-07-2013 | #837


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


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

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


saurn, гениально! It Works! Сам бы никогда не додумался)

Теперь другая проблема...Resource Hacker не слушается. Может есть другой аналог-заменитель? Restorator боюсь ставить - один раз он уже сыграл со мной злую шутку.

Последний раз редактировалось adelina.dragonborn@vk, 22-07-2013 в 11:26.


Отправлено: 11:12, 22-07-2013 | #838


Ветеран


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

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


adelina.dragonborn@vk, оффтоп, ну да ладно...
читать дальше »
О рестораторе плохого не скажу, пользуюсь только им уже невесть сколько лет. Есть еще PE Explorer. Из бесплатных, пожалуй, только Resource Hacker, - а в чем проблема, он тоже справится с этой задачей.

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


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


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

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


saurn, проблемы:
1) отсутствует оценка игры (хотя в xml-е присутствуют оценки - <Rating ratingSystemID="{768BD93D-63BE-46A9-8994-0B53C4B5248F}" ratingID="{78D8CC82-372F-44e4-B70C-8944DB7BCC24}">
2) Издатель и разработчик присутствуют, однако должна быть ссылка на них - ее нету (хотя ссылка прописана в xml-е - <Publisher URI="http://www.activision.com">Activision, Inc.</Publisher>
3) В GDF-Maker'e есть опция - Thumbnail (логотип игры). Как его запихать в dll? Action -> Add new resource -> выбираю изображение -> а дальше куда его? (Type, name в частности) - Решено.
4) Задана папка сейвов (Saved Game Folder), где она должна отображаться в проводнике игр?

P.S. Если есть xml - был бы благодарен, если поделитесь

Последний раз редактировалось adelina.dragonborn@vk, 22-07-2013 в 12:49.


Отправлено: 12:20, 22-07-2013 | #840



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




 
Переход