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

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

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

Widok (23-04-2007 18:02): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 103 104 105 106 107 108

   

haav



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

 
 
Это мощное средство для создания установочных пакетов [дистрибутивов] программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно легко самим создавать диалоги, используя спец. дизайнер. И всё это абсолютно бесплатно! По сравнению с NullSoft [основной конкурент на бесплатной ниве] мне albel понравилась более интуитивно-понятная структура скрипта, простота в настройке.  
 
Последний релиз: 5.1.11 [1 Марта 2007 года]
История версий | скачать  
 
Русификатор от NightW0lf для версии 5.1.11  
Скачать | зеркало
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 [не для чайников] от Kindly
[3 версия]  
Скачать | зеркало
[4 версия]  
Скачать | зеркало
[5 версия]  
Скачать | зеркало
 
Inno Setup Extensions Knowledge Base  
Скачать | зеркало
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы это исправить добавьте этот код.
Если вы захотите использовать метод проверки внешнего файла через сумму MD5 [который описан в 5 версии руководства по программированию в Inno Setup] для запуска инсталлятора то вам понадобится калькулятор суммы MD5, калькулятор сумм MD5, SHA-256, CRC32. Если вы хотите узнать какие ключи в реестр вносит та или иная программа [или игра] то Вам понадобится RegShot.



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



ISTool
 
www.istool.org
 
Последний релиз: 5.1.8 [18 Октября 2006 года] New
Скачать | зеркало  
[как сказано в описании изменений, добавлена поддержка новых директив 5.1.8]
 
Русификатор
Скачать | зеркало


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


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

Последний релиз: 1.02.5 [02 Апреля 2007 года]
Скачать | обновление
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.1.11.

Всего записей: 67 | Зарегистр. 11-12-2001 | Отправлено: 15:23 09-10-2002 | Исправлено: NightW0lf, 15:16 15-04-2007
Sero



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

Цитата:
Кто нибудь знает, как можно добавить надпись в заголовок этого диалога  

 
Использование системных MessageBox(Inno Setup Scripting v.5.0)

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 19:50 05-04-2007
Angel_Smerti



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sampron
Отдельное СПАСИБО, пилюля помогла, все пошло правильно!  

Всего записей: 115 | Зарегистр. 03-08-2003 | Отправлено: 20:00 05-04-2007
NightW0lf



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

Цитата:
Использование системных MessageBox(Inno Setup Scripting v.5.0)

Спасибо!

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 20:06 05-04-2007
Sero



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А кто знаком с программой Inno Patch Wizard
http://www.is.tuwien.ac.at/tools/innopatchwizard
Не знаю как пользоваться

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 22:27 05-04-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Еще один вопрос:
Как сделать так чтобы при проверки директории {app} перед установкой файлов проверялась на конкретный файл так чтобы в сообщении что выбрана не та директория была у казана именна та которую выбрал юзер?
 
Вот скрин того что я хочу.
Вот код

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 22:43 05-04-2007
serg_aka_lain

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

Цитата:
Сам я незнаю, НО я затем и выложил этот плагин чтобы кто-нибудь помог с ним разобраться.

 
 
Ну наверное примерно так в Сталкере, по крайней мере выглядит.
 
[Setup]
AppName=System Check
AppVerName=System Check
DefaultDirName={pf32}\System Check
ShowLanguageDialog=false
 
[Languages]
Name: en; MessagesFile: compiler:Default.isl;
Name: ru; MessagesFile: compiler:Languages\Russian.isl;
 
[Files]
Source: get_hw_caps.dll; Flags: dontcopy deleteafterinstall
 
 
 
 
[Code]
 
 
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 GetSystemPage(): Integer;
external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
 
