Войти

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


Страниц : 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

Farser21
26-01-2014, 15:14
saurn , Искал не нашел, игра только здесь. HKEY_CURRENT_USER\Software\Wargaming.net\wot\Launcher


Что, я сделал не так? http://rghost.ru/51936562

Nordek
26-01-2014, 15:25
игра только здесь. HKEY_CURRENT_USER\Software\Wargaming.net\wot\Launcher »В этой ветке реестра какие нибудь пути к игре есть? Поищи (http://forum.oszone.net/post-2272066-1714.html).

saurn
26-01-2014, 15:28
Что, я сделал не так? »
#include "BASS_Module.iss"

#define Pic1 "Зеленый"

[Setup]
SourceDir=.
OutputDir=Setup
AppName=Сборка модов к патчу 0.8.11 от Farser
AppVerName=Сборка модов к патчу 0.8.11 от Farser
AppVersion=0.8.11
DefaultDirName={code:GetPreviousDir}
DefaultGroupName=Сборка модов от Farser
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=Images\Внешний вид(Собери сам)\2.bmp
WizardSmallImageFile=Images\Внешний вид(Собери сам)\2-2.bmp
SetupIconFile=Images\Внешний вид(Собери сам)\back.ico
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
DiskSpanning=yes
DiskSliceSize=2100000000
SlicesPerDisk=1
ComponentsListTVStyle=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Run]
Filename: "{app}\WorldOfTanks.exe"; Description: "Запустить World Of Tanks после установки?"; Flags: postinstall shellexec;

[Components]
Name: g0; Description: Прицелы; Flags: dontinheritcheck
Name: g0\c1; Description: Прицел Кирилла Орешкина; Flags: exclusive
Name: g0\c1\c2; Description: Зеленый; Flags: exclusive
Name: g0\c1\c3; Description: Синий; Flags: exclusive
Name: g0\c4; Description: Minimalistic Sights (Выбор PROТанки); Flags: exclusive
Name: g0\c5; Description: Прицел от AtotIK (Выбор Вспышки); Flags: exclusive
Name: g0\c6; Description: Прицел от J1mB0 (Выбор Муразора); Flags: exclusive
Name: g0\c7; Description: Прицел от zayaz (Выбор Джова); Flags: exclusive
Name: g0\c8; Description: Белый прицел; Flags: exclusive
Name: g0\c9; Description: Корейский прицел; Flags: exclusive
Name: g0\c10; Description: Прицел от Андрея Тареева; Flags: exclusive
Name: g0\c11; Description: Спайперский прицел ZX mini; Flags: exclusive
Name: g0\c12; Description: Снайперский прицел Warface; Flags: exclusive
Name: g0\c13; Description: Снайперский прицел TAIPAN; Flags: exclusive
Name: g0\c14; Description: Снайперский прицел (Простой); Flags: exclusive
Name: g0\c15; Description: Снайперский прицел (Бирюза); Flags: exclusive
Name: g0\c16; Description: Анимированный прицел (Снайперский); Flags: exclusive
Name: g0\c17; Description: Сведение с Пробитием снаряда и Толщиной брони; Flags: exclusive

Name: g1; Description: Серверный прицел (Новый); Flags: dontinheritcheck

Name: g0; Description: Информативная панель; Flags: dontinheritcheck
Name: g0\c18; Description: Информативная панель (Стандартная); Flags: exclusive
Name: g0\c19; Description: Информативная панель (Цветная); Flags: exclusive

Name: g2; Description: Убираем черноту в снайперском режиме; Flags: dontinheritcheck

Name: g3; Description: ZoomX16 (Зум в прицеле); Flags: dontinheritcheck

Name: g4; Description: Зум; Flags: dontinheritcheck

Name: g0; Description: Арт-прицелы; Flags: dontinheritcheck
Name: g0\c20; Description: Анимированный Арт-прицел; Flags: exclusive
Name: g0\c21; Description: Арт прицел (Бирюза); Flags: exclusive
Name: g0\c22; Description: Арт-прицел (Белый); Flags: exclusive
Name: g0\c23; Description: Арт-прицел (Дамоклов меч); Flags: exclusive
Name: g0\c24; Description: Арт-прицел (Простой); Flags: exclusive
Name: g0\c25; Description: Арт-прицел Minimalistic Sights; Flags: exclusive
Name: g0\c26; Description: Арт-прицел Sting RETRO; Flags: exclusive
Name: g0\c27; Description: Арт-прицел; Flags: exclusive
Name: g0\c28; Description: Информативный арт-прицел; Flags: exclusive
Name: g0\c29; Description: Необычный Арт-прицел; Flags: exclusive

