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

Ответить
 • Просмотры: 30
Аватара пользователя
rasim933

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

Сообщение rasim933 »

Сделал. Получилось не как я хотел.

Собранную антологию через AutoPlay Media Studio, начал упаковывать через Inno Setup. В конце получилось так, что сначала распаковывалась вся антология, а затем из этой распакованной антологии надо было установливать игры.

Можно как-то сделать так, чтоб сразу началась установка из антологии а не распоковка антологии?
Аватара пользователя
rasim933

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

Сообщение rasim933 »

Как принудительно кинуть установщик на страницу "Финиш"?

Так, что бы после этого скрипт завершил свою работу при любом варианте.



Можно как нибуть получить список файлов и папок в указанной папке?



З.Ы.

2 предыдущих вопроса все еще актуальны.
Аватара пользователя
rasim933

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

Сообщение rasim933 »

1 *.exe файл авторана на первом диске, на остальных дисках, другие файлы. Соберу всё и запишу на 4 DVD5 диска. Сую первый диск, запускается авторан, жму на кнопу, требует диск 2. сую диск 2, жму на кнопку, установка начинается. авторан запускается с 1 диска.
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

Всем доброго времени суток! У меня есть
скрипт
с наложением изображения на кнопки. Как можно сделать, чтобы у кнопки "Обзор" было отдельное изображение (например, button2.bmp)? Видел несколько примеров, но одни не работают, а другие - заменяют текстуры на всех кнопках Изображение
Аватара пользователя
alert30

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

Сообщение alert30 »

rasim933, возможно UPX по-может, но причины при запуске инсталлятора бывают разные...

Кстати, можно убрать галочку "Использовать загрузчик"; а сами форматы BIN'ы - само надо разбираться.
Аватара пользователя
alert30

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

Сообщение alert30 »

Rikill, спасибо Изображение




Цитата Rikill:



накладывать, а не налаживать. Это не от слова лажа, а от слова класть!
Скрипты Inno Setup. Помощь и советы [часть 4]




Прошу прощения. У меня в школе не преподавали русский язык (за исключением уроков русской литературы) и на работе почти вся документация на украинском Изображение

Но впредь буду более внимательным.
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

Raf-9600, В каком смысле? Если менять язык инсталлятора на ходу, то это страшное дело - абсолютно все надписи нужно перерисовывать заново - это долгий процесс, и на слабых компах вызовет дикие тормоза.

по предложенным тобой примерам:

Проверка кириллицы в пути - слегка правленый вариант товарища VoLT:

читать дальше »

Код: Выделить всё

[Setup]
AppName = MyApp
AppVername = MyApp
DefaultDirName = {pf}\MyApp
[*Code]
function IsAnsi(S: string): boolean;
begin
  if CompareStr(AnsiLowercase(S), Uppercase(S)) = 0 then
    if CompareStr(Lowercase(S), AnsiLowercase(S)) = 0 then
  Result := True;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
  if CurPageID = wpSelectDir then
    if not (IsAnsi(WizardForm.DirEdit.Text)) then
    begin
      MsgBox('В пути установки присуствуют русские символы'+#13#10+'Пожалуйста, повторите ввод.', mbError, mb_Ok);
      Result := False;
    end;
end;

Скрипт для вывода данных о винтах - слегка правленный вариант от YURSHAT(требует get_hw_caps.dll):

читать дальше »

Код: Выделить всё

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
Source: compiler:Dll Pack\get_hw_caps.dll; Flags: dontcopy
[*Code]
var
  DirList: TNewListBox;
  Text: TNewStaticText;
function GetHardDriveFreeSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
function GetHardDriveName(hdd: integer): PAnsiChar;
  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 NumToStr(Float: Extended): string;
begin
  Result:=Format('%.2n', [Float]);
  StringChange(Result, ',', '.');
  while ((Result[Length(Result)]='0')
    or (Result[Length(Result)]='.'))
      and (Pos('.',Result)>0) do
  SetLength(Result,Length(Result)-1);
end;
function TBorGBorMB(Float: Extended): string;
// функция определения ТБ, ГБ или МБ
begin
  if Float<1024 then Result:=NumToStr(Float)+' MB'
  else if (Float/1024)<1024 then Result:=NumToStr(Float/1024)+' GB'
  else if (Float/(1024*1024))<1024 then Result:=NumToStr(Float/(1024*1024))+' TB'
end;
procedure ListBoxOnClick(Sender: TObject);
var
  NewLetter, OldString: string;
begin
  with TNewListBox(Sender) do
  begin
    NewLetter := Copy(Items[ItemIndex], 0, 1);
    OldString := Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
    WizardForm.DirEdit.Text := NewLetter + OldString;
  end;
end;
procedure InitializeWizard();
var
  i : Integer;
begin
  { DirList }
  DirList := TNewListBox.Create(WizardForm);
  with DirList do
  begin
    Parent := WizardForm.SelectDirPage;
    SetBounds(ScaleX(0),ScaleY(112),ScaleX(417),ScaleY(97));
    ItemHeight := 13;
    ItemIndex := 0;
    for i:= 0 to GetHardDrivesCount() - 1 do
      Items.Add(GetHardDriveName(i)+ '      ' + 'Свободно: ' + IntToStr((GetHardDriveFreeSpace(i)*100) div GetHardDriveTotalSpace(i)) + '%  '+'('+ TBorGBorMB(GetHardDriveFreeSpace(i))+')'+'    '+'из'+'    '+TBorGBorMB(GetHardDriveTotalSpace(i)));
    OnClick := @ListBoxOnClick;
  end;
end;

На описания тоже гдето есть скрипт более оптимальный и в плане производительности и в плане косячности работы, за авторством Shegorat, но лень искать (эти два под рукой просто были).
Аватара пользователя
Raf-9600

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

Сообщение Raf-9600 »

Johny777, Это не подойдет. Но все равно спасибо за помощь Изображение
Аватара пользователя
Raf-9600

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

Сообщение Raf-9600 »

Ктонить может убрать возможность кликнуть ПКМ по тексту комментариев компонентов, из этого кода?

читать дальше »


Код:

Код: Выделить всё

[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
ComponentsListTVStyle=true
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
russian.ComponentsName1=Моя программа™
russian.ComponentsName2=Помощь
russian.ComponentsName2_1=Документация
russian.ComponentsName2_2=Руководство пользователя
russian.ComponentsInfoPanel1=Описание
russian.ComponentsInfoPanel2=Наведите курсор мыши на компонент, чтобы прочитать его описание.
russian.ComponentsDescription1=Устанавливается обязательно
russian.ComponentsDescription2=Помощь
russian.ComponentsDescription3=Прочитать документацию
russian.ComponentsDescription4=Прочитать руководство пользователя
[Components]
Name: readme; Description: Справка; Types: full custom;
Name: readme\en; Description: "Английская "; Types: full custom; Flags: fixed
Name: readme\ru; Description: Русская; Types: full
;*************************************************************************
Name: plugs; Description: Плагины; Types: full ; Flags: collapsed
Name: plugs\wlx; Description: Внутреннего просмотра; Types: full
Name: plugs\wcx; Description: Архиваторные; Types: full
Name: plugs\wfx; Description: Системные; Types: full
Name: plugs\wfx\CanonCam; Description: CanonCam; Types: full
Name: plugs\wfx\PluginManager; Description: PluginManager; Types: full
Name: plugs\wfx\Registry; Description: Registry; Types: full
Name: plugs\wfx\Services; Description: Services; Types: full
Name: plugs\wfx\StartupGuard; Description: StartupGuard; Types: full
Name: plugs\wdx; Description: Другие; Types: full
[C0de]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  DRTF: TRichEditViewer;
procedure RedesignWizardForm;
begin
  with WizardForm.ComponentsList do
  begin
    Width := ScaleX(201);
  end;
  { DRTF }
  DRTF := TRichEditViewer.Create(WizardForm);
  with DRTF do
  begin
    Name := 'DRTF';
    Parent := WizardForm.SelectComponentsPage;
    Left := ScaleX(208);
    Top := ScaleY(74);
    Width := ScaleX(209);
    Height := ScaleY(131);
    Color := clMenu;
    DragMode := dmAutomatic;
    ReadOnly := True;
    ScrollBars := ssVertical;
    Text := '';
  end;
  DRTF.TabOrder := 4;
{ ReservationBegin }
  // Вы можете добавить ваш код здесь.
{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!
type
  TComponentDesc = record Description: String; Index: Integer; end;
var
  Descs: array of TComponentDesc;
  Indx: Integer;
procedure ShowDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var i: Integer;
begin
  Indx:=-1;
  for i:= 0 to GetArrayLength(Descs)-1 do begin
  if (Descs[i].Index=Index) then begin Indx:=i; Break end; end;
  if (Indx >=0)and(Area=iaItem) then DRTF.Text:= Descs[Indx].Description else DRTF.Text:= ExpandConstant('{cm:ComponentsInfoPanel2}');
end;
procedure AddDescription(AIndex: Integer; ADescription: String);
var i, k: Integer;
begin
i:= GetArrayLength(Descs); SetArrayLength(Descs, i+1);
Descs[i].Description:= ADescription; Descs[i].Index:= AIndex-1
end;
procedure InitializeWizard();
begin
  RedesignWizardForm;
  WizardForm.ComponentsList.OnItemMouseMove:= @ShowDescription
  AddDescription(1, 'Справка'); //первый параметр - это номер компонента, идет последовательно от начала записи компонентов
  AddDescription(2, 'Эта сказка возникла в устных рассказах, пока не стала историей Великой Войны Кольца, включая множество эскурсов в более древние времена. Она начала создаваться после того, как был написан "Хоббит", и по его первой публикации в 1937 году: но я не торопился с продолжением, потому что хотел прежде собрать и привести в порядок мифологию и легенды древних дней, а для этого потребовалось несколько лет. Я делал это для собственного удовольствия и мало надеялся, что другие люди заинтересуются моей работой, особенно потому что она была преимущественно лингвистической по побуждениям и возникла из необходимости привести в порядок мои отрывочные сведения о языках эльфов.'); //Второй параметр - это собственно описание компонента
  AddDescription(3, 'Русская справка');
  AddDescription(4, 'Плагины');
  AddDescription(5, 'Внутреннего просмотра');
  AddDescription(6, 'Архиваторные');
  AddDescription(7, 'Системные');
  AddDescription(8, 'CanonCam');
  AddDescription(9, 'PluginManager');
  AddDescription(10, 'Registry');
  AddDescription(11, 'Services');
  AddDescription(12, 'StartupGuard');
  AddDescription(13, 'Другие');
end;
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D003010D602000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167651453656C656374436F6D706F6E656E7473506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED0000F11
Аватара пользователя
ARS_23

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

Сообщение ARS_23 »

Есть небольшое приложение, и созданый под него инсталятор. Должно все устанавливаться в IIS7. Раньше работала с IIS6, проблем не возникало а теперь пишет вот это



Код: Выделить всё

C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "Set-Executi  onPolicy RemoteSigned -Scope CurrentUser"    
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -File "C:\DOCUME~1\93  35~1\LOCALS~1\Temp\2\is-GJ8K0.tmp/IIS7_0_6_0.ps1"  
Начата регистрация ASP.NET (4.0.30319) в W3SVC/.  
Завершена регистрация ASP.NET (4.0.30319) в W3SVC/.  
Нельзя вызвать метод для выражения со значением NULL. 
 C:\Documents and Settings\Администратор\Local Settings\Temp\2\is-GJ8K0.tmp\IIS7  _0_6_0.ps1:11 знак:30  
+ $id = $webServer.Path.Replace <<<< ("IIS://localhost/W3SVC/", "")      
+ CategoryInfo          : InvalidOperation: (Replace:String) [], RuntimeEx     ception      
+ FullyQualifiedErrorId : InvokeMethodOnNull    
Сервер сценариев Windows (Microsoft R) версия 5.6  c 
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.      
ErrNumber: -2147463168 (0x80005000) 
 Error Trying To Get the Object: W3SVC/  
Сервер сценариев Windows (Microsoft R) версия 5.6  c 
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. 
Все права защищены.      
ErrNumber: -2147463168 (0x80005000)  
Error Trying To Get the Object: W3SVC//root  
Сервер сценариев Windows (Microsoft R) версия 5.6  c 
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.      
ErrNumber: -2147463168 (0x80005000)  
Error Trying To Get the Object: W3SVC//root  
Сервер сценариев Windows (Microsoft R) версия 5.6  c 
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.      
ErrNumber: -2147463168 (0x80005000)  
Error Trying To Get the Object: W3SVC//root  
Сервер сценариев Windows (Microsoft R) версия 5.6  c 
Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены.      
ErrNumber: -2147463168 (0x80005000)  
Error Trying To Get the Object: W3SVC//root  
Произошла ошибка при вызове метода, так как [System.Object[]] не содержит метод   с именем "Start".  
C:\Documents and Settings\Администратор\Local Settings\Temp\2\is-GJ8K0.tmp\IIS7  _0_6_0.ps1:17 знак:17  
+ $webServer.Start <<<< ()      
+ CategoryInfo          : InvalidOperation: (Start:String) [], RuntimeException      
+ FullyQualifiedErrorId : MethodNotFound      
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "Set-Executi  onPolicy Restricted -Scope CurrentUser"    
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>powershell -command "exit"    
C:\DOCUME~1\9335~1\LOCALS~1\Temp\2\is-GJ8K0.tmp>sqlcmd -s CSU-DEVELOPER  1>
Ответить

Вернуться в «Автоматическая установка приложений»