procedure CreateTheWizardPages;
var
  Page: TWizardPage;
  Panel1 , Panel2 , Panel3 ,
  Panel4 , Panel5 , Panel6 : TPanel;
  begin
  Page := CreateCustomPage(wpWelcome, 'Информация о системе','');
   
  Panel1 := TPanel.Create(Page);
  Panel1.Parent := Page.Surface;
  Panel1.Left := ScaleX(30);
  Panel1.Top := ScaleY(50);
  Panel1.Width := ScaleX(160);
  Panel1.Height := ScaleY(49);
  Panel1.Caption := 'Видеокарта :';
  Panel1.Color := clBlack;
  Panel1.Font.Color := clWhite;
  Panel1.Font.Size := 10;
  Panel1.BorderStyle := bsSingle;
   
  Panel2 := TPanel.Create(Page);
  Panel2.Parent := Page.Surface;
  Panel2.Left := ScaleX(30);
  Panel2.Top := ScaleY(100);
  Panel2.Width := ScaleX(160);
  Panel2.Height := ScaleY(49);
  Panel2.Caption := 'Память (ОЗУ) :'
  Panel2.Font.Size := 10;
  Panel2.Font.Color := clWhite;
  Panel2.Color := clBlack;
  Panel2.BorderStyle := bsSingle;
   
  Panel3 := TPanel.Create(Page);
  Panel3.Parent := Page.Surface;
  Panel3.Left := ScaleX(30);
  Panel3.Top := ScaleY(150);
  Panel3.Width := ScaleX(160);
  Panel3.Height := ScaleY(49);
  Panel3.Caption := 'Аудио карта[q][/q]:'
  Panel3.Color := clBlack;
  Panel3.Font.Size := 10;
  Panel3.Font.Color := clWhite;
  Panel3.BorderStyle := bsSingle;
   
  Panel4 := TPanel.Create(Page);
  Panel4.Parent := Page.Surface;
  Panel4.Left := ScaleX(191);
  Panel4.Top := ScaleY(50);
  Panel4.Width := ScaleX(200);
  Panel4.Height := ScaleY(49);
  Panel4.Caption := ''+ GetVideoCardName;
  Panel4.Color := clGreen;
  Panel4.Font.Size := 10;
  Panel4.Font.Color := clWhite;
  Panel4.BorderStyle := bsSingle;
   
  Panel5 := TPanel.Create(Page);
  Panel5.Parent := Page.Surface;
  Panel5.Left := ScaleX(191);
  Panel5.Top := ScaleY(100);
  Panel5.Width := ScaleX(200);
  Panel5.Height := ScaleY(49);
  Panel5.Caption := ''+ IntToStr(GetSystemPage()) + 'Mb';
  Panel5.Color := clGreen;
  Panel5.Font.Color := clWhite;
  Panel5.Font.Size := 10;
  Panel5.BorderStyle := bsSingle;
   
  Panel6 := TPanel.Create(Page);
  Panel6.Parent := Page.Surface;
  Panel6.Left := ScaleX(191);
  Panel6.Top := ScaleY(150);
  Panel6.Width := ScaleX(200);
  Panel6.Height := ScaleY(49);
  Panel6.Caption := ''+ GetSoundCardName;
  Panel6.Color := clGreen;
  Panel6.Font.Size := 10;
  Panel6.Font.Color := clWhite;
  Panel6.BorderStyle := bsSingle;
end;
 
 
procedure InitializeWizard();
begin
  CreateTheWizardPages;
end;

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 00:59 06-04-2007
mrvanger

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
подскажите, как можно еще уменьшить размер инсталлятора?
есть файлик (Inno Unpacker сообщает версию 5.1.02) на 242 метра, распаковываю, кое-что меняю в скрипте, запаковываю версией 5.1.11 с параметром lzma/ultra - получаю 253 метра

Всего записей: 32 | Зарегистр. 21-03-2004 | Отправлено: 09:54 06-04-2007 | Исправлено: mrvanger, 09:57 06-04-2007
PSKOVMAIL



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

Цитата:
Panel5.Caption := ''+ IntToStr(GetSystemPage()) + 'Mb';

 
Странно определяет память на работе 512Мб а показывает 1056 мб(это что с подкачкой что-ли)?

Всего записей: 25 | Зарегистр. 16-03-2007 | Отправлено: 11:57 06-04-2007
Chuvakstepan



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
NightW0lf
 
Вот код:  
 