Name: g0; Description: Ангары; Flags: dontinheritcheck
Name: g0\c30; Description: Ангар к Хеллоуину от Wargaming; Flags: exclusive
Name: g0\c31; Description: Ангар от разработчиков; Flags: exclusive
Name: g0\c32; Description: Новогодний ангар от Wargaming; Flags: exclusive

Name: g0; Description: Панели повреждения; Flags: dontinheritcheck
Name: g0\c33; Description: Анимированная Дамаг панель; Flags: exclusive
Name: g0\c34; Description: Дамаг панель (Прозрачная) с таймером починки; Flags: exclusive
Name: g0\c35; Description: Дамаг панель (Прозрачная); Flags: exclusive
Name: g0\c36; Description: Дамаг панель (С новыми иконками модулей); Flags: exclusive
Name: g0\c37; Description: Дамаг панель Xbox; Flags: exclusive
Name: g0\c38; Description: Дамаг панель Бионик (Зеленый); Flags: exclusive
Name: g0\c39; Description: Дамаг панель Бионик (Черный); Flags: exclusive
Name: g0\c40; Description: Дамаг панель в стиле RPG; Flags: exclusive
Name: g0\c41; Description: Дамаг панель от zayaz; Flags: exclusive
Name: g0\c42; Description: Зеленая дамаг панель; Flags: exclusive
Name: g0\c43; Description: Китайская дамаг панель; Flags: exclusive
Name: g0\c44; Description: Стандартная дамаг панель (С логом полученного урона); Flags: exclusive

Name: g0; Description: Дамаг индикаторы; Flags: dontinheritcheck
Name: g0\c45; Description: Дамаг индикатор (Легкий); Flags: exclusive
Name: g0\c46; Description: Дамаг индикатор (Простой); Flags: exclusive
Name: g0\c47; Description: Дамаг индикатор (Пуля); Flags: exclusive
Name: g0\c48; Description: Дамаг индикатор Warface; Flags: exclusive
Name: g0\c49; Description: Дамаг индикатор; Flags: exclusive

Name: g0; Description: Маркеры фокуса; Flags: dontinheritcheck
Name: g0\c50; Description: Маркер фокуса (Атакую) желтый; Flags: exclusive
Name: g0\c51; Description: Маркер фокуса (Атакую) зеленый; Flags: exclusive
Name: g0\c52; Description: Маркер фокуса (Атакую) красный; Flags: exclusive
Name: g0\c53; Description: Маркер фокуса (Атакую) синий; Flags: exclusive

Name: g0; Description: УГН (Углы Горизонтальной Наводки); Flags: dontinheritcheck
Name: g0\c54; Description: УГН для ПТ (Желтые); Flags: exclusive
Name: g0\c55; Description: УГН для ПТ в стиле zayaz; Flags: exclusive
Name: g0\c56; Description: УГН для ПТ и Арты (MeltyMap) + Улучшеная мини-карта; Flags: exclusive
Name: g0\c57; Description: УГН для ПТ и Арты (Квадратные); Flags: exclusive
Name: g0\c58; Description: УГН для ПТ и Арты (Оранжевые); Flags: exclusive
Name: g0\c59; Description: УГН для ПТ и Арты (Скобки); Flags: exclusive

Name: g0; Description: Часы; Flags: dontinheritcheck
Name: g0\c60; Description: Часы в ангаре (С желтой подсветкой); Flags: exclusive
Name: g0\c61; Description: Часы в ангаре (С красной подсветкой); Flags: exclusive
Name: g0\c62; Description: Часы в бою; Flags: exclusive
Name: g0\c63; Description: Часы с датой в ангаре (Белые); Flags: exclusive
Name: g0\c64; Description: Часы с датой в бою (Желтые); Flags: exclusive
Name: g0\c65; Description: Часы с датой в бою; Flags: exclusive

Name: g0; Description: Мини-карты; Flags: dontinheritcheck
Name: g0\c66; Description: Мини карта (Названия танков, луч, сонар, радиус обзора, ники игроков); Flags: exclusive
Name: g0\c67; Description: Рамка для мини карты в стиле zayaz; Flags: exclusive

Name: g0; Description: Карусель танков в ангаре; Flags: dontinheritcheck
Name: g0\c68; Description: Танки в 2 ряда; Flags: exclusive
Name: g0\c69; Description: Танки в 3 ряда; Flags: exclusive

Name: g0; Description: Лампы шестого чувства; Flags: dontinheritcheck
Name: g0\c70; Description: Лампа шестого чувства в стиле zayaz; Flags: exclusive

Name: g0; Description: Иконки; Flags: dontinheritcheck
Name: g0\c71; Description: Иконки снарядов; Flags: dontinheritcheck

