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

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

 

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


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

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


diman_21Ru, вот:
http://forum.oszone.net/post-2296199-1941.html

Отправлено: 15:45, 27-01-2014 | #1991



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

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


Ветеран


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

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


TAY50N
Ему нужен этот вариант. Обрезанный, с измененным родителем изображений.
читать дальше »
Код: Выделить весь код
[code]
const
    UNDEF_INDEX = -777;
    
    
function GetCursorPos(var lpPoint: TPoint): BOOL; external 'GetCursorPos@user32.dll stdcall';


var
    InfoPic: TBitmapImage;
    LastIndex: Integer;
    TempPath: String;
    
    
procedure ShowPicHint(const PicFilePath: String);
var
    pt: TPoint;
begin
    if not GetCursorPos(pt) then Exit;
    InfoPic.Bitmap.LoadFromFile(PicFilePath);
    InfoPic.SetBounds(ScaleX(245), ScaleY(42), ScaleX(166), ScaleY(165));
    InfoPic.Show;
end;


procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
    UndefPic: String;
begin
    if Index = -1 then Exit;
    if Index = LastIndex then Exit;
    try
        case TNewCheckListBox(Sender).ItemCaption[Index] of
            'Half-Life 2': UndefPic := 'Wasteland_Scanner_con.bmp';
            'Half-Life 2 Episode One': UndefPic := 'Strider_early2.bmp';
            'Half-Life 2 Episode Two': UndefPic := 'Cremator_poster.bmp';
            'Portal': UndefPic := 'Portal.bmp';
        else
            begin
                LastIndex := UNDEF_INDEX;
                InfoPic.Hide;
                Exit;
            end;
        end;
        if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
        ShowPicHint(TempPath + UndefPic);
    finally
        LastIndex := Index;
    end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
    InfoPic.Hide;
    LastIndex := -1;
end;


procedure InitInfo();
begin
    WizardForm.TypesCombo.Hide;
    WizardForm.ComponentsList.SetBounds(ScaleX(0), ScaleY(37), ScaleX(225), ScaleY(176));
    WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
    WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
    TempPath := AddBackslash(ExpandConstant('{tmp}'));
    LastIndex := UNDEF_INDEX;
    
    with TBevel.Create(WizardForm) do
    begin
      Parent := WizardForm.SelectComponentsPage;
      SetBounds(ScaleX(240), ScaleY(37), ScaleX(177), ScaleY(176));
      Shape := bsFrame;
    end;
    
    InfoPic := TBitmapImage.Create(WizardForm)
    with InfoPic do
    begin
        Parent := WizardForm.SelectComponentsPage;
        AutoSize := True;
    end;
end;


procedure InitializeWizard();
begin
    InitInfo();
end;
Хотя, если посмотреть сколько раз вопрос на эту тему был задан, и сколько раз на него ответили...

Отправлено: 15:53, 27-01-2014 | #1992


Аватара для diman_21Ru

Старожил


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

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


TAY50N , у меня она выходит на середину как бы мне можно тут все поменять т.к расширить низ верх и сделать попопам как тут ?

Последний раз редактировалось diman_21Ru, 30-01-2014 в 20:30.


Отправлено: 16:00, 27-01-2014 | #1993


Ветеран


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

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


Цитата diman_21Ru:
у меня она выходит на середину как бы мне можно тут все поменять т.к расширить низ верх и сделать попопам как тут ? »
Я код постом выше для кого выложил?

Отправлено: 16:01, 27-01-2014 | #1994


Аватара для diman_21Ru

Старожил


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

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


saurn ,ошибка выходит с deleteChk .

Отправлено: 16:07, 27-01-2014 | #1995


Ветеран


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

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


Цитата diman_21Ru:
ошибка выходит с deleteChk »
Жуть. Давайте свой скрипт с минимальным набором файлов

Отправлено: 16:12, 27-01-2014 | #1996


Аватара для diman_21Ru

Старожил


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

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


saurn http://rghost.ru/51965901 вот убрал deleteChk это чтобы не было ошибки

Отправлено: 16:16, 27-01-2014 | #1997


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


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

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


Цитата Nordek:
Код:
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
[Files]
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy
[code]
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
//**************************************************//
function InitializeSetup(): Boolean;
begin
If RunTask('WorldOfTanks.exe', false) then
begin
if MsgBox('Игра WorldOfTanks запущена. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
begin
KillTask('WorldOfTanks.exe');
Result:= True;
end else
Exit;
end;
Result:=True;
end; »
а не подскажите как ещё это сделать не окном, а отдельной странице после выбора компонентов
если процесс не выключен, то при нажатии далее не будет ничего происходить пока не выключишь процесс

Отправлено: 16:48, 27-01-2014 | #1998


Ветеран


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

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


Вложения
Тип файла: 7z iss.7z
(11.9 Kb, 11 просмотров)

diman_21Ru, скрипт во вложении.

Отправлено: 17:06, 27-01-2014 | #1999


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


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

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


Цитата innot20:
пока не выключишь процесс »
В смысле, чтоб процесс пользователю руками выключать надо было?
Попробуй так
читать дальше »
[code]
Код: Выделить весь код
const
    TH32CS_SNAPPROCESS = $2;
    INVALID_HANDLE_VALUE = -1;
    
type
    TPROCESSENTRY32 = record
        dwSize, cntUsage, th32ProcessID: DWORD;
        th32DefaultHeapID: Longint;
        th32ModuleID, cntThreads, th32ParentProcessID: DWORD;
        pcPriClassBase: Longint;
        dwFlags: DWORD;
        szExeFile: array [0..259] of char;
    end;

var Page:TOutputMsgWizardPage;

function CreateToolhelp32Snapshot(dwFlags, th32ProcessID: DWORD): THandle; external 'CreateToolhelp32Snapshot@kernel32.dll stdcall';
function Process32First(hSnapshot: THandle; var lppe: TPROCESSENTRY32): Boolean; external 'Process32First@kernel32.dll stdcall';
function Process32Next(hSnapshot: THandle; var lppe: TPROCESSENTRY32): Boolean; external 'Process32Next@kernel32.dll stdcall';
function CloseHandle(hObject: THandle): Boolean; external 'CloseHandle@kernel32.dll stdcall';


function IsProcessRunning(FileName: String): Boolean; //FileName - имя exe-файла процесса
var
    hProcessSnap: THandle;
    pe32: TPROCESSENTRY32;
    szExeFile: String;
begin
    hProcessSnap := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
    if hProcessSnap = INVALID_HANDLE_VALUE then Exit;
    pe32.dwSize := sizeof(pe32);
    if not Process32First(hProcessSnap, pe32) then Exit;
    while not Result and Process32Next(hProcessSnap, pe32) do
    begin
        szExeFile := '';
        while not (pe32.szExeFile[Length(szExeFile)] = #0) do szExeFile := szExeFile + pe32.szExeFile[Length(szExeFile)];
        Result := LowerCase(FileName) = LowerCase(szExeFile);
    end;
    CloseHandle(hProcessSnap);
end;


procedure InitializeWizard;
begin
 Page:=CreateOutputMsgPage(wpSelectComponents, "Внимание", "Игра WorldOfTanks запущена", "Игра WorldOfTanks запущена. Закройте, чтобы продолжить установку");
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
  if (CurPageID= Page.id) then
   begin
    if IsProcessRunning('WorldOfTanks.exe') then
     result:=false
    else
     result:=true;
   end
  else
   result:=true;
end;

Отправлено: 17:58, 27-01-2014 | #2000



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




 
Переход