function NextButtonClick(CurPage: Integer): Boolean;
var
s: string;
begin
Result := True;
if CurPage = 6 then
begin
if (FileSearch('scdalauncher.exe', ExpandConstant('{app}')) = '')
and (FileSearch('SCDA-Offline\System\SplinterCell4.exe', ExpandConstant('{app}')) = '')
then
begin
 s:='Извините, в директории '+ExpandConstant('{app}')+'' #13 'не обнаружены файлы, подтверждающие подлинность программы.' #13#13 'Пожалуйста, выберите правильный путь для установки обновления.';
  MsgBox(s, mbError, mb_Ok);
  Result:= False
end;
end;
end;
end.
 
В данном случае поиск двух файлов, либо scdalauncher.exe или SCDA-Offline\System\SplinterCell4.exe, или 2 сразу

Всего записей: 202 | Зарегистр. 29-01-2007 | Отправлено: 13:25 06-04-2007 | Исправлено: Chuvakstepan, 13:28 06-04-2007
NightW0lf



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

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 15:57 06-04-2007
Sero



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня показывает видео память в байтах, а мне нужно в Мегабайт.
Как сделать это?

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 22:01 06-04-2007
serg_aka_lain

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

Цитата:
Странно определяет память на работе 512Мб а показывает 1056 мб(это что с подкачкой что-ли)?

 
Да это с подкачкой (Page File) ,физическую память (озу),покажет меньше чем есть,(у меня так определяет) - функция GetSystemPhys.

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 23:21 06-04-2007
PSKOVMAIL



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

Цитата:
Да это с подкачкой (Page File) ,физическую память (озу),покажет меньше чем есть,(у меня так определяет) - функция GetSystemPhys.

 
Спасибочки  

Всего записей: 25 | Зарегистр. 16-03-2007 | Отправлено: 08:07 07-04-2007
Chuvakstepan



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
А как использовать get_hw_caps.dll не на MessageBox, а на отдельном окне инсталлятора, и еще бы желательно сравнивать минимальные системные требования с компьютером пользователя, и, если он (комп. пользователя) не подходит, то запретить установку

Всего записей: 202 | Зарегистр. 29-01-2007 | Отправлено: 15:40 07-04-2007
PSKOVMAIL



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Круче чем S.T.A.L.K.E.R. :
 
[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
 
[Languages]
Name: english; MessagesFile: compiler:Default.isl
 
[Files]
Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion
Source: C:\Program Files\Inno Setup Complect\get_hw_caps.dll; DestDir: {tmp}; Flags: dontcopy
 
[Code]
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 GetSystemPage(): Integer;
external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
 
function GetSystemPhys(): Integer;
external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
 
function GetHardDriveFreeSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDriveTotalSpace(hdd: integer): Integer;
external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDriveName(hdd: integer): PChar;
external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
 
function DetectHardware(): Integer;
external 'hwc_DetectHardware@files:get_hw_caps.dll stdcall';
 
 
function CustomForm_CreatePage(PreviousPageId: Integer): Integer;
var
  Page: TWizardPage;
  Panel1: TPanel;
  Panel2: TPanel;
  Panel4: TPanel;
  Panel3: TPanel;
  Panel5: TPanel;
  Panel6: TPanel;
  Panel7: TPanel;
  Panel8: TPanel;
  Panel9: TPanel;
  Panel10: TPanel;
  Panel11: TPanel;
  Panel12: TPanel;
  Panel13: TPanel;
begin
  Page := CreateCustomPage(wpWelcome, ExpandConstant('Аппаратное обеспечение'),  ExpandConstant('Программа установки обнаружила следующие необходимые компоненты'));
{ Panel1 }
Panel1 := TPanel.Create(Page);
with Panel1 do
begin
  Parent := Page.Surface;
  Caption := ExpandConstant('Звуковая карта');
  Left := ScaleX(24);
  Top := ScaleY(136);
  Width := ScaleX(134);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold];
  Color := 15793151;
  TabOrder := 0;
end;
 
{ Panel2 }
Panel2 := TPanel.Create(Page);
with Panel2 do
begin
  Parent := Page.Surface;
  Caption := 'Свободно диска С:';
  Left := ScaleX(24);
  Top := ScaleY(168);
  Width := ScaleX(134);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold];
  Color := 15793151;
  TabOrder := 1;
