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

Ответить
 • Просмотры: 3
Аватара пользователя
serg aka lain

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

Сообщение serg aka lain »

Цитата Habetdin:



А "разделенные" можете опубликовать?
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




конечно)



до соединения Joiner'oм отдельноработающие части вот



скин -
читать дальше »



Цитата:



; -- Example1.iss --

; Demonstrates copying 3 files and creating an icon.



; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!





[Files]

; Add the ISSkin DLL used for skinning Inno Setup installations.

Source:{app}\ISSkin.dll; DestDir: {app}; Flags: dontcopy



; Add the Visual Style resource contains resources used for skinning,

; you can also use Microsoft Visual Styles (*.msstyles) resources.

Source: Styles\Office2007.cjstyles; DestDir: {tmp}; Flags: dontcopy





; The following code block is used to load the ISS, pass in

; NormalAqua.ini as the second parameter to LoadSkin to use

; the Aqua color scheme instead of the default Blue color

; scheme.

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


// Importing LoadSkin API from ISSkin.DLL

procedure LoadSkin(lpszPath: String; lpszIniFileName: String);

external 'LoadSkin@files:isskin.dll stdcall';



// Importing UnloadSkin API from ISSkin.DLL

procedure UnloadSkin();

external 'UnloadSkin@files:isskin.dll stdcall';



// Importing ShowWindow Windows API from User32.DLL

function ShowWindow(hWnd: Integer; uType: Integer): Integer;

external 'ShowWindow@user32.dll stdcall';



function InitializeSetup(): Boolean;

begin

	ExtractTemporaryFile('Office2007.cjstyles');

	LoadSkin(ExpandConstant('{tmp}\Office2007.cjstyles'), 'NormalAqua.ini');

	Result := True;

end;



procedure DeinitializeSetup();

begin

	// Hide Window before unloading skin so user does not get

	// a glimse of an unskinned window before it is closed.

	ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);

	UnloadSkin();

end;
		
	
	




и 

