Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (25-09-2007 17:33): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
 

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно легко самим создавать диалоги, используя спец. дизайнер. И всё это абсолютно бесплатно! По сравнению с NullSoft (основной конкурент на бесплатной ниве) мне albel понравилась более интуитивно-понятная структура скрипта, простота в настройке.  
 
Последний релиз: 5.2.0 [19 сентября 2007 года]
История версий | скачать || скачать Preprocessor
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Английская справка для Inno Setup Preprocessor (ISPP) 5.0.xx
Скачать
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
[3 версия]  
Скачать | зеркало
[4 версия]  
Скачать | зеркало
[5 версия]  
Скачать | зеркало
[5.1 версия]  
Скачать | зеркало
 
Inno Setup Extensions Knowledge Base  
Скачать | зеркало
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать | Скриншот | Справка
Кроме визуального стиля Corona(WMP9) в инсталлятор по выбору пользователя добавляется: Проверка системы/минимальных требований. Шифрование. Деинсталляция неучтённых файлов. Подсчёт времени установки. Расширенный прогрессбар. Экран скриншота/справки. Screensaver, BMP или AVI-файл в фоновом окне. Проигрывание музыки в фоне и многое другое...
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы это исправить добавьте этот код.
Если вы захотите использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства по программированию в Inno Setup) для запуска инсталлятора то вам понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если вы хотите узнать какие ключи в реестр вносит та или иная программа (или игра) то Вам понадобится RegShot.



Дополнительные утилиты для Inno Setup



 
Последний релиз: 5.2.0 [21 сентября 2007 года]
Скачать | зеркало  
(как сказано в описании изменений, добавлена поддержка новых директив 5.2.0)
 
Русификатор
Скачать | зеркало


 
Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки (немного усечённый). Возможно подключение к TotalCommander или FAR с помощью MultiArc плагинов.
 
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.1.14
 
Последний релиз: 0.20 - Тестовая версия [27 августа 2007 года] New
Скачать | зеркало | зеркало


 
Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 5.1.6.9 [09 июля 2006 года]
Скачать 4.2 мб | обновление 3.1 мб
 