end;
 
{ Panel4 }
Panel4 := TPanel.Create(Page);
with Panel4 do
begin
  Parent := Page.Surface;
  Caption := 'Всего на диске C:';
  Left := ScaleX(24);
  Top := ScaleY(200);
  Width := ScaleX(134);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold];
  Color := 15793151;
  TabOrder := 2;
end;
 
{ Panel3 }
Panel3 := TPanel.Create(Page);
with Panel3 do
begin
  Parent := Page.Surface;
  Caption := ExpandConstant('Видеоадаптер');
  Left := ScaleX(24);
  Top := ScaleY(104);
  Width := ScaleX(134);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold];
  Color := 15793151;
  TabOrder := 3;
end;
 
{ Panel5 }
Panel5 := TPanel.Create(Page);
with Panel5 do
begin
  Parent := Page.Surface;
  Caption := ExpandConstant('ОЗУ');
  Left := ScaleX(24);
  Top := ScaleY(72);
  Width := ScaleX(134);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold];
  Color := 15793151;
  TabOrder := 4;
end;
 
{ Panel6 }
Panel6 := TPanel.Create(Page);
with Panel6 do
begin
  Parent := Page.Surface;
  Caption := ExpandConstant('Процессор');
  Left := ScaleX(24);
  Top := ScaleY(40);
  Width := ScaleX(134);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold];
  Color := 15793151;
  TabOrder := 5;
end;
 
{ Panel7 }
Panel7 := TPanel.Create(Page);
with Panel7 do
begin
  Parent := Page.Surface;
  Caption := '' + IntToStr(GetHardDriveFreeSpace(0))+ 'Mb';
  Left := ScaleX(176);
  Top := ScaleY(168);
  Width := ScaleX(225);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 6;
end;
 
{ Panel8 }
Panel8 := TPanel.Create(Page);
with Panel8 do
begin
  Parent := Page.Surface;
  Caption := '' + IntToStr(GetSystemPhys()) + 'Mb';
  Left := ScaleX(176);
  Top := ScaleY(72);
  Width := ScaleX(225);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 7;
end;
 
{ Panel9 }
Panel9 := TPanel.Create(Page);
with Panel9 do
begin
  Parent := Page.Surface;
  Caption := ''+ GetVideoCardName;
  Left := ScaleX(176);
  Top := ScaleY(104);
  Width := ScaleX(225);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 8;
end;
 
{ Panel10 }
Panel10 := TPanel.Create(Page);
with Panel10 do
begin
  Parent := Panel9;
  Caption := '' + IntToStr(GetHardDriveFreeSpace(0))+ 'Mb';
  Left := ScaleX(176);
  Top := ScaleY(40);
  Width := ScaleX(225);
  Height := ScaleY(25);
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 0;
end;
 
{ Panel11 }
Panel11 := TPanel.Create(Page);
with Panel11 do
begin
  Parent := Page.Surface;
  Caption := ''+ GetSoundCardName;
  Left := ScaleX(176);
  Top := ScaleY(136);
  Width := ScaleX(225);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 9;
end;
 
{ Panel12 }
Panel12 := TPanel.Create(Page);
with Panel12 do
begin
  Parent := Page.Surface;
  Caption := ExpandConstant('{reg:HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0,ProcessorNameString|}');
  Left := ScaleX(176);
  Top := ScaleY(40);
  Width := ScaleX(225);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 10;
end;
 
{ Panel13 }
Panel13 := TPanel.Create(Page);
with Panel13 do
begin
  Parent := Page.Surface;
  Caption := '' + IntToStr(GetHardDriveTotalSpace(0))+'Mb';
  Left := ScaleX(176);
  Top := ScaleY(200);
  Width := ScaleX(225);
  Height := ScaleY(25);
  BorderStyle := bsSingle;
  Font.Name := 'Tahoma';
  Font.Style := [fsBold, fsItalic];
  Color := 15780518;
  TabOrder := 11;
end;
end;
 