шифр - 
[url=#]читать дальше »[/url]


				Цитата:
	
	
		
				

[Setup]

Encryption=yes

Password=Cnn0



[code]

var

  str: string;

  MyArray: array of Char;



function InitializeSetup(): Boolean;

begin

  MyArray := ['A','B','C','D','E','F','G','H','I','J','K','L','M',

              'N','O','P','Q','R','S','T','U','V','W','X','Y','Z',

              'a','b','c','d','e','f','g','h','i','j','k','l','m',

              'n','o','p','q','r','s','t','u','v','w','x','y','z',

              '1','2','3','4','5','6','7','8','9','0',

              '!','@','#','$','%','^','&','*','(',')'];

  Result:= True;

end;



function CheckPassword(Password: String): Boolean;

begin

    WizardForm.PasswordEdit.Text:= 'The password is protected!';

    WizardForm.PasswordPage.Free;

    Result:= True;

end;



procedure InitializeWizard();

begin

  WizardForm.PasswordEdit.Visible:= False;

  WizardForm.PasswordEdit.Text:= 'The password is very protected!';

end;



function NextButtonClick(CurPageID: Integer): Boolean;

begin

  str:= GetDateTimeString('ss', #0, #0);

  Result:= True;

end;



procedure CurPageChanged(CurPageID: Integer);

begin

if CurPageID = wpPassword then

  begin

    WizardForm.PasswordEdit.Text:= MyArray[2]+MyArray[39]+MyArray[39] +

    IntToStr(StrToInt(str) - StrToInt(GetDateTimeString('ss', #0, #0)));

    WizardForm.NextButton.OnClick(WizardForm.NextButton);

  end;

end;
		
	
	
 





это тот код,который вставлял в самом конце скрипта самой программы.
Аватара пользователя
S.E.K.T.O.R.

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

Сообщение S.E.K.T.O.R. »

Serega подскажи как сделать вот это







т.е. если игра установлена появлялось это окошко. Я так понял, что в Сталкере инсталл через этот
ключь


Root: HKLM; Subkey: "Software\GSC Game World\STALKER-SHOC"; ValueType: string; ValueName: "InstallPath"; ValueData: "{app}";


проверяет наличие экзешки (XR_3DA.exe), и если она есть запускается окошко, если нет - установка.
Аватара пользователя
S.E.K.T.O.R.

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

Сообщение S.E.K.T.O.R. »

Habetdin, СПАСИБО!!!




Цитата Habetdin:



comsun, проверьте, может быть и правильно

читать дальше »
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




один секунд)

минут через 10

будет известно - программа большая)



не идёт

ошибка та же((((((
Аватара пользователя
Serega

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

Сообщение Serega »

Цитата comsun:



ошибка та же((((((
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




Весь скрипт можно увидеть? Изображение

P.S.: прикрепил примеры скриптов с шифрованием, у меня 2й вариант без ошибок работает, остальные так же, как у вас ошибку выдают
Аватара пользователя
Lancer2404

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

Сообщение Lancer2404 »

Habetdin, Спасибо за помощь!


Цитата Habetdin:



P.S.: прикрепил примеры скриптов с шифрованием, у меня 2й вариант без ошибок работает, остальные так же, как у вас ошибку выдают
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




проверил ваш [2].iss - ошибка та же(((((((((


Цитата Habetdin:



Весь скрипт можно увидеть?
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




не проблема,но дело не в нём - раздельно друг от друга коды работают,а вместе - не хотят.



завтра (или уже сегодня)) проверю остальные
Аватара пользователя
S.E.K.T.O.R.

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

Сообщение S.E.K.T.O.R. »

chm справка в шапке глючная Изображение , замените плыз на нормальную Изображение
Аватара пользователя
S.E.K.T.O.R.

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

Сообщение S.E.K.T.O.R. »

EN130, подробней объясните, что не так?




Цитата comsun:



ошибка та же((((((
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




Надо так:



Код:

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

[Files]
; Add the ISSkin DLL used for skinning Inno Setup installations.
Source: {app}\ISSkin.dll; DestDir: {app}; Flags: dontcopy noencryption
Аватара пользователя
Lancer2404

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

Сообщение Lancer2404 »

Serega, СПА-СИ-БО!!!!!!!!!




Цитата Serega:



Цитата comsun:

ошибка та же(((((( »

Надо так:

Код:

[Files]

; Add the ISSkin DLL used for skinning Inno Setup installations.

Source: {app}\ISSkin.dll; DestDir: {app}; Flags: dontcopy noencryption
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]




Йессс!!!!!

Работает!




Serega,ещё раз Спасибо!!!

Ваши ответы всегда точны и верны!!!
Аватара пользователя
BlackSelf

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

Сообщение BlackSelf »

msatmb, думаю, так:


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






Код:

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

[Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program
[Languages]
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"
[CustomMessages]
Russian.NeedTmpSpaceMsg=Для работы инсталлятора недостаточно свободного места на системном диске. %nТребуется не менее %1. %nДоступно %2.
[_code]
const
    oneMB=1024*1024;
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 ByteOrTB(Bytes: Extended; noMB: Boolean): String; 
    Begin
        if not noMB then Result:= NumToStr(Int(Bytes)) +' Mb' else
            if Bytes*oneMB < 1024 then if Bytes = 0 then Result:= '0' else Result:= NumToStr(round(Bytes*oneMB/1024)) +' Bt' else
                if Bytes*oneMB/1024 < 1024 then Result:= NumToStr(round((Bytes*oneMB/1024)*10)/10) +' Kb' else
                    If Bytes*oneMB/oneMB < 1024 then Result:= NumToStr(round(Bytes*oneMB/oneMB*100)/100) +' Mb' else
                        If Bytes*oneMB/oneMB/1000 < 1024 then Result:= NumToStr(round(Bytes*oneMB/oneMB/1024*1000)/1000) +' Gb' else
                            Result:= NumToStr(round(Bytes*oneMB/oneMB/oneMB*1000)/1000) +' Tb';
End;
function InitializeSetup(): Boolean;
var
  TmpDirFreeMB, TmpDirTotalMB, TmpDirNeedMB: Cardinal;
begin
  TmpDirNeedMB:= 5000000; // сколько Mb требуется
    Result := True;
  GetSpaceOnDisk(ExpandConstant('{tmp}'), True, TmpDirFreeMB, TmpDirTotalMB);
  if TmpDirFreeMB < TmpDirNeedMB then begin MsgBox(FmtMessage(ExpandConstant('{cm:NeedTmpSpaceMsg}'), [ByteOrTB(TmpDirNeedMB,true),ByteOrTB(TmpDirFreeMB,true)]), mbError, MB_Ok); Result := False; exit;; end;
end;
Аватара пользователя
msatmb

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

Сообщение msatmb »

BlackSelf, Спасибо, только пришлось умножить на oneMB, а то он мне в Мегах и килобайтах показывал Изображение

т.е.

ByteOrTB(TmpDirNeedMB*oneMB,true),ByteOrTB(TmpDirFreeMB*oneMB,true) Вроде правильно показал Изображение

И я почемуто думал, что нужно обязательно делить на oneMB как в других скриптах. А оказывается можно и так Изображение

и вопрос.

Если конечно пользовался скриптом для распаковки архивов FreeArcВерсия 3.3 от Bulat Ziganshin, 13-09-2009

- FreeArcExtract() поддерживает опцию '-wPATH' для задания каталога для временных файлов



Каким образом прописать эту опцию в скрипте Изображение
Ответить

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