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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Sero



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

Цитата:
Ребята, помогите, плиз! Нужно, чтоб секция [Registry] обработалась (вносились данные в реестр) после [Run], даже, если выбрана галка 'postinstall'. Реально?  
 
Ситуация такая, что в секции [Run], выполняется некий *.exe с ключами, так программа себя регистрирует в тихом режиме, так вот эта регистрация перезаписывает значения реестра, которые указаны у меня в [Registry].  
 
Сразу скажу, что выполнения команды regedit /s settings.reg, после выполнения всех команд запусков, не выход, так как значения реестра имеют переменные (пути к файлам и т.д.).  

 
На эту тему!
 
А RegWrite.exe - та программа которая перезаписывает значения реестра, которые указаны у тебя в [Registry].  
 
Я сделал так чтобы сначала запускалясь программа а потом записывались значения реестра!

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



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

Цитата:
А RegWrite.exe - та программа которая перезаписывает значения реестра, которые указаны у тебя в [Registry].  
 
Я сделал так чтобы сначала запускалясь программа а потом записывались значения реестра!

Я теперь понял! Но, что будет, если будет так:

Код:
[Files]
Source: Prog.exe; DestDir: {app}; Flags: ignoreversion
 
[Cоde]  
procedure regwrite;  
begin  
RegWriteStringValue(HKLM, 'Software\Test',  
'ValueName','ValueData');  
end;  
 
[Run]
Filename: {app}\Prog.exe; Parameters: /install; Flags: waituntilterminated; StatusMsg: Регистрация компонентов; AfterInstall: regwrite
Filename: {app}\Prog.exe; Description: Запустить программу; Flags: nowait postinstall skipifsilent

Я так понял, что данные в реестр внесутся при уже запущенной проге, если конечно будет выбрана птица 'postinstall', тогда результата не будет! И что это за ветка тут указана:

Код:
RegWriteStringValue(HKLM, 'Software\Test',

- куда перезаписывать\вносить данные, а если у меня по всем веткам реестра требуется внести данные?

Всего записей: 3703 | Зарегистр. 29-01-2005 | Отправлено: 01:29 19-06-2007
NightW0lf



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

Цитата:
NightW0lf, у тебя есть инсталляция >  русификатор на оригинал программы Inno Setup.  
 
Он у тебя зашифрован на присутствие файла: "WwW.ALL-SofT.NeT.RU - Team.nfo". Так вот без него, он у тебя не запускается. Но вот у меня есть замечание:  
 
1) Я удалил "WwW.ALL-SofT.NeT.RU - Team.nfo", сработала мол защита, "MD5 Хеш неверен".  
2) После этого действия программа должна прекратить установку, но после нажатия кнопки "ОК", она запускается и всё как обычно.  
 
3) У меня почему то защиты срабатывает намертво! Всё работает чётко!. Вопрос: С чем это может быть связано?

Да я знаю что есть такая проблемка, я просто кое что напутал с Result:=.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 02:14 19-06-2007
Forslay



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

Цитата:
Да я знаю что есть такая проблемка, я просто кое что напутал с Result:=.
Так спешу сообщить, что после кое какого то изменения в конфиге, (я его уже точно не вспомню). У меня такая же теперь трабла, как у тебя. Я надеюсь ты знаешь что сделать? Опиши пожалуйста причину!
 
 
 

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 02:43 19-06-2007
Chuvakstepan



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Парни!
Я обнаружил крутую функцию в программке XnView. Так вот там есть инструмент для создания слайдшоу из картинок в exe и scr файлы. Есть там эффекты переходов, и прочее (я еще недоконца разобрался). Появилась идея - как запустить exe в фоне во время инсталляции (заменить стандартный способ применения слайдшоу)