Name: g0; Description: Разное; Flags: dontinheritcheck
Name: g0\c72; Description: Безопасная стрельба - отключение дружеского огня; Flags: dontinheritcheck
Name: g0\c73; Description: Дебуг панель; Flags: dontinheritcheck
Name: g0\c74; Description: Души танков в виде Оленя; Flags: dontinheritcheck
Name: g0\c75; Description: Души танков; Flags: dontinheritcheck
Name: g0\c76; Description: Замена китайских имен танкистов на русские; Flags: dontinheritcheck
Name: g0\c77; Description: Колесо загрузки (Краб); Flags: dontinheritcheck
Name: g0\c78; Description: Цветные пробития; Flags: dontinheritcheck

Name: g0; Description: Шкурки; Flags: dontinheritcheck
Name: g0\c79; Description: Белые трупы уничтоженной техники; Flags: exclusive
Name: g0\c80; Description: Красные трупы уничтоженной техники; Flags: exclusive
Name: g0\c81; Description: Синие трупы уничтоженной техники; Flags: exclusive
Name: g0\c82; Description: Черные трупы уничтоженной техники; Flags: exclusive

[Files]
Source: BASS_Files\*; DestDir: {tmp}; Flags: dontcopy
Source: C:\Users\Farser\Desktop\BASS_Files\music.mp3; DestDir: {tmp}; Flags: dontcopy

Source: Images\Содержимое\{#Pic1}.bmp; Flags: dontcopy nocompression

[Icons]
Name: "{group}\{cm:UninstallProgram,World of Tanks}"; Filename: "{uninstallexe}"

[UninstallDelete]
Name: {app}; Type: dirifempty;

[Code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
UNDEF_INDEX = -777;
ALPHA_BLEND_LEVEL = 230; // max=Byte=255

WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);

Color = clblack;


type
COLORREF = DWORD;


function GetCursorPos(var lpPoint: TPoint): BOOL;
external 'GetCursorPos@user32.dll stdcall';
function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean;
external 'SetLayeredWindowAttributes@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint;
external 'GetWindowLong{#A}@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint;
external 'SetWindowLong{#A}@user32.dll stdcall';
function SetFocus(hWnd: HWND): HWND;
external 'SetFocus@user32.dll stdcall';


var
InfoPic: TBitmapImage;
LastIndex: Integer;
TempPath: String;
PicForm: TForm;


function GetPreviousDir(const Buff: String): String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', Buff); //ветка реестра World of Tanks
if Buff <> '' then Result := RemoveBackslash(Buff);
end;

function InitializeSetup(): Boolean;
var
Buff: String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'UninstallString', Buff);
Result := FileExists(RemoveQuotes(Buff));
if not Result then MsgBox('Игра не найдена!', mbError, mb_ok);
end;


procedure ShowPicHint(const PicFilePath: String);
var
pt: TPoint;
begin
if not GetCursorPos(pt) then Exit;
InfoPic.Bitmap.LoadFromFile(PicFilePath);
try
with PicForm do
begin
// SetBounds(ScaleX(pt.x + 16), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height);
Left := ScaleX(700); // Слева
Top := ScaleY(545); // Сверху
Width := ScaleX(280); // Ширина
Height := ScaleY(215); // Высота
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA);
Show;
end;
finally
SetFocus(WizardForm.Handle);
end;
end;


procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
UndefPic: String;
begin
if Index = -1 then Exit;
if Index = LastIndex then Exit;
try
case TNewCheckListBox(Sender).ItemCaption[Index] of
'Зеленый': UndefPic := '{#Pic1}.bmp';
else
begin
LastIndex := UNDEF_INDEX;
PicForm.Hide;
Exit;
end;
end;
if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
ShowPicHint(TempPath + UndefPic);
finally
LastIndex := Index;
end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
PicForm.Hide;
end;


procedure InitInfo();
begin
WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
TempPath := AddBackslash(ExpandConstant('{tmp}'));
LastIndex := UNDEF_INDEX;
PicForm := TForm.Create(WizardForm)
with PicForm do
begin
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
InfoPic := TBitmapImage.Create(PicForm)
with InfoPic do
begin
Parent := PicForm;
AutoSize := True;
end;
end;
end;

procedure InitializeWizard();
var
i, iCount: Integer;
begin
InitInfo();
WizardForm.TypesCombo.Visible := False;

iCount := WizardForm.ComponentsList.Items.Count - 1;

for i := iCount downto 0 do
WizardForm.ComponentsList.Checked[i]:= False;

ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('MusicButton.png');
ExtractTemporaryFile('Music.mp3');

BASS_Init('{tmp}\Music.mp3') //Запускаем музыку
//Можно добавить в инсталл несколько песен
//BASS_Init(ExpandConstant('{tmp}\*')) //Поиск по маске
BASS_CreateOnOffButton(WizardForm, '{tmp}\MusicButton.png', 3, 465, 36, 36, 4) //Создаем кнопку вкл/выкл
end;

procedure DeinitializeSetup();
begin
BASS_DeInit; //Освобождаем процесс
gdipShutdown
end;

Farser21
26-01-2014, 16:00
saurn и Nordek, спасибо за вашу помощь. Теперь все находит.

Как убрать это окошко?
http://s019.radikal.ru/i644/1401/22/91b1b43654d4.png
Заранее спасибо!

saurn
26-01-2014, 16:13
Как убрать это окошко? »
http://forum.oszone.net/post-2292921-1915.html

innot20
26-01-2014, 16:24
Здравствуйте, подскажите как сделать автозапоминание компонентов при следующей установке

Farser21
26-01-2014, 16:32
saurn, Спасибо

Farser21
26-01-2014, 16:56
saurn, я попробовал способ удаление старых компонентов который вы скинули это немного не то.

Возможно вывести сюда галочку на удаление компонентов?

http://s019.radikal.ru/i611/1401/21/63e5788a8cb5.png

Nordek
26-01-2014, 17:00
как сделать автозапоминание компонентов при следующей установке »Если устанавливать поверх установки из того же инсталлятора, то реестр и так помнит какие были установлены ранее компоненты.

Если же чистая установка, то воспользуйся параметрами командной строки:
/SAVEINF="filename"
Указывает инсталлятору сохранять параметры установки в указанный файл.
Не забудьте ставить кавычки при использовании имен, содержащих пробелы.

Например сохранение настроек в файл setup.ini:
Твой_инсталлятор.exe /SAVEINF="setup.ini"

/LOADINF="filename"
Указывает инсталлятору загрузить параметры установки из указанного файла после проверки командной строки. Этот файл может быть подготовлен с помощью /LOADINF="command".

Например загрузка ранее сохранённых настроек из файла setup.ini:
Твой_инсталлятор.exe /LOADINF="setup.ini"

innot20
26-01-2014, 17:14
при установке поверх установки из того же инсталлятора
галочки всё равно не запоминаются

saurn
26-01-2014, 18:07
Возможно вывести сюда галочку на удаление компонентов? »
Для начала надо знать какие компоненты удалять. Или просто грохнуть все, что есть в папке?

Здравствуйте, подскажите как сделать автозапоминание компонентов при следующей установке »
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=...


[Components]
Name: program1; Description: Компонент 1; Types: full
Name: program2; Description: Компонент 2; Types: full
Name: program3; Description: Компонент 3; Types: full


[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Components: program1;
Source: compiler:Examples\MyProg-x64.exe; DestDir: {app}; Components: program2;
Source: compiler:Examples\MyProg-IA64.exe; DestDir: {app}; Components: program3;


[Code]
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
SetPreviousData(PreviousDataKey, 'Компонент 1', IntToStr(Ord(WizardForm.ComponentsList.Checked[0])));
SetPreviousData(PreviousDataKey, 'Компонент 2', IntToStr(Ord(WizardForm.ComponentsList.Checked[1])));
SetPreviousData(PreviousDataKey, 'Компонент 3', IntToStr(Ord(WizardForm.ComponentsList.Checked[2])));
end;

procedure InitializeWizard();
begin
WizardForm.ComponentsList.Checked[0] := GetPreviousData('Компонент 1', '1') = '1';
WizardForm.ComponentsList.Checked[1] := GetPreviousData('Компонент 2', '1') = '1';
WizardForm.ComponentsList.Checked[2] := GetPreviousData('Компонент 3', '1') = '1';
end;

Farser21
26-01-2014, 18:54
saurn,ну вот у меня есть папка res_mods, чтобы удалить все содержимое этой папки

1specific
26-01-2014, 19:08
Добрые люди, скажите пожалуйста, как в inno setup сделать так, чтоб человек выбирал свою операционную систему, и в соответствии с его выбором в установленную директорию копировался файл1 или файл2.
При этом нужно сделать так, чтоб человек не упустил этот пункт выбора ОС, т.к. от этого в итоге зависит работоспособность приложения.

Я пробовал добавлять в установщик пункты radio button, но там проблема в том, что по дефолту один уже выбран, а сделать так, чтоб небыло выбрано ничего нельзя (unchecked работает только на 1 пункт)
Пробовал модифицировать диалог выбора языка на диалог выбора windows, но проблема почти такая же что и с radio buttons - изначально уже выбрано что-то, а переделать его графически не представляется возможным.
В общем нужно чтоб человек сам выбрал свою версию ОС, и его не пускало дальше, если он не сделал выбор.
Спасибо! ))