Русификатор отGloThin
Скачать с сайта GloThin | Зеркало | Зеркало | зеркало
Пароль: ruboard
Примечание: офф. сайт косо отображается в Oper`е.
 
Новое название проекта на сайте, похоже произошла замена ScriptMaker на:
 
Inno Script Generator

Последний релиз: 1.0.2.11 [7 Августа 2007 года]
Скачать | обновление | Изменения
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.1.13.
 
Примечание для всех участников
 
Длинные куски кода помещайте под тегом [more], дабы дать возможность знатокам Inno Setup прочитать сам вопрос, а не пролистывать бесконечно длинные листинги скриптов в посте.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 18:01 23-04-2007 | Исправлено: Nekt, 00:33 25-09-2007
maxdddca123

Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Sampron

Цитата:
Радиобаттоны не поддерживают свойство Transparent, и это исправить нельзя только цвет можно изменить.

А как менять цвет ?

Всего записей: 211 | Зарегистр. 14-12-2006 | Отправлено: 16:30 23-05-2007
Sero



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
maxdddca123

Цитата:
А как менять цвет ?

 
...Color := цвет
 
Добавлено:
Например:
 
var RadioButton: TRadioButton;
.....
.....
with RadioButton do begin
Color := clNavy
Parent := WizardForm
Top:=....
Left:=....
end
 
Добавлено:
Chuvakstepan

Цитата:
Не работает твой скрипт, даже не компилится

Я не тестировал!

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 18:30 23-05-2007
ZavadS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь. Как можно сделать это. Перед началом русификации нужно закрыть два процесса, эти же прочеси нужно опять запустить по окончании русификации. И такую же процедуру, но только уже во время удаления русификатора.

Всего записей: 69 | Зарегистр. 04-01-2007 | Отправлено: 01:17 24-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_Dobrov
Цитата:
Когда результат более $80000000, знак меняется на -, как это исправить?  
В самой функции ловушки и замена (...): Longword на Currency ничего не меняет  
-- задача оказалась весьма любопытной, хотя и не имеющей ничего общего с математикой "Исправить" знак не выйдет (по крайней мере пока разработчик не перейдет на более новую версию делфи). Этот "минус" на самом деле ... не совсем минус Даже если у переменной знак "поменялся", условие if Size > 0 будет ... истинным
 
Но задача все-таки имеет решение. И хотя, в силу кривизны математики, мне оно не очень нравится, но, как ни странно, удалось добиться вроде правильного подсчета даже для очень больших файлов.

Код:
 
[Setup]
AppName=My Program
AppVerName=My Program ver.1.5
DefaultDirName={pf}\My Program
 
[Code]
function CalcDirSize(const fromDir, fileMask: string; SubDirsAllow: Boolean): Extended;
var
  FSR, DSR: TFindRec;
  FindResult: Boolean;
  APath: string;
  Hi, Lo: Extended;
begin
  APath := AddBackslash(fromDir);
  FindResult := FindFirst(APath + fileMask, FSR);
  try
    while FindResult do
    begin
      if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then
        begin
          if FSR.SizeLow > 2147483647 then
            Lo:= FSR.SizeLow + 2147483647 + 2147483647 + 2
          else
            Lo:= FSR.SizeLow;
          Result := Result + Lo;
      (*  Hi:= FSR.SizeHigh;      // Надо так,
          Lo:= FSR.SizeLow;       // но так не работает
          If Hi < 0 Then Hi:= Hi + (65536*65536);
          If Lo < 0 Then Lo:= Lo + (65536*65536);
          Result := Result+((Hi * (65536*65536)) + Lo);  *)
        end;
      FindResult := FindNext(FSR);
    end;
    FindResult := FindFirst(APath + '*.*', DSR);
    while FindResult and SubDirsAllow do
    begin
      if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and
        not ((DSR.Name = '.') or (DSR.Name = '..')) then
{Recursion} Result:= Result + CalcDirSize(APath + DSR.Name, fileMask, SubDirsAllow);
      FindResult := FindNext(DSR);
    end;
  finally
    FindClose(FSR);
    FindClose(DSR);
  end;
end;
 
function InitializeSetup(): Boolean;
var
  res: Extended;
begin
  res:= CalcDirSize('C:\Temp', '*', True);
  MsgBox(FloatToStr(res)+ '', mbInformation, MB_OK);
end;
 


Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 02:45 24-05-2007
Victor_Dobrov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот более тупой вариант:
 
Function DirSize(const fromDir: String): Currency;
    var ArrOfFiles: TArrayOfString; St: String; errorCode: Integer;
Begin
    Exec(ExpandConstant('{cmd}'), ExpandConstant('/C dir /w /s >{tmp}\DirSize.lst'), ExpandConstant(fromDir), sw_Hide, ewWaitUntilTerminated, errorCode);
    LoadStringsFromFile(ExpandConstant('{tmp}\DirSize.lst'), ArrOfFiles);
    St:=ArrOfFiles[GetArrayLength(ArrOfFiles)-2];
    OemToCharBuff(St);
    StringChange(St, Chr($A0), '');
    Result:=StrToFloat(Trim(Copy(St, Pos('файлов', St)+8, Pos('байт', St)-2-(Pos('файлов', St)+7))));
End;
 
Procedure DirOnClick(Sender: TObject); var UserSelectDir: String; res: Integer;
    Begin
UserSelectDir:= WizardForm.DirEdit.Text
If BrowseForFolder('Выберите папку для подсчёта её размера:', UserSelectDir, True) then
    begin
        WizardForm.DirEdit.Text:= UserSelectDir
        res:= Trunc(DirSize(UserSelectDir)/(1024*1024))    //результат в Мб
        If res < 1000 then MsgBox(IntToStr(res)+ ' Mb', mbInformation, MB_OK) else
        MsgBox(FloatToStr(round(res/1024*1000)/1000)+ ' Gb', mbInformation, MB_OK)
    end;
End;
 
Procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
    Begin If CurPageID <> wpInstalling then Confirm:= False; End;
 
Procedure CurPageChanged(CurPageID: Integer);
Begin
    If CurPageID = wpWelcome then WizardForm.NextButton.OnClick(WizardForm.NextButton)
End;
 
Procedure InitializeWizard;
Begin
    WizardForm.DirBrowseButton.OnClick:= @DirOnClick
End;

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 03:02 24-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Victor_Dobrov -- тоже вариант. У меня система аглицкая, так что вживую проверить не смог, а перекраивать под себя поленился. Но на взгляд вполне работоспособный вариант. Только я бы посоветовал параметр /C заменить на /-C (для упрощения скрипта)
 
 
Добавлено:
boss911

Цитата:
MinVersion=0,5.01.2600sp2
.......................................
Если не правильно, то напиши плиз как надо  
-- не волнуйся, все правильно  
В этом варианте инсталлятор НЕ запустится (точнее выдаст предупреждение и отвалится) на следующих системах:


4.0.950 Windows 95  
4.0.1111 Windows 95 OSR 2 & OSR 2.1  
4.0.1212 Windows 95 OSR 2.5  
4.1.1998 Windows 98  
4.1.2222 Windows 98 Second Edition  
4.9.3000 Windows Me  
 
Windows NT versions:
 
4.0.1381 Windows NT 4.0  
5.0.2195 Windows 2000  
5.01.2600 Windows XP
or Windows XP 64-Bit Edition Version 2002 (Itanium)  
5.01.2600sp1 Windows XP SP1


Но начиная с 5.01.2600sp2 Windows XP SP2 все прекрасно будет работать (я так думаю)

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 03:22 24-05-2007 | Исправлено: Genri, 03:35 24-05-2007
marat shakirov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня вопрос появился. Теперь уже последний. Потерял пример задания переменных окружения. Мне надо задать 2 переменных и дописать PATH. И как при деинсталляции грамотно все это вычистить?

Всего записей: 14 | Зарегистр. 11-05-2007 | Отправлено: 09:02 24-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
marat shakirov
Майкрософт рекомендует

Цитата:
 
You can modify user environment variables by editing the following Registry key:
HKEY_CURRENT_USER \  Environment
                
You can modify system environment variables by editing the following Registry key:  
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 11:44 24-05-2007 | Исправлено: Genri, 11:46 24-05-2007
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно изменить порядок выполнения страниц чтобы сначала была страница с выбором компонентов а потом выбор папки установки?

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 12:10 24-05-2007
fty



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Глянь в личку, плиз.

Всего записей: 132 | Зарегистр. 13-05-2006 | Отправлено: 12:13 24-05-2007
Victor_Dobrov



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Проверка системных требований. Устранены все замечания. Добавил показ файловой системы дисков.
 
Вызов сведений из любой страницы; Проверка: версии Windows и Service Pack, оборудования, программы пользователя, системных папок, щелчок по компоненту в таблице открывает свойства.

Всего записей: 742 | Зарегистр. 27-09-2005 | Отправлено: 14:00 24-05-2007 | Исправлено: Victor_Dobrov, 19:35 24-05-2007
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
не волнуйся, все правильно

Спасибо!
 
Теперь вот вопрос такой: хочу, чтоб инсталлятор мог устанавливать только на XP SP2 и больше ни в какой системе, как правльно написать, может, совместить MinVersion и OnlyBelowVersion? Что вписать в OnlyBelowVersion?

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 17:34 24-05-2007
ZavadS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri  Этот код закрывает два процесса перед началом русификации. А как сделать код, который будет закрывать эти же процессы, но уже перед началом удаления русификатора?
 
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('oodcnt.exe', false) then
begin
  if MsgBox('Программа установки русификатора обнаружила, что программа'#13'для которой установится русификатор запушена в данный момент. '#13#13' Закрыть программу?'#13#13 +
    '"Да" - закроет и не сохранит измененные настройки в программе.' #13#13 +
    '"Нет" - продолжит установку без закрытия. (Настоятельно рекомендуется нажать Да)', mbError, mb_YesNo) = idYes then
begin
  KillTask('oodcnt.exe');
  Result := True;
  end else
  Exit;
  end;
  Result := True;
begin
If RunTask('oodtray.exe', false) then
begin
  KillTask('oodtray.exe');
  Result := True;
  end else
  Exit;
 end;
end;

Всего записей: 69 | Зарегистр. 04-01-2007 | Отправлено: 02:10 25-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911
Цитата:
чтоб инсталлятор мог устанавливать только на XP SP2 и больше ни в какой системе

 
MinVersion=0,5.01sp2  
OnlyBelowVersion=0,5.01sp3
 
Я знаю многих людей, кто не любит сервиспаки, но чтобы на столько?!
 
Добавлено:
ZavadS -- точно так же, только используя function InitializeUninstall(): Boolean; вместо function InitializeSetup(): Boolean;  
 
Ну и соответственно поменять или убрать диалоги.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 02:18 25-05-2007
boss911



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
MinVersion=0,5.01sp2  
OnlyBelowVersion=0,5.01sp3  

Хм, а чего выкинул сборку 2600 ? А так, что не правильно будет, ненадежней разве:

Код:
MinVersion=0,5.01.2600sp2
OnlyBelowVersion=0,5.01.2600sp3


Цитата:
Я знаю многих людей, кто не любит сервиспаки, но чтобы на столько?!

Не в этом дело, все дело в системных файлах конкретной системы. То есть продукт предназначается только для определенной системы, чтоб некоторые чудаки не запустили в не нужной среде!

Всего записей: 3699 | Зарегистр. 29-01-2005 | Отправлено: 03:47 25-05-2007
krez0n



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
подскажите как в зависимости от того какой компонент выбран показывать или скрывать следующую форму?
т.е. как получить значения списка компонентов, чтобы их можно было проверить?

Всего записей: 4 | Зарегистр. 18-09-2006 | Отправлено: 09:55 25-05-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
boss911
Цитата:
а чего выкинул сборку 2600 ?
-- Из хелпа:
Цитата:
If a build number is not specified or is zero, Setup will not check the build number.
-- т.е. если билд не указан, он не проверяется.  
В данном случае, я думаю тебе, тебе без разницы - указывать билд или нет
 
krez0n
function WizardSelectedComponents(const Descriptions: Boolean): String;
function IsComponentSelected(const Components: String): Boolean;

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 10:14 25-05-2007
krez0n



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Genri
а примера поконкретнее нет?

Всего записей: 4 | Зарегистр. 18-09-2006 | Отправлено: 10:17 25-05-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ZavadS

Цитата:
А как сделать код, который будет закрывать эти же процессы, но уже перед началом удаления русификатора?

Есть такой вариант:

Код:
 
Реагирование инсталлятора на класс окна запущенного приложения.  
Класс окна приложения можно определить программкой View Window (http://sottnick.narod.ru/). Внимание: программка может не работать в Windows XP при включении «красивостей», нужно отключить все визуальные эффекты для корректной работы программки.
Перед процессом установки программа не позволит инсталляцию файлов, если запущена «проверямая» программа (действия происходят непосредственно перед установкой).
 
function InitializeUninstall(): Boolean;
var
  s:string;
  h:Longint;
  begin
  Result:=True;
  h:=FindWindowByClassName('My-Program-WINDOW');
  If h<>0 then
  begin
  s:='Обнаружен запущенный экземпляр программы My_Program!' #13#13'Для запуска мастера удаления требуется закрыть его.';
  MsgBox(s, mbError, mb_Ok);
  Result:= False
end;
end;
//Выход программы деинсталляции при обнаружении запущенной программы с соответствующим сообщением.
 

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 10:52 25-05-2007
ZavadS



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri

Цитата:
точно так же, только используя function InitializeUninstall(): Boolean; вместо function InitializeSetup(): Boolean;

 
Я так делал. Запускаю удаление русификатора, выскакивает вот такая ошибка

Цитата:
Runtime Error (at 27:66):
 
Could not call proc.

 
Код
#include "SHFileOperation.iss"
 
[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallFilesDir={app}\Install_Rus
CreateAppDir=true
AlwaysRestart=true
 
[Tasks]
Name: src; Description: Backup
 
[Files]
Source: MyProg.exe; DestDir: {app}; BeforeInstall: CreateBackup; Flags: ignoreversion recursesubdirs createallsubdirs
Source: ..\..\Program Files\Inno Setup Scripting v5.0\Addons\Libraries\ISTask.dll; DestDir: {tmp}; Flags: dontcopy
 
[Code]
function MoveFile(const srcFile, destFile: PChar): Integer;
external 'MoveFileA@kernel32.dll stdcall';
 
procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
if IsTaskSelected('src') then
begin
  basePath := ExpandConstant('{app}');
    srcFile := ExpandConstant(CurrentFileName);
    shortPath := srcFile;
   StringChangeEx(shortPath, basePath, '', True);
   destFile := ExpandConstant('{app}\Install_Rus\Backup') + shortPath;
 ForceDirectories(ExtractFilePath(destFile));
 MoveFile(PChar(srcFile), PChar(destFile));
end;
end;
 
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
 if CurUninstallStep = usPostUninstall then
begin
  MoveDir(ExpandConstant('{app}\Install_Rus\Backup\'), ExpandConstant('{app}'));
  RemoveDir(ExpandConstant('{app}\Install_Rus\Backup\'));
  RemoveDir(ExpandConstant('{app}\Install_Rus\'));
end;
end;
 
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('corr.exe', false) then
begin
  if MsgBox('Программа установки русификатора обнаружила, что программа'#13'для которой установится русификатор запушена в данный момент. '#13#13' Закрыть программу?'#13#13 +
    '"Да" - закроет и не сохранит измененные настройки в программе.' #13#13 +
    '"Нет" - продолжит установку без закрытия. (Настоятельно рекомендуется нажать Да)', mbError, mb_YesNo) = idYes then
begin
  KillTask('corr.exe');
  Result := True;
  end else
  Exit;
  end;
  Result := True;
begin
If RunTask('pra.exe', false) then
begin
  KillTask('pra.exe');
  Result := True;
  end else
  Exit;
 end;
end;
 
 
function InitializeUninstall(): Boolean;
begin
If RunTask('corr.exe', false) then
begin
  if MsgBox('Программа установки русификатора обнаружила, что программа'#13'для которой удаляется русификатор запушена в данный момент. '#13#13' Закрыть программу?'#13#13 +
    '"Да" - закроет и не сохранит измененные настройки в программе.' #13#13 +
    '"Нет" - продолжит установку без закрытия. (Настоятельно рекомендуется нажать Да)', mbError, mb_YesNo) = idYes then
begin
  KillTask('corr.exe');
  Result := True;
  end else
  Exit;
  end;
  Result := True;
begin
If RunTask('pra.exe', false) then
begin
  KillTask('pra.exe');
  Result := True;
  end else
  Exit;
 end;
end;
 
 
 
 
 
 
 
 

Всего записей: 69 | Зарегистр. 04-01-2007 | Отправлено: 11:21 25-05-2007
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (25-09-2007 17:33): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru