Скрипты Inno Setup. Помощь и советы [часть 4]
-
rasim933
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
Сделал. Получилось не как я хотел.
Собранную антологию через AutoPlay Media Studio, начал упаковывать через Inno Setup. В конце получилось так, что сначала распаковывалась вся антология, а затем из этой распакованной антологии надо было установливать игры.
Можно как-то сделать так, чтоб сразу началась установка из антологии а не распоковка антологии?
Собранную антологию через AutoPlay Media Studio, начал упаковывать через Inno Setup. В конце получилось так, что сначала распаковывалась вся антология, а затем из этой распакованной антологии надо было установливать игры.
Можно как-то сделать так, чтоб сразу началась установка из антологии а не распоковка антологии?
-
rasim933
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
Как принудительно кинуть установщик на страницу "Финиш"?
Так, что бы после этого скрипт завершил свою работу при любом варианте.
Можно как нибуть получить список файлов и папок в указанной папке?
З.Ы.
2 предыдущих вопроса все еще актуальны.
Так, что бы после этого скрипт завершил свою работу при любом варианте.
Можно как нибуть получить список файлов и папок в указанной папке?
З.Ы.
2 предыдущих вопроса все еще актуальны.
-
rasim933
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
1 *.exe файл авторана на первом диске, на остальных дисках, другие файлы. Соберу всё и запишу на 4 DVD5 диска. Сую первый диск, запускается авторан, жму на кнопу, требует диск 2. сую диск 2, жму на кнопку, установка начинается. авторан запускается с 1 диска.
-
Gnom_aka_Lexander
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
Всем доброго времени суток! У меня есть 
скрипт
с наложением изображения на кнопки. Как можно сделать, чтобы у кнопки "Обзор" было отдельное изображение (например, button2.bmp)? Видел несколько примеров, но одни не работают, а другие - заменяют текстуры на всех кнопках 
-
alert30
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
rasim933, возможно UPX по-может, но причины при запуске инсталлятора бывают разные...
Кстати, можно убрать галочку "Использовать загрузчик"; а сами форматы BIN'ы - само надо разбираться.
Кстати, можно убрать галочку "Использовать загрузчик"; а сами форматы BIN'ы - само надо разбираться.
-
alert30
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
Rikill, спасибо 
Цитата Rikill:
накладывать, а не налаживать. Это не от слова лажа, а от слова класть!
Прошу прощения. У меня в школе не преподавали русский язык (за исключением уроков русской литературы) и на работе почти вся документация на украинском
Но впредь буду более внимательным.

Цитата Rikill:
накладывать, а не налаживать. Это не от слова лажа, а от слова класть!
Скрипты Inno Setup. Помощь и советы [часть 4]
Прошу прощения. У меня в школе не преподавали русский язык (за исключением уроков русской литературы) и на работе почти вся документация на украинском
Но впредь буду более внимательным.
-
Gnom_aka_Lexander
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
Raf-9600, В каком смысле? Если менять язык инсталлятора на ходу, то это страшное дело - абсолютно все надписи нужно перерисовывать заново - это долгий процесс, и на слабых компах вызовет дикие тормоза.
по предложенным тобой примерам:
Проверка кириллицы в пути - слегка правленый вариант товарища VoLT:
читать дальше »
Скрипт для вывода данных о винтах - слегка правленный вариант от YURSHAT(требует get_hw_caps.dll):
читать дальше »
На описания тоже гдето есть скрипт более оптимальный и в плане производительности и в плане косячности работы, за авторством Shegorat, но лень искать (эти два под рукой просто были).
по предложенным тобой примерам:
Проверка кириллицы в пути - слегка правленый вариант товарища 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]
Johny777, Это не подойдет. Но все равно спасибо за помощь
-
Raf-9600
Re: Скрипты Inno Setup. Помощь и советы [часть 4]
Ктонить может убрать возможность кликнуть ПКМ по тексту комментариев компонентов, из этого кода?
Код:
читать дальше »
Код:
Код: Выделить всё
[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]
Есть небольшое приложение, и созданый под него инсталятор. Должно все устанавливаться в 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>