Nordek
26-01-2014, 19:24
как в inno setup сделать так, чтоб человек выбирал свою операционную систему »
Inno может автоматически определять операционную систему, используй MinVersion (http://forum.oszone.net/post-2283435-1809.html)

[Files]
Source: MyProg1.exe; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,5.01
Source: MyProg2.exe; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,6.0

1specific
26-01-2014, 19:49
Nordek,
Большое спасибо, однако в дальнейшем планирую не только выбор ОС предлагать пользователю, но и выбор языка приложения, поэтому лучше наврено чтоб он сам выбрал.
ВО вторых я не сильно доверяю автоматическому определению )) Например когда выйдет 8.2, а в установщике он не прописан, что будет в таком случае делать установщик?

И скажите еще пожалуйста, как здесь указать несколько версий виндус? MinVersion: 0,5.01
Через пробел не получается :)
И нужно ли для сервис паков (sp1, sp2) указывать тоже, или достаточно просто указать для XP, и туда войдут все SP?

Или MinVersion можно перевести буквально - минимальная версия виндус? И если я указжу в первый ХР, а во второй 8, то в первом будет все от ХР до 7 включительно, а в 8 от 8 и дальше включительно?

saurn
26-01-2014, 20:15
ну вот у меня есть папка res_mods, чтобы удалить все содержимое этой папки »
#include "BASS_Module.iss"

#define Pic1 "Зеленый"

[Setup]
SourceDir=.
OutputDir=Setup
AppName=Сборка модов к патчу 0.8.11 от Farser
AppVerName=Сборка модов к патчу 0.8.11 от Farser
AppVersion=0.8.11
DefaultDirName={code:GetPreviousDir}
DefaultGroupName=Сборка модов от Farser
AllowNoIcons=yes
OutputBaseFilename=setup
WizardImageFile=Images\Внешний вид(Собери сам)\2.bmp
WizardSmallImageFile=Images\Внешний вид(Собери сам)\2-2.bmp
SetupIconFile=Images\Внешний вид(Собери сам)\back.ico
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/normal
DiskSpanning=yes
DiskSliceSize=2100000000
SlicesPerDisk=1
ComponentsListTVStyle=yes

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[Run]
Filename: "{app}\WorldOfTanks.exe"; Description: "Запустить World Of Tanks после установки?"; Flags: postinstall shellexec;

[Components]
Name: g0; Description: Прицелы; Flags: dontinheritcheck
Name: g0\c1; Description: Прицел Кирилла Орешкина; Flags: exclusive
Name: g0\c1\c2; Description: Зеленый; Flags: exclusive
Name: g0\c1\c3; Description: Синий; Flags: exclusive
Name: g0\c4; Description: Minimalistic Sights (Выбор PROТанки); Flags: exclusive
Name: g0\c5; Description: Прицел от AtotIK (Выбор Вспышки); Flags: exclusive
Name: g0\c6; Description: Прицел от J1mB0 (Выбор Муразора); Flags: exclusive
Name: g0\c7; Description: Прицел от zayaz (Выбор Джова); Flags: exclusive
Name: g0\c8; Description: Белый прицел; Flags: exclusive
Name: g0\c9; Description: Корейский прицел; Flags: exclusive
Name: g0\c10; Description: Прицел от Андрея Тареева; Flags: exclusive
Name: g0\c11; Description: Спайперский прицел ZX mini; Flags: exclusive
Name: g0\c12; Description: Снайперский прицел Warface; Flags: exclusive
Name: g0\c13; Description: Снайперский прицел TAIPAN; Flags: exclusive
Name: g0\c14; Description: Снайперский прицел (Простой); Flags: exclusive
Name: g0\c15; Description: Снайперский прицел (Бирюза); Flags: exclusive
Name: g0\c16; Description: Анимированный прицел (Снайперский); Flags: exclusive
Name: g0\c17; Description: Сведение с Пробитием снаряда и Толщиной брони; Flags: exclusive

Name: g1; Description: Серверный прицел (Новый); Flags: dontinheritcheck

Name: g0; Description: Информативная панель; Flags: dontinheritcheck
Name: g0\c18; Description: Информативная панель (Стандартная); Flags: exclusive
Name: g0\c19; Description: Информативная панель (Цветная); Flags: exclusive

Name: g2; Description: Убираем черноту в снайперском режиме; Flags: dontinheritcheck

Name: g3; Description: ZoomX16 (Зум в прицеле); Flags: dontinheritcheck

Name: g4; Description: Зум; Flags: dontinheritcheck