Всего записей: 202 | Зарегистр. 29-01-2007 | Отправлено: 09:30 19-06-2007
Forslay



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Chuvakstepan, Я к сожлению уже уезжаю, так и не разобравшись в Inno setup до конца, хотя очень затягивает . Выражаю тебе благодарность за отзывчивость и помощь моему проекту. "... и всем-всем-всем!"
Финальный инсталлятор всё же вышел таким, каким я его хотел видеть.
 
Скрины моего инстала.

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 10:37 19-06-2007 | Исправлено: Forslay, 11:23 19-06-2007
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Кто-нибудь помогите пожалуйста. Совсем запутался. Как в этот код добавить проверку операционной системы. И как добавить символ к дискам \. Т.е С: на C:\
 
[Setup]
AppName=SystemTest
AppVerName=SystemTest <Version>
CreateAppDir=false
 
[Files]
Source: get_hw_caps.dll; Flags: dontcopy
 
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
 
[Code]
const oneMB = 1024*1024; BufferLen = 50;
type TMemoryStatus = record dwLength, dwMemoryLoad, dwTotalPhys, dwAvailPhys, dwTotalPageFile, dwAvailPageFile, dwTotalVirtual, dwAvailVirtual: Longint; end;
var Memory: TMemoryStatus; FreeMB, TotalMB: Cardinal; VolumeSerialNo, MaxComponentLength, FileSystemFlags: Longint; i: Integer; VolumeName, FileSystemName: String; ListBox: TListBox;
ProcessorName: string;
Processor, VideoCardPanel, AudioCardPanel, RAMPanel, PageFilePanel: TMemo;
ProcessorNamePanel, VideoCardNamePanel, AudioCardNamePanel, RAMTotalPanel, PageFileTotalPanel: TMemo;
ProcessorMHZ: Cardinal;
StaticText, StaticText2: TNewStaticText;
SysTestPage: TWizardPage;
Text: TNewStaticText;
Memo: TMemo;
 
procedure GlobalMemoryStatus(var lpBuffer: TMemoryStatus);
  external 'GlobalMemoryStatus@kernel32.dll';
 
function GetVideoCardName(): PChar;
  external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';
 
function GetSoundCardName(): PChar;
  external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';
 
function GetHardDriveFreeSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDriveName(hdd: Integer): PChar;
  external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
 
function GetHardDriveTotalSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDrivesCount(): Integer;
  external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';
 
function GetSoundCards(): Integer;
  external 'hwc_GetSoundCards@files:get_hw_caps.dll stdcall';
 
function GetSystemPage(): Integer;
  external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
 
function GetSystemPhys(): Integer;
  external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
 
function GetVidMemLocal(): Integer;
  external 'hwc_GetVidMemLocal@files:get_hw_caps.dll stdcall';
 
function GetSystemMetrics(nIndex: Integer):Integer;
  external 'GetSystemMetrics@user32.dll stdcall';
 
function GetVolumeInformation(PathName, VolumeName: PChar; VolumeNameSize, VolumeSerialNumber, MaxComponentLength, FileSystemFlags: Longint; FileSystemName: PChar; FileSystemNameSize: Longint): Longint;
  external 'GetVolumeInformationA@kernel32.dll stdcall';
 
function DelSp(String: String): String; // Удаление начальных и конечных пробелов
    begin while (Pos(' ', String) =1) do Delete(String,1,1) while (Copy(String, Length(String),1)=' ') do Delete(String,Length(String),1) Result:= String end;
 
function MorG(MB, onlyMB: Integer): String; // Значение в строку объёма Мб/Гб (Гб округлим до 3-ёх знаков после запятой)
    begin if (MB < 1000) or (onlyMB > 0) then Result:= IntToStr(MB)+ 'Мб' else Result:= FloatToStr(round(MB/1024*1000)/1000)+ 'Гб' end;
 
procedure ListBoxOnClick(Sender: TObject);
    begin for i:= 0 to ListBox.Items.Count-1 do if ListBox.Selected[i] then WizardForm.DirEdit.Text:= Copy(ListBox.Items[i],1,1) +Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text)); end;
 
