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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-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] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



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

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

Отправлено: 08:52, 02-02-2015

 

Аватара для audiofeel

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


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

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


опять я тут со своими чек боксами. не могу "сделать" такое = при отмене создания папки в меню пуск, (т.е когда нажат чек бокс "не создавать папку") кнопка групп браузер бутон не активна, примеров насобирал штук 10. ни один не могу "воткнуть"
в кратце скрипт
Скрытый текст

procedure WizardFormBtnClick(hBtn: HWND);
var
Btn: TButton;

begin
case hBtn of
GroupBrowseButton: Btn := WizardForm.GroupBrowseButton;
end;
end;
Btn.OnClick(Btn);
BtnRefresh(hBtn);
end;

procedure GroupEditOnChange(Sender: TObject);
begin
GroupEditLabel.Caption := MinimizePathName(WizardForm.GroupEdit.Text, GroupEditLabel.Font, GroupEditLabel.Width);
end;

function NoStartIcon: boolean;
begin
Result := not BtnGetChecked(NoStartIconCheckBox);
end;

procedure CheckBoxesClick(Sender: TObject);
begin
case Sender of
NoStartIconLabel: BtnSetChecked(NoStartIconCheckBox, not BtnGetChecked(NoStartIconCheckBox));
end;
end;

procedure CreateButtons;
begin
GroupBrowseButton := BtnCreate(WizardForm.Handle, ScaleX(494), ScaleY(132), ScaleX(94), ScaleY(26), 'DirBrowseBtn.png', 0, False);
BtnSetEvent(GroupBrowseButton, BtnClickEventID, WrapBtnCallback(@WizardFormBtnClick, 1));
NoStartIconCheckBox := BtnCreate(WizardForm.Handle, ScaleX(25), ScaleY(235), ScaleX(18), ScaleY(18), 'CheckBox.png', 0, True);
end;



Отправлено: 18:36, 20-04-2015 | #521



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

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


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


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

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


Dodakaedr, там пока мало что реализованно, но если очень надо вот - ISExec.dll

Отправлено: 18:46, 20-04-2015 | #522


Аватара для Dodakaedr

Ветеран


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

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


VoLT, что за ошибка? Библа вообще рабочая?
Скрытый текст

Код: Выделить весь код
[Setup]
appname=app
AppVersion=1.0
DefaultDirName={pf}\app

[Files]
Source: "ISExec.dll"; Flags: dontcopy nocompression

[Code]
type
  TCancelFunc = procedure(var Cancel: Boolean);

procedure Exec(aEXEName: WideString; aVisible: Boolean; aCallback: TCancelFunc); external 'Exec@files:ISExec.dll stdcall';
procedure CallMe(var Cancel: Boolean);
begin
  Cancel := False;
end;

procedure InitializeWizard();
begin
  Exec(ExpandConstant('{src}\MyProg.exe'), True, @CallMe);
  //Exec('cmd.exe', True, @CallMe);
end;

-------
Inno Setup 5 Ultra Unicode


Отправлено: 20:23, 20-04-2015 | #523


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


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

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


Dodakaedr, ой спасибо за тест - разница в объявлении процедур
библиотека рабочая - а вот скрипт не поправлен - печаль ...
Правильно - так:
Код: Выделить весь код
type
  TCancelProc = function: Boolean
Перекачай ISExec.iss

Отправлено: 21:36, 20-04-2015 | #524


Аватара для PleaseTryAgain

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


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

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


Здравствуйте. Нужна помощь по работе с внешними dll'ками.
При установке нужно получать информацию о подключённом HID устройстве. Для этого решил использовать библиотеку hidapi.dll, а из неё нужна функция hid_enumerate(int vid, int pid). Функция возвращает указатель на структуру, содержащую информацию о HID устройствах.
Как я понял в inno script указателей нет, поэтому вопрос, можно ли использовать эту функцию? И если да, то какой указывать тип результата и каким образом его вообще получать?

Код: Выделить весь код
function GetInfo(vid: integer; pid: integer):  integer;
external 'hid_enumerate@files:hidapi.dll stdcall delayload';

procedure CurPageChanged(CurPageID: Integer);
Var
  vid: integer;
  pid: integer;
  res:  integer;
begin
  vid := 0;
  pid := 0;
  if CurPageId = wpWelcome then
      begin
        WizardForm.WelcomeLabel1.Caption := ExpandConstant('{cm:InstallPage_pageDescription_Caption1}')+#13#10+('{#MyAppName}');
        res := GetInfo(vid, pid);
      end

Отправлено: 21:41, 20-04-2015 | #525


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


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

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


PleaseTryAgain, напишите на дельфи или на си длл - в ней все функции

Отправлено: 21:44, 20-04-2015 | #526


Аватара для PleaseTryAgain

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


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

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


VoLT, библиотека на С написана

Отправлено: 22:04, 20-04-2015 | #527


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


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

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


PleaseTryAgain, я про обертку ...
а если использовать на чистую то вы правильно сделали что использовали integer (но для 64 битных длл нужно расширить до 8 знаков)
странно что юзаете stdcall вроде dll на си все юзают Cdecl

Отправлено: 22:09, 20-04-2015 | #528


Аватара для PleaseTryAgain

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


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

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


VoLT, благодарю, с заменой stdcall на cdecl программа заработала Х)


Код: Выделить весь код
res := GetInfo(vid, pid);
Я так понимаю, что раз функция возвращает указатель, то в переменную res записывается адрес, но как получить то что записано по этому адресу?

Отправлено: 22:31, 20-04-2015 | #529


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


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

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


PleaseTryAgain, почти никак) как вы и сказали в инно нет указателей

Отправлено: 10:12, 21-04-2015 | #530



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты 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




 
Переход