Name: g0; Description: Арт-прицелы; Flags: dontinheritcheck
Name: g0\c20; Description: Анимированный Арт-прицел; Flags: exclusive
Name: g0\c21; Description: Арт прицел (Бирюза); Flags: exclusive
Name: g0\c22; Description: Арт-прицел (Белый); Flags: exclusive
Name: g0\c23; Description: Арт-прицел (Дамоклов меч); Flags: exclusive
Name: g0\c24; Description: Арт-прицел (Простой); Flags: exclusive
Name: g0\c25; Description: Арт-прицел Minimalistic Sights; Flags: exclusive
Name: g0\c26; Description: Арт-прицел Sting RETRO; Flags: exclusive
Name: g0\c27; Description: Арт-прицел; Flags: exclusive
Name: g0\c28; Description: Информативный арт-прицел; Flags: exclusive
Name: g0\c29; Description: Необычный Арт-прицел; Flags: exclusive

Name: g0; Description: Ангары; Flags: dontinheritcheck
Name: g0\c30; Description: Ангар к Хеллоуину от Wargaming; Flags: exclusive
Name: g0\c31; Description: Ангар от разработчиков; Flags: exclusive
Name: g0\c32; Description: Новогодний ангар от Wargaming; Flags: exclusive

Name: g0; Description: Панели повреждения; Flags: dontinheritcheck
Name: g0\c33; Description: Анимированная Дамаг панель; Flags: exclusive
Name: g0\c34; Description: Дамаг панель (Прозрачная) с таймером починки; Flags: exclusive
Name: g0\c35; Description: Дамаг панель (Прозрачная); Flags: exclusive
Name: g0\c36; Description: Дамаг панель (С новыми иконками модулей); Flags: exclusive
Name: g0\c37; Description: Дамаг панель Xbox; Flags: exclusive
Name: g0\c38; Description: Дамаг панель Бионик (Зеленый); Flags: exclusive
Name: g0\c39; Description: Дамаг панель Бионик (Черный); Flags: exclusive
Name: g0\c40; Description: Дамаг панель в стиле RPG; Flags: exclusive
Name: g0\c41; Description: Дамаг панель от zayaz; Flags: exclusive
Name: g0\c42; Description: Зеленая дамаг панель; Flags: exclusive
Name: g0\c43; Description: Китайская дамаг панель; Flags: exclusive
Name: g0\c44; Description: Стандартная дамаг панель (С логом полученного урона); Flags: exclusive

Name: g0; Description: Дамаг индикаторы; Flags: dontinheritcheck
Name: g0\c45; Description: Дамаг индикатор (Легкий); Flags: exclusive
Name: g0\c46; Description: Дамаг индикатор (Простой); Flags: exclusive
Name: g0\c47; Description: Дамаг индикатор (Пуля); Flags: exclusive
Name: g0\c48; Description: Дамаг индикатор Warface; Flags: exclusive
Name: g0\c49; Description: Дамаг индикатор; Flags: exclusive

Name: g0; Description: Маркеры фокуса; Flags: dontinheritcheck
Name: g0\c50; Description: Маркер фокуса (Атакую) желтый; Flags: exclusive
Name: g0\c51; Description: Маркер фокуса (Атакую) зеленый; Flags: exclusive
Name: g0\c52; Description: Маркер фокуса (Атакую) красный; Flags: exclusive
Name: g0\c53; Description: Маркер фокуса (Атакую) синий; Flags: exclusive

Name: g0; Description: УГН (Углы Горизонтальной Наводки); Flags: dontinheritcheck
Name: g0\c54; Description: УГН для ПТ (Желтые); Flags: exclusive
Name: g0\c55; Description: УГН для ПТ в стиле zayaz; Flags: exclusive
Name: g0\c56; Description: УГН для ПТ и Арты (MeltyMap) + Улучшеная мини-карта; Flags: exclusive
Name: g0\c57; Description: УГН для ПТ и Арты (Квадратные); Flags: exclusive
Name: g0\c58; Description: УГН для ПТ и Арты (Оранжевые); Flags: exclusive
Name: g0\c59; Description: УГН для ПТ и Арты (Скобки); Flags: exclusive

Name: g0; Description: Часы; Flags: dontinheritcheck
Name: g0\c60; Description: Часы в ангаре (С желтой подсветкой); Flags: exclusive
Name: g0\c61; Description: Часы в ангаре (С красной подсветкой); Flags: exclusive
Name: g0\c62; Description: Часы в бою; Flags: exclusive
Name: g0\c63; Description: Часы с датой в ангаре (Белые); Flags: exclusive
Name: g0\c64; Description: Часы с датой в бою (Желтые); Flags: exclusive
Name: g0\c65; Description: Часы с датой в бою; Flags: exclusive