procedure InitializeWizard();
begin
  RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', 'ProcessorNameString', ProcessorName);
  RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', '~MHz', ProcessorMHZ);
  GetVidMemLocal;
  GetSoundCards;
  GlobalMemoryStatus(Memory);
 
  SysTestPage := CreateCustomPage(wpWelcome, 'Аппаратное обеспечение', 'Программа установки обнаружила следующие необходимые компоненты');
 
  StaticText := TNewStaticText.Create(SysTestPage);
  with StaticText do
  begin
    Parent := SysTestPage.Surface;
    Caption := 'Все компоненты соответствуют требованиям программы.';
    StaticText.Font.Color:=clGreen;
    Left := 0;
    Top := 0;
    AutoSize := True;
  end;
 
  StaticText2 := TNewStaticText.Create(SysTestPage);
  with StaticText2 do
  begin
    Parent := SysTestPage.Surface;
    Caption := 'Когда Вы будете готовы продолжить установку, нажмите «Далее».';
    Left := 0;
    Top := 220;
    AutoSize := True;
  end;
 
//******************************************* [Начало - Процессор] ***************************************************//
 
  Processor := TMemo.Create(SysTestPage);
  with Processor do
  begin
    Text := ' Процессор';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(0);
    Top := ScaleY(30);
    Width := ScaleX(100);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $EEEEEE;
  end;
 
  ProcessorNamePanel := TMemo.Create(SysTestPage);
  with ProcessorNamePanel do
  begin
    Text := ' ' + DelSp(ProcessorName) + ' ~' + IntToStr(ProcessorMHZ) + ' MHz';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(104);
    Top := ScaleY(30);
    Width := ScaleX(313);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $CCFFCC;
  end;
 
//******************************************* [Конец - Процессор] ****************************************************//
 
 
//******************************************* [Начало - Видеоадаптер] ************************************************//
 
  VideoCardPanel := TMemo.Create(SysTestPage);
  with VideoCardPanel do
  begin
    Text := ' Видеоадаптер';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(0);
    Top := Processor.Top + 27;
    Width := ScaleX(100);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $EEEEEE;
  end;
 
  VideoCardNamePanel := TMemo.Create(SysTestPage);
  with VideoCardNamePanel do
  begin
    Text := ' ' + DelSp(GetVideoCardName) + ', '+ MorG(round(GetVidMemLocal/oneMB/64)*64,1) + ', ' + IntToStr(GetSystemMetrics(0)) + 'x' +IntToStr(GetSystemMetrics(1));;
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
     Left := ScaleX(104);
    Top := VideoCardPanel.Top;
    Width := ScaleX(313);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $CCFFCC;
  end;
 
//******************************************* [Конец - Видеоадаптер] *************************************************//
 
 
//******************************************* [Начало - Звуковая карта] **********************************************//
 
  AudioCardPanel := TMemo.Create(SysTestPage);
  with AudioCardPanel do
  begin
    Text := ' Звуковая карта';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(0);
    Top := VideoCardPanel.Top + 27;
    Width := ScaleX(100);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $EEEEEE;
  end;
 
  AudioCardNamePanel := TMemo.Create(SysTestPage);
  with AudioCardNamePanel do
  begin
    Text := ' ' + DelSp(GetSoundCardName) + ' (рекомендуется Creative X-Fi)';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(104);
    Top := AudioCardPanel.Top;
    Width := ScaleX(313);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $CCFFCC;
  end;
 
//******************************************* [Конец - Звуковая карта] ***********************************************//
 
 
//******************************************* [Начало - ОЗУ] *********************************************************//
 
  RAMPanel := TMemo.Create(SysTestPage);
  with RAMPanel do
  begin
    Text := ' ОЗУ';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(0);
    Top := AudioCardPanel.Top + 27;
    Width := ScaleX(100);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $EEEEEE;
  end;
 
  RAMTotalPanel := TMemo.Create(SysTestPage);
  with RAMTotalPanel do
  begin
    Text := ' ' + MorG(round(Memory.dwTotalPhys/oneMB/64)*64,1) + ' всего, ' + MorG(Memory.dwAvailPhys/oneMB,1) +' свободно, ' + MorG((Memory.dwTotalPhys - Memory.dwAvailPhys)/oneMB,1) +' используется';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(104);
    Top := RAMPanel.Top;
    Width := ScaleX(313);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $CCFFCC;
  end;
 
//******************************************* [Конец - ОЗУ] **********************************************************//
 
 
//******************************************* [Начало - Файл подкачки] ***********************************************//
 
  PageFilePanel := TMemo.Create(SysTestPage);
  with PageFilePanel do
  begin
    Text := ' Файл подкачки';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(0);
    Top := RAMPanel.Top + 27;
    Width := ScaleX(100);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $EEEEEE;
  end;
 
  PageFileTotalPanel := TMemo.Create(SysTestPage);
  with PageFileTotalPanel do
  begin
    Text := ' '+MorG(GetSystemPage,1)+' всего, ' + MorG((Memory.dwTotalPageFile - Memory.dwAvailPageFile)/oneMB,0) + ' занято системным кэшем';
    Alignment := taLeftJustify;
    Parent := SysTestPage.Surface;
    Left := ScaleX(104);
    Top := PageFilePanel.Top;
    Width := ScaleX(313);
    Height := ScaleY(22);
    ReadOnly := True;
    Color := $CCFFCC;
  end;
 
//******************************************* [Конец - Файл подкачки] ************************************************//
 
 ListBox:= TListBox.Create(WizardForm)
 with ListBox do begin
    Color:= $EEEEEE; Font.Size:= 10; Font.Name:= 'Tahoma'; Font.Style:=[fsBold]; Parent:= WizardForm.SelectDirPage; OnClick:= @ListBoxOnClick; Top:= WizardForm.DirEdit.Top +WizardForm.DirEdit.Height +ScaleY(30); Width:= WizardForm.DirBrowseButton.Left + WizardForm.DirBrowseButton.Width - WizardForm.DirEdit.Left; Height:= WizardForm.DiskSpaceLabel.Top -Top -9;
    FileSystemName:= StringOfChar(' ', BufferLen); VolumeName:= StringOfChar(' ', BufferLen);
    for i:=0 to GetHardDrivesCount-1 do begin
    GetSpaceOnDisk(GetHardDriveName(i), True, FreeMB, TotalMB); GetVolumeInformation(GetHardDriveName(i), VolumeName, BufferLen-1, VolumeSerialNo, MaxComponentLength, FileSystemFlags, FileSystemName, BufferLen-1);
    Items.Add(Copy(Uppercase(GetHardDriveName(i)),0,2)+ Copy('   ',0,14-Length(MorG(TotalMB,0)))+ MorG(TotalMB,0)+ Copy(' всего, ',0,17-Length(MorG(FreeMB,0)))+ MorG(FreeMB,0)+ Copy(' (0',0,4-Length(IntToStr(round(FreeMB/TotalMB*100)))) + FloatToStr(round(FreeMB/TotalMB*100))+ '%) свободно, '+ FileSystemName); end;
 end;
   with TNewStaticText.Create(WizardForm) do begin Top:= WizardForm.DirEdit.Top +WizardForm.DirEdit.Height +ScaleY(8); Caption:='Список локальных дисков, присутствующих в системе:'; Parent:= WizardForm.SelectDirPage; end;
end;
 
procedure CurPageChanged(CurPageID: Integer);
begin
if  CurPageID = SysTestPage.ID then
 
   if ProcessorMHZ < 3800 then //Минимальное значение частоты в MHz
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям программы.';
    StaticText.Font.Color := clRed;
    ProcessorNamePanel.Color := $CCCCFF;
    WizardForm.NextButton.Enabled:=False
  end;
 
  if round(GetVidMemLocal/oneMB/64)*64 < 128 then //Минимальный объём ОЗУ видеоадаптера в Мб
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям программы.';
    StaticText.Font.Color := clRed;
    VideoCardNamePanel.Color := $CCCCFF;
    WizardForm.NextButton.Enabled:=False
  end;
 
  if GetSoundCards = 0 then
  begin
    AudioCardNamePanel.Text:=' Устройство не обнаружено';
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям программы.';
    StaticText.Font.Color := clRed;
    AudioCardNamePanel.Color := $CCCCFF;
    WizardForm.NextButton.Enabled:=False
  end;
 
 
  if round(Memory.dwTotalPhys/oneMB/64)*64 < 512 then //Минимальный объём ОЗУ в Мб
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям программы.';
    StaticText.Font.Color := clRed;
    RAMTotalPanel.Color := $CCCCFF;
    WizardForm.NextButton.Enabled:=False
  end;
 
  if GetSystemPage < 768 then //Минимальный объём файла подкачки в Мб
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям программы.';
    StaticText.Font.Color := clRed;
    PageFileTotalPanel.Color := $CCCCFF;
    WizardForm.NextButton.Enabled:=False
  end;
end;

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 11:37 19-06-2007
Rage Hunter



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!
Народ подскажите, можно ли сделать что бы инсталятор при установке вносил строки в файл, например txt (дополнял, а не заменял)?
Если это возможно то подскажите как это сделать!

Всего записей: 4 | Зарегистр. 19-06-2007 | Отправлено: 11:45 19-06-2007
NightW0lf



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

Цитата:
Так спешу сообщить, что после кое какого то изменения в конфиге, (я его уже точно не вспомню). У меня такая же теперь трабла, как у тебя. Я надеюсь ты знаешь что сделать? Опиши пожалуйста причину!

Скинь вличку код свой посматрю в чем может быть ошибка.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 12:10 19-06-2007
Forslay



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
NightW0lf, большое спасибо, у меня опять пропал этот глюк. Так что уже незачем. Хтя я вообще немогу понять в чём дело. Я просто высунул этот код с "проверкой на файл в директории", утром встал, опять решил попробывать, засунул и работает всё прекрасно! Вот трабла... Даже не понятно почему он иногда пропускает...

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 12:24 19-06-2007
NightW0lf



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

Цитата:
NightW0lf, большое спасибо, у меня опять пропал этот глюк. Так что уже незачем. Хтя я вообще немогу понять в чём дело. Я просто высунул этот код с "проверкой на файл в директории", утром встал, опять решил попробывать, засунул и работает всё прекрасно! Вот трабла... Даже не понятно почему он иногда пропускает...

Все равно скинь посматрю что и как там у тебя.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 12:29 19-06-2007
Shpunttt

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
Подскажите плиз, как можно сделать такую фичу:
при установке инсталлятора зажимаешь, например, клавишу "Shift" и после установки открывается некий cfg-файл?
никак не могу реализовать=((

Всего записей: 2 | Зарегистр. 05-06-2007 | Отправлено: 12:44 19-06-2007
Sero



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

Цитата:
Я теперь понял! Но, что будет, если будет так:  

Так тоже можно!
 

Цитата:
И что это за ветка тут указана:  

Это я тестировал!
 
вместо секции [Registry] внеси свои значения в процедуре RegWrite
 

Цитата:
Я так понял, что данные в реестр внесутся при уже запущенной проге,

 
После!
Rage Hunter
 

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

 
Смотри в хелпе описание функции SaveStringToFile

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 15:28 19-06-2007
Forslay



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Хотлось бы, что б при каждом запуске играла не одна mp3 музыка, а маленький плейлист к примеру... Тоесть при каждом запуске что mp3 проигрывалось на угад в разброс... было бы очень даже прикольно...=)

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 15:41 19-06-2007
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Shpunttt
Цитата:
при установке инсталлятора зажимаешь, например, клавишу "Shift" и после установки открывается некий cfg-файл
-- файл создается если шифт нажат или изначально входит в состав инсталлятора ? В общем случае, используй GetKeyState. Пример :

Код:
 
[Setup]
AppName=AppName
AppVerName=AppVerName
DefaultDirName={pf}\My Program
 
[Code]
const
  VK_SHIFT = $10;
   
function GetKeyState(nVirtKey: integer): Shortint;
  external 'GetKeyState@user32.dll stdcall';
   
function InitializeSetup(): Boolean;
begin
  Result:= True;
   
  if GetKeyState(VK_SHIFT) < 0 then
    MsgBox('Кнопка Shift нажата', mbInformation, MB_OK)
  else
    MsgBox('Кнопка Shift не нажата', mbInformation, MB_OK);
end;  


Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 16:47 19-06-2007 | Исправлено: Genri, 16:50 19-06-2007
Forslay



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Пожалуйста срочно помогите!
 
Я хочу что бы было так:
 
1) Если программа установлена на компьюере, уже, то установка предлагала её деинсталлировать
 