const
  NeedSize = 50; //Прописать, сколько мегабайт необходимо
 
  DRIVE_UNKNOWN = 0;
  DRIVE_NO_ROOT_DIR = 1;
  DRIVE_REMOVEABLE = 2;
  DRIVE_FIXED = 3;
  DRIVE_REMOTE = 4;
  DRIVE_CDROM = 5;
  DRIVE_RAMDISK = 6;
 
var
  ListBox: TListBox;
 
function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';
 
function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';
 
procedure ListBoxOnClick(Sender: TObject);
var
  NewLetter, OldString: String;
  i: Integer;
begin
  for i:= 0 to ListBox.Items.Count-1 do
    begin
      if ListBox.Selected[i] then
        begin
          NewLetter:= Copy(ListBox.Items[i], 0, 1);
          OldString:= Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
          WizardForm.DirEdit.Text:= NewLetter + OldString;
        end;
    end;
end;
 
procedure InitializeWizard();
var
  Path: String;
  FreeMB, TotalMB: Cardinal;
  drives: DWORD;
  i: integer;
begin
  CustomForm_CreatePage(wpWelcome);
  ListBox:= TListBox.Create(WizardForm);
  ListBox.Top:= 120;
  ListBox.Width:= 300;
  ListBox.Height:= ScaleY(90);
  ListBox.Parent:= WizardForm.SelectDirPage;
  ListBox.OnClick:= @ListBoxOnClick;
 
  drives:= GetLogicalDrives();
  for i:= 0 to 31 do
     begin
        if (drives and (1 shl i)) > 0 then
            begin
              Path:= chr(ord('A')+i)+':';
              if GetDriveType(Path) = DRIVE_FIXED then
                begin
                  GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
                  ListBox.Items.Add(Path + ' - Всего: ' + IntToStr(TotalMB) +
                                 'Мб - Свободно: ' + IntToStr(FreeMB) + 'Мб');
                end;
            end;
     end;
end;
 
function NextButtonClick(CurPageID: Integer): Boolean;
var
  Path: String;
  FreeMB, TotalMB: Cardinal;
begin
  Result:= True;
  if CurPageID = wpSelectDir then
    begin
      Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
      GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
      if FreeMB < NeedSize then
        begin
          MsgBox('Недостаточно места на диске!', mbInformation, MB_OK)
          Result:= False;
        end;
    end;
end;

Всего записей: 25 | Зарегистр. 16-03-2007 | Отправлено: 15:47 07-04-2007
serg_aka_lain

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

Цитата:
Круче чем S.T.A.L.K.E.R. :  

 
Имя процессора обрезается за краями: (el(R) Core(TM)2 CPU          6600  @ 2.40),
используй : Panel.Alignment := taLeftJustify; , для панели с процем.

Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 17:10 07-04-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PSKOVMAIL
Впринцепи да! Респект за код!
Но вот только не подскажешь как можно сделать такую же проверку как у S.T.A.L.K.E.R. типа для правильной работы игры нужно например 1 гб ОЗУ, а у юзера например 256-512 и инсталлятор должен выделить красным цветом тот или иной компанент который несоответствует систмным требованиям игры.

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 18:37 07-04-2007
Sero



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

Цитата:
Впринцепи да! Респект за код!  
Но вот только не подскажешь как можно сделать такую же проверку как у S.T.A.L.K.E.R. типа для правильной работы игры нужно например 1 гб ОЗУ, а у юзера например 256-512 и инсталлятор должен выделить красным цветом тот или иной компанент который несоответствует систмным требованиям игры.

 

Код:
 
Panel8 := TPanel.Create(Page);  
with Panel8 do  
begin  
  Parent := Page.Surface;  
  Caption := '' + IntToStr(GetSystemPhys()) + 'Mb';  
  Left := ScaleX(176);  
  Top := ScaleY(72);  
  Width := ScaleX(225);  
  Height := ScaleY(25);  
  BorderStyle := bsSingle;  
  Font.Name := 'Tahoma';  
  Font.Style := [fsBold, fsItalic];  
  Color := 15780518;  
  TabOrder := 7;  