Name: g0; Description: Мини-карты; Flags: dontinheritcheck
Name: g0\c66; Description: Мини карта (Названия танков, луч, сонар, радиус обзора, ники игроков); Flags: exclusive
Name: g0\c67; Description: Рамка для мини карты в стиле zayaz; Flags: exclusive

Name: g0; Description: Карусель танков в ангаре; Flags: dontinheritcheck
Name: g0\c68; Description: Танки в 2 ряда; Flags: exclusive
Name: g0\c69; Description: Танки в 3 ряда; Flags: exclusive

Name: g0; Description: Лампы шестого чувства; Flags: dontinheritcheck
Name: g0\c70; Description: Лампа шестого чувства в стиле zayaz; Flags: exclusive

Name: g0; Description: Иконки; Flags: dontinheritcheck
Name: g0\c71; Description: Иконки снарядов; Flags: dontinheritcheck

Name: g0; Description: Разное; Flags: dontinheritcheck
Name: g0\c72; Description: Безопасная стрельба - отключение дружеского огня; Flags: dontinheritcheck
Name: g0\c73; Description: Дебуг панель; Flags: dontinheritcheck
Name: g0\c74; Description: Души танков в виде Оленя; Flags: dontinheritcheck
Name: g0\c75; Description: Души танков; Flags: dontinheritcheck
Name: g0\c76; Description: Замена китайских имен танкистов на русские; Flags: dontinheritcheck
Name: g0\c77; Description: Колесо загрузки (Краб); Flags: dontinheritcheck
Name: g0\c78; Description: Цветные пробития; Flags: dontinheritcheck

Name: g0; Description: Шкурки; Flags: dontinheritcheck
Name: g0\c79; Description: Белые трупы уничтоженной техники; Flags: exclusive
Name: g0\c80; Description: Красные трупы уничтоженной техники; Flags: exclusive
Name: g0\c81; Description: Синие трупы уничтоженной техники; Flags: exclusive
Name: g0\c82; Description: Черные трупы уничтоженной техники; Flags: exclusive

[Files]
Source: BASS_Files\*; DestDir: {tmp}; Flags: dontcopy
Source: C:\Users\Farser\Desktop\BASS_Files\music.mp3; DestDir: {tmp}; Flags: dontcopy