2) Ну а если всё чисто, то что бы успешно установка продолжалась!
 
Пожалуйста помогите как это сделать! Лично я в этом немогу ещё разобраться!
 
 
Я тут пытался кое что сделать, но не чо не пойму...
 
 
Вот код:
 

Код:
begin
Result:=True;
If not RegKeyExists(HKLM, 'Software\Valve\Half-Life\Settings; ValueType: string; ValueName: EngineDLL; ValueData: hw.dll')
 then
begin
 MsgBox('Программа MY_PROGRAM не установлена или установлена неверно.' #13#13 'Дальнейшая работа мастера невозможна.', mbError, mb_Ok);
 Result:=False;
 end
  else
   begin
 MsgBox('Программа MY_PROGRAM успешно обнаружена.' #13#13 'Установка полностью автоматическая.', mbInformation, mb_Ok);
   begin
  If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Counter-Strike v6.0.0.0_is1', 'UninstallString', ResultStr)
then
  begin
  If ResultStr<>''
then
  begin
   ResultStr:=RemoveQuotes(ResultStr);
  if MsgBox('Программа установки обнаружила уже установленную программу ранней версии.' #13#13 'Вы желаете предварительно удалить ее?', mbInformation, MB_YESNO) = idYes
then
  if not Exec(ResultStr, 'hw.dll', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode)
then
  MsgBox('Ошибка удаления. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 17:30 19-06-2007
Shpunttt

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
Огромное спасибо!! Все получилось=))))

Всего записей: 2 | Зарегистр. 05-06-2007 | Отправлено: 17:40 19-06-2007
NightW0lf



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

Цитата:
Пожалуйста срочно помогите!  
Я хочу что бы было так:  
1) Если программа установлена на компьюере, уже, то установка предлагала её деинсталлировать
2) Ну а если всё чисто, то что бы успешно установка продолжалась!  
Пожалуйста помогите как это сделать! Лично я в этом немогу ещё разобраться!  
Я тут пытался кое что сделать, но не чо не пойму...  

Пробуй так

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 18:07 19-06-2007 | Исправлено: NightW0lf, 18:10 19-06-2007
boss911



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

Цитата:
вместо секции [Registry] внеси свои значения в процедуре RegWrite

Я так понял, что простым копированием данных из [Registry] в процедыру RegWrite не обойтись, наверно придется перевести чуть в другой формат? У меня этих значений не мало!

Всего записей: 3703 | Зарегистр. 29-01-2005 | Отправлено: 21:31 19-06-2007 | Исправлено: boss911, 21:31 19-06-2007
Sero



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

Цитата:
Я так понял, что простым копированием данных из [Registry] в процедыру RegWrite не обойтись

 
Да,так.

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 23:12 19-06-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