PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]


Страниц : 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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

dracosha
28-09-2014, 12:18
Народ подскажите пожалуйста как в секции [Run] заморозить птичку на чекбоксе (т.е. как бы применить флаг fixed)?

nik1967
28-09-2014, 14:13
Dinvin4ester, держи (https://yadi.sk/d/GsFgWe3RbhfNT). Заодно перелопатил всё, что связано с IsDone - где ты такую версию древнюю откопал? Используй с теми файлами, что в архиве, я там многое обновил.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
dracosha, насколько мне не изменяет мой склероз, то название_чекбокса.enabled:= false;

saurn
28-09-2014, 17:21
dracosha
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
PrivilegesRequired=none
OutputDir=...

[Files]
Source: compiler:license.txt; DestDir: {app};

[Run]
Filename: {app}\license.txt; Flags: postinstall shellexec;

[Code]
procedure CurPageChanged(CurPageID: Integer);
begin
case CurPageID of
wpFinished: WizardForm.RunList.ItemEnabled[0] := False;
end;
end;

Dinvin4ester
28-09-2014, 18:06
nik1967,
Огромное вам спасибо. Мне один человек скинул этот исдан.

Dodakaedr
28-09-2014, 21:26
Подскажите как при использовании BorderStyle := bsDialog; добавить свою иконку?
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
Source: "Icon Entry_3.ico"; DestDir: {tmp}; Flags: dontcopy

[Code]
function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\Icon Entry_3.ico')) then ExtractTemporaryFile('Icon Entry_3.ico');
Result := True;
end;

procedure NewIcon;
var
Icon: TNewIcon;
begin
Icon := TNewIcon.Create;
Icon.LoadFromFile(ExpandConstant('{tmp}\Icon Entry_3.ico'));
Icon.Width := 48;
Icon.Height := 48;
WizardForm.Icon.Handle := Icon.Handle;
end;

procedure InitializeWizard();
begin
NewIcon;
with WizardForm do
begin
ClientHeight:=100;
ClientWidth:=200;
BorderStyle := bsDialog;
Caption := 'xxx'
end;
end;

saurn
28-09-2014, 22:03
Dodakaedr, без изменения BorderStyle и BorderIcons. Иконка в ресурсах. Ненужные кнопки - свернуть и развернуть - отключены.
#ifndef IS_ENHANCED
#error Enhanced edition of Inno Setup (restools) is required to compile this script
#endif

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
PrivilegesRequired=none
IconResource=setup_icon:_IS_SETUP_ICON.ico
OutputDir=...


[code]
#define A = (Defined UNICODE) ? "W" : "A"


const
IMAGE_ICON = 1;

GWL_STYLE = -16;

WS_MINIMIZEBOX = $20000;
WS_MAXIMIZEBOX = $10000;


function LoadImage( hInst: UINT; ImageName: String; ImageType: UINT; X, Y: Integer; Flags: UINT ): THandle; external 'LoadImage{#A}@user32.dll stdcall';
function SetWindowLong( Wnd: HWnd; Index: Integer; NewLong: Longint ): Longint; external 'SetWindowLong{#A}@user32.dll stdcall';
function GetWindowLong( hWnd: HWND; nIndex: Integer ): Longint; external 'GetWindowLong{#A}@user32.dll stdcall';


procedure InitializeWizard();
var
hIcon: THandle;
begin
SetWindowLong( WizardForm.handle, GWL_STYLE, GetWindowLong( WizardForm.handle, GWL_STYLE ) and ( not WS_MINIMIZEBOX ) and ( not WS_MAXIMIZEBOX ) );

hIcon := LoadImage( HInstance, '_IS_SETUP_ICON', IMAGE_ICON, 16, 16, 0 );
WizardForm.Icon.Handle := hIcon;
end;

В архиве скрипт и иконка

Dodakaedr
28-09-2014, 22:21
В архиве скрипт и иконка »
Спасибо! А как указать свое имя иконки? Меняю здесь IconResource=setup_icon:My_icon.ico и здесь hIcon := LoadImage( HInstance, 'My_icon', IMAGE_ICON, 48, 48, 0 );
Не срабатывает.

saurn
28-09-2014, 22:42
Dodakaedr, стормозил спросонья)
Если нужно изменить имя иконки, меняйте его в секции Setup
IconResource=setup_icon:My_icon.ico
setup_icon - имя ресурса, его менять не нужно. My_icon.ico - имя иконки(можно указывать так же полный путь к файлу иконки, если он не рядом со скриптом)вот его и меняйте.

А в функции LoadImage должно быть указано имя ресурса( по типу _IS_имяресурса, но не имя иконки, то есть:
hIcon := LoadImage( HInstance, '_IS_SETUP_ICON', IMAGE_ICON, 48, 48, 0 );

P.S
Имя ресурса можно указать любое, например moya_iconka. Только не забудьте указать имя ресурса в функии, в данном случае _IS_MOYA_ICONKA

diman_21Ru
28-09-2014, 23:15
Всем привет, кто может дать ботву на кнопки были раньше потерял

R.i.m.s.k.y.
29-09-2014, 11:01
глянул в помощь: инно не умеет писать произвольные строки в текстовый файл?
пока выкрутился SetIniString, но может есть функция типа WriteLN() :)

nik1967
29-09-2014, 11:17
R.i.m.s.k.y., а чем function SaveStringToFile(const FileName, S: AnsiString; const Append: Boolean): Boolean;
function SaveStringsToFile(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean;
function SaveStringsToUTF8File(const FileName: String; const S: TArrayOfString; const Append: Boolean): Boolean; не угодили?

R.i.m.s.k.y.
29-09-2014, 11:20
nik1967, я про них не знал

Dodakaedr
29-09-2014, 15:49
кто может дать ботву на кнопки »
У меня такой пример есть

AlekseyPopovv
29-09-2014, 17:57
Как сделать что бы значение AppId менялось в зависимости от выбранной версии?
То есть у меня в инсталле 4 версии: free, pro, bus, tec. При установке двух версий, в панели управления остаётся только последняя, то есть вторая затирает первую. Как избавиться от этого?

Dodakaedr
29-09-2014, 20:14
Как сделать что бы значение AppId менялось в зависимости от выбранной версии? »
Попробуйте так.

AlekseyPopovv
29-09-2014, 20:38
Dodakaedr
Спасибо. Я забыл дописать вот это:

[Code]
var
AppId: String;

diman_21Ru
29-09-2014, 20:45
Как можно в даннном коде убрать галочку по умолчанию ?

[Tasks]
Name: tweaker; Description: WoT Tweaker Plus; Flags: dontinheritcheck
Name: tweaker\t1; Description: Убрать Отображение облаков; Flags: dontinheritcheck

Dodakaedr
29-09-2014, 20:47
Как можно в даннном коде убрать галочку по умолчанию ? »
[Tasks]
Name: tweaker; Description: WoT Tweaker Plus; Flags: dontinheritcheck unchecked
Name: tweaker\t1; Description: Убрать Отображение облаков; Flags: dontinheritcheck unchecked

diman_21Ru
29-09-2014, 20:53
Ребята возникла проблема в коде пишет игра не найдена в чем может быть проблема ?

function NextButtonClick(CurPageID: Integer): Boolean;
var
msg, ver: string;
begin
Result := True;

case CurPageID of
wpSelectDir:
begin
msg := '';

if not FileExists( ExpandConstant( '{app}\WorldOfTanks.exe' ) ) then
msg := 'Установка модов невозможна, так как по выбранному пути отсутствует клиент игры World of Tanks. Выберите правильный путь и продолжайте установку!'
else if GetVersionNumbersString( ExpandConstant( '{app}\WorldOfTanks.exe' ), ver) then
if ( ver <> '0.9.3' ) then
msg := 'Моды не будут работать на данной версии игры! Моды предназначены для версии патча 0.9.3 Обновите клиент игры! ';

Result := msg = '';

if not Result then
MsgBox( msg, mbError, MB_OK );
end;
end;
end;

Dodakaedr
29-09-2014, 20:56
пишет игра не найдена »
Если она действительно есть, то правильно ли она прописана и соответствует ли версия файла.




© OSzone.net 2001-2012