Source: Images\Содержимое\{#Pic1}.bmp; Flags: dontcopy nocompression

[Icons]
Name: "{group}\{cm:UninstallProgram,World of Tanks}"; Filename: "{uninstallexe}"

[InstallDelete]
Name: {app}\res_mods\*; Type: filesandordirs; Check: IsChecked();

[UninstallDelete]
Name: {app}; Type: dirifempty;


[Code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
UNDEF_INDEX = -777;
ALPHA_BLEND_LEVEL = 230; // max=Byte=255

WS_EX_LAYERED = $80000;
WS_EX_TRANSPARENT = $20;
LWA_COLORKEY = 1;
LWA_ALPHA = 2;
GWL_EXSTYLE = (-20);

Color = clblack;


type
COLORREF = DWORD;


function GetCursorPos(var lpPoint: TPoint): BOOL;
external 'GetCursorPos@user32.dll stdcall';
function SetLayeredWindowAttributes(Hwnd: THandle; crKey: COLORREF; bAlpha: Byte; dwFlags: DWORD): Boolean;
external 'SetLayeredWindowAttributes@user32.dll stdcall';
function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint;
external 'GetWindowLong{#A}@user32.dll stdcall';
function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint;
external 'SetWindowLong{#A}@user32.dll stdcall';
function SetFocus(hWnd: HWND): HWND;
external 'SetFocus@user32.dll stdcall';


var
InfoPic: TBitmapImage;
LastIndex: Integer;
TempPath: String;
PicForm: TForm;
deleteChk: TCheckBox;


function GetPreviousDir(const Buff: String): String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'InstallLocation', Buff); //ветка реестра World of Tanks
if Buff <> '' then Result := RemoveBackslash(Buff);
end;

function InitializeSetup(): Boolean;
var
Buff: String;
begin
RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{1EAC1D02-C6AC-4FA6-9A44-96258C37C812RU}_is1', 'UninstallString', Buff);
Result := FileExists(RemoveQuotes(Buff));
if not Result then MsgBox('Игра не найдена!', mbError, mb_ok);
end;


function IsChecked(): Boolean;
begin
Result := deleteChk.Checked;
end;


procedure ShowPicHint(const PicFilePath: String);
var
pt: TPoint;
begin
if not GetCursorPos(pt) then Exit;
InfoPic.Bitmap.LoadFromFile(PicFilePath);
try
with PicForm do
begin
// SetBounds(ScaleX(pt.x + 16), ScaleY(pt.y + 7), InfoPic.Width, InfoPic.Height);
Left := ScaleX(700); // Слева
Top := ScaleY(545); // Сверху
Width := ScaleX(280); // Ширина
Height := ScaleY(215); // Высота
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
SetLayeredWindowAttributes(Handle, 0, ALPHA_BLEND_LEVEL, LWA_ALPHA);
Show;
end;
finally
SetFocus(WizardForm.Handle);
end;
end;


procedure CompOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
var
UndefPic: String;
begin
if Index = -1 then Exit;
if Index = LastIndex then Exit;
try
case TNewCheckListBox(Sender).ItemCaption[Index] of
'Зеленый': UndefPic := '{#Pic1}.bmp';
else
begin
LastIndex := UNDEF_INDEX;
PicForm.Hide;
Exit;
end;
end;
if not FileExists(TempPath + UndefPic) then ExtractTemporaryFile(UndefPic);
ShowPicHint(TempPath + UndefPic);
finally
LastIndex := Index;
end;
end;


procedure CompOnMouseLeave(Sender: TObject);
begin
PicForm.Hide;
end;


procedure InitInfo();
begin
WizardForm.ComponentsList.OnItemMouseMove := @CompOnItemMouseMove;
WizardForm.ComponentsList.OnMouseLeave := @CompOnMouseLeave;
TempPath := AddBackslash(ExpandConstant('{tmp}'));
LastIndex := UNDEF_INDEX;
PicForm := TForm.Create(WizardForm)
with PicForm do
begin
BorderStyle := bsNone;
FormStyle := fsStayOnTop;
InfoPic := TBitmapImage.Create(PicForm)
with InfoPic do
begin
Parent := PicForm;
AutoSize := True;
end;
end;
end;

procedure InitializeWizard();
var
i, iCount: Integer;
begin
InitInfo();
WizardForm.TypesCombo.Visible := False;

iCount := WizardForm.ComponentsList.Items.Count - 1;

for i := iCount downto 0 do
WizardForm.ComponentsList.Checked[i]:= False;

deleteChk := TCheckBox.Create(nil);
with deleteChk do
begin
Parent := WizardForm.SelectDirPage;
SetBounds(ScaleX(0), ScaleY(115), ScaleX(400), ScaleY(15));
Caption := 'Удалить старые компоненты';
Checked := True;
end;

ExtractTemporaryFile('BASS.dll');
ExtractTemporaryFile('CallbackCtrl.dll');
ExtractTemporaryFile('botva2.dll');
ExtractTemporaryFile('MusicButton.png');
ExtractTemporaryFile('Music.mp3');

BASS_Init('{tmp}\Music.mp3') //Запускаем музыку
//Можно добавить в инсталл несколько песен
//BASS_Init(ExpandConstant('{tmp}\*')) //Поиск по маске
BASS_CreateOnOffButton(WizardForm, '{tmp}\MusicButton.png', 3, 465, 36, 36, 4) //Создаем кнопку вкл/выкл
end;

procedure DeinitializeSetup();
begin
BASS_DeInit; //Освобождаем процесс
gdipShutdown
end;


----------------------------------------------------
1specific
Пост #248 (http://forum.oszone.net/post-2136010-248.html)

Nordek
26-01-2014, 20:27
И скажите еще пожалуйста, как здесь указать несколько версий виндус? »MinVersion использовать совместно с OnlyBelowVersion

MinVersion - Минимальная версия Windows | начало т.е от
OnlyBelowVersion - Только ниже версия Windows | конец т.е до

Пример 1
[Files]
Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,5.01; OnlyBelowVersion: 0,6.0

это значит начиная от Windows XP до Windows Vista т.е на Windows Vista уже не установится.

Пример 2
[Files]
Source: C:\Program Files\Inno Setup 5\Examples\MyProg.exe; DestDir: {app}; Flags: ignoreversion; MinVersion: 0,6.0; OnlyBelowVersion: 0,6.2

это значит начиная от Windows Vista до Windows 8 т.е на Windows 8 уже не установится.

diman_21Ru
26-01-2014, 21:16
Всем привет кто может помочь как можно что бы наводя на программу или мод картинка выходила в специальный уголок как на скрине !

saurn
26-01-2014, 21:21
diman_21Ru, было несколькими страницами ранее http://forum.oszone.net/post-2296393-1949.html

diman_21Ru
26-01-2014, 21:27
TAY50N,какие строчки ты именно добавил чтобы наводя на мод выходила картинка с боку ?




© OSzone.net 2001-2012