end;  
 
if GetSystemPhys+1<1024 then
Panel8.Color:=clRed;

 
 
 

Всего записей: 309 | Зарегистр. 29-10-2006 | Отправлено: 19:23 07-04-2007 | Исправлено: Sero, 19:25 07-04-2007
NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Sero
Спасибо за код!
НО только в коде от PSKOVMAIL нет такого пункта как файл подкачки. Не подскажешь как его в код от PSKOVMAIL добавить?
 
Еще небольшая просьба программерам:
Немоглибы Вы этот код от PSKOVMAIL сделать точно так же как показанно на картинке.
 
Буду ОЧЕНЬ признателен за помощь!

Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 19:41 07-04-2007 | Исправлено: NightW0lf, 19:52 07-04-2007
Sampron

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
NightW0lf
Держи почти один к одному
 
[Setup]
AppName=System Check
AppVerName=System Check
DefaultDirName={pf32}\System Check
 
[Files]
Source: get_hw_caps.dll; Flags: dontcopy deleteafterinstall
 
[Code]
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 GetSystemPhys(): Integer;
 external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
function GetSystemPage(): Integer;
 external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
 
procedure InitializeWizard();
var
  Page: TWizardPage;
  Text: TNewStaticText;
  Memo: TMemo;
  begin
  Page:=CreateCustomPage(wpWelcome, 'Аппаратное обеспечение', 'Программа установки обнаружила следующие необходимые компоненты');
  Text:=TNewStaticText.Create(Page);
  with Text do begin
    Left:=0
    Top:=0
    Width:=417
    Height:=14
    Caption:='Все компоненты удовлетворяют требованиям игры'
    Parent:=Page.Surface
  end
  Text:=TNewStaticText.Create(Page);
  with Text do begin
    Left:=0
    Top:=210
    Width:=417
    Height:=14
    Caption:='Когда Вы будете готовы продолжить установку, нажмите «Далее».'
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=0
    Top:=30
    Width:=110
    Height:=22
    ReadOnly:=True
    Color:=clBtnFace
    Text:='Процессор'
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=0
    Top:=55
    Width:=110
    Height:=22
    ReadOnly:=True
    Color:=clBtnFace
    Text:='Видеоадаптер'
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=0
    Top:=80
    Width:=110
    Height:=22
    ReadOnly:=True
    Color:=clBtnFace
    Text:='Звуковая карта'
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=0
    Top:=105
    Width:=110
    Height:=22
    ReadOnly:=True
    Color:=clBtnFace
    Text:='Память'
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=0
    Top:=130
    Width:=110
    Height:=22
    ReadOnly:=True
    Color:=clBtnFace
    Text:='Файл подкачки'
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=114
    Top:=30
    Width:=303
    Height:=22
    ReadOnly:=True
    Color:=$ccffcc
    Text:=ExpandConstant('{reg:HKLM\HARDWARE\DESCRIPTION\System\CentralProcessor\0,ProcessorNameString|}');
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=114
    Top:=55
    Width:=303
    Height:=22
    ReadOnly:=True
    Color:=$ccffcc
    Text:=''+ GetVideoCardName
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=114
    Top:=80
    Width:=303
    Height:=22
    ReadOnly:=True
    Color:=$ccffcc
    Text:=''+ GetSoundCardName
    Parent:=Page.Surface
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=114
    Top:=105
    Width:=303
    Height:=22
    ReadOnly:=True
    Color:=$ccffcc
    Text:='' + IntToStr(GetSystemPhys()) + 'Mb'
    Parent:=Page.Surface
    if GetSystemPhys+1<1024 then
    Color:=$ccccff
  end
  Memo:=TMemo.Create(Page);
  with Memo do begin
    Left:=114
    Top:=130
    Width:=303
    Height:=22
    ReadOnly:=True
    Color:=$ccffcc
    Text:=''+ IntToStr(GetSystemPage()) + 'Mb'
    Parent:=Page.Surface
  end
end;

Всего записей: 563 | Зарегистр. 06-01-2007 | Отправлено: 20:22 07-04-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 103 104 105 106 107 108

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru