Войти

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


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

Dodakaedr
21-02-2015, 16:12
сам скрипт »
а файлы для его работы где взять???

Tixo
21-02-2015, 16:17
http://rghost.ru/6Sdf9gdX2 звиняюсь не подумал)

Dodakaedr
21-02-2015, 16:39
Tixo, Fix script (http://rghost.ru/private/8JZvMYKjG/bc347a69fc0ce057064395cc3eb9b263). Тестил на расширенном юникоде.

Tixo
21-02-2015, 16:49
хм страннО, у меня отказывается показывать скин(

Dodakaedr
21-02-2015, 16:57
Tixo, A какая у вас версия inno? Unicode или Ansi?

Tixo
21-02-2015, 16:59
ansi

Dodakaedr
21-02-2015, 17:01
Tixo, понятно. Замените IsSkinAnsi (http://rghost.ru/private/6JFkHmYDS/b4454a96218b9906c96e3fb90969e10c)

Tixo
21-02-2015, 17:03
все теперь все заработало) благодарю)

Irenis
22-02-2015, 00:41
Здравствуйте уважаемые форумчане)) Очень нужна помощь...
Вот в чем суть. Нужно, чтобы после установки игры, в меню пуск создавалась папка (с моим названием), а в этой папке было несколько кликабельных ярлыков со ссылками, одна ссылка например на общий сайт разработчика, а вторая конкретно на игру. При этом хотелось бы, чтоб один ярлык так и назывался "сайт разработчика", а второй "сайт игры", ну а при нажатии происходил переход по заданной ссылке для каждого ярлыка. Ну и еще желательно, чтоб для каждого ярлыка можно было задать свою иконку.
Подскажите, возможно ли это как то реализовать? И если возможно, помогите, пожалуйста, со скриптом :blush2: Буду благодарна :)

kotyarko@fb
22-02-2015, 03:40
Подскажите, возможно ли это как то реализовать? И если возможно, помогите, пожалуйста, со скриптом »
Ну вариантов можно сделать очень много, всё зависит от мелочей (принудительная ли должна быть установка этих ярлыков, зависит ли их установка от каких-то параметров, компонентов и т.д.).
#define DeveloperSite "http://...com"
#define GameSite "http://...com"

[Setup]
AppName=Shortcuts Creator
AppVerName=0
DefaultGroupName=Shortcuts
DefaultDirName=.

[Icons]
Name: "{group}\Сайт разработчика"; Filename: "{#DeveloperSite}"; Check: GroupShortcuts(1)
Name: "{group}\Сайт игры"; Filename: "{#GameSite}"; Check: GroupShortcuts(2)

[_Code]
Function GroupShortcuts(Idx: Integer): Boolean;
begin
case Idx of
//здесь можно указать определённое условие, при котором будут устанавливаться ярлыки (для 1-го и 2-го соответственно)
1: Result := True;
2: Result := True;
end;
end;

palsn2000
22-02-2015, 08:24
Доброе время суток!
Делаю инсталлятор, во время установки играет музыка с помощью bass.dll
используется один MP3 файл, музыка зациклена: BASS_SAMPLE_LOOP = 4
сделал на основе примера с какого-то сайта, музыка останавливается и библиотека выгружается в самом конце по процедуре:

procedure DeinitializeSetup();
begin
BASS_Stop();
BASS_Free();
end;


Возник вопрос: можно ли сделать так, чтобы по окончании установки (когда доходим до FinishedPage) основной зацикленный файл MP3 глушился, а вместо него однократно воспроизводился бы другой?

Типа устанавливаем "увесистую" программу - процесс длительный - параллельно инсталлятор развлекает нас тихой классической музыкой, нам всё равно надоело ждать и мы уснули или пошли обедать, в это время инсталлятор наконец выполнил свою задачу и извещает нас об этом, например, с помощью записи паровозного гудка :)

Irenis
22-02-2015, 11:19
зависит от мелочей (принудительная ли должна быть установка этих ярлыков, зависит ли их установка от каких-то параметров »
Спасибо, буду пробовать :) Установка да, желательно принудительная. От параметров не зависит, просто установилась игра, и при этом появились ярлыки. Еще не поняла, ярлыки эти в папке будут или просто по отдельности в меню пуск? И как сделать, если допустим нужно не два, а три ярлыка со ссылками? Спасибо :yes:

TryRooM
22-02-2015, 12:19
Irenis, если допустим нужно не два, а три ярлыка со ссылками
Выбирайте варианты

системная иконка ie IconFilename: {sys}\shell32.dll; IconIndex: 220;

[Files]
Source: "A.url"; DestDir: "{app}";
Source: "Buy.url"; DestDir: "{app}";
Source: "Set.url"; DestDir: "{app}";

[Icons]
Name: {group}\Online 3; Filename: {app}\A.url; WorkingDir: {app}; IconFilename: {sys}\shell32.dll; IconIndex: 220;
Name: {group}\Online 2; Filename: {app}\Buy.url; WorkingDir: {app}; IconFilename: {sys}\shell32.dll; IconIndex: 220;
Name: {group}\Online; Filename: {app}\Set.url; WorkingDir: {app}; IconFilename: {sys}\shell32.dll; IconIndex: 220;
/////////////////////////////////
[Icons]
Name: {group}\Online 3; Filename: http://forum.ru-board.com; IconFilename: {sys}\shell32.dll; IconIndex: 220;
Name: {group}\Online 2; Filename: http://forum.ru-board.com; IconFilename: {sys}\shell32.dll; IconIndex: 220;
Name: {group}\Online; Filename: http://forum.ru-board.com; IconFilename: {sys}\shell32.dll; IconIndex: 220;
/////////////////////////////////
[Files]
Source: "file.ico"; DestDir: "{app}"; если нужны свои иконки, то прописываем их

[Icons]
Name: {group}\Online 3; Filename: http://forum.ru-board.com; WorkingDir: {app}; IconFilename: {app}\file.ico;
Name: {group}\Online 2; Filename: http://forum.ru-board.com; WorkingDir: {app}; IconFilename: {app}\file.ico;
Name: {group}\Online; Filename: http://forum.ru-board.com; WorkingDir: {app}; IconFilename: {app}\file.ico;

Irenis
22-02-2015, 13:15
TryRooM, и Вам спасибо большое :)

В общем методом тыка получилось, примерно поняла как делать эти ссылки, оказалось не так сложно. Но так же оказалось, что это немножко не то. Эти ярлыки создаются в папке с игрой, эта папка оказывается где то внизу и ее не видно, если специально не искать.
А хочется, чтоб папка была вверху и отдельно от игры. То есть отдельная папка с моими ссылками. Допустим, у себя я нажала меню пуск, у меня там высвечиваются последние установленные приложения. И например есть Inno Setup, и в этой строке с Inno Setup есть стрелочка, на которую нажимаешь и открываются сбоку разные скрипты. Как бы сделать что то подобное, чтоб сверху создавалась папка, которую можно развернуть, а там ссылки, можно даже обычные, со стандартными ярлыками. Или это я слишком много хочу и так нельзя сделать? Уж извините за неопытность :blush:

roman_kudin@vk
22-02-2015, 13:45
У кого есть исходник полного изменения вида инсталлятора, поделитесь пожалуйста.

TryRooM
22-02-2015, 13:52
Irenis, создавалась папка, которую можно развернуть, а там ссылки

Name: {group}\Иконки\Online 3; Filename: http://forum.ru-board.com; IconFilename: {sys}\shell32.dll; IconIndex: 220;
Name: {group}\Иконки\Online 2; Filename: http://forum.ru-board.com; IconFilename: {sys}\shell32.dll; IconIndex: 220;
Name: {group}\Иконки\Online; Filename: http://forum.ru-board.com; IconFilename: {sys}\shell32.dll; IconIndex: 220;

Irenis
22-02-2015, 14:15
создавалась папка, которую можно развернуть, а там ссылки »
Ну да, это понятно, папка разворачивалась, и там были ссылки. Просто эта папка создается где то внизу и ее не видно, к тому же в этой папке кроме ссылок еще другие составляющие игры. А хочется такую папку в самом верху меню пуск и чтоб этой папке можно было дать другое название, которое отличается от названия самой игры, и чтоб в папке ничего кроме ссылок не было.

Ладно, скажу честно, в этой папке будут находиться несколько ссылок на сайты, не связанные с игрой :blush2: И нужно, чтобы человек установив игру или приложение, даже не совсем понял, откуда у него в меню пуск взялась папка со ссылками. Думала, может сделать, чтоб такая папочка создавалась автоматически на рабочем столе при установке приложения, но это я тоже не умею, да и в меню пуск вроде не так заметно. Точнее мне нужно, чтоб было заметно, но не сразу после установки игры))

TryRooM
22-02-2015, 14:31
Irenis,

Source: "Установка иконок\*"; DestDir: "{userdesktop}\Установка иконок"; Flags: ignoreversion recursesubdirs createallsubdirs;

Папка будет на рабочем столе.
В любом случае, надо дать пользователю возможность выбора установки дополнения.

kotyarko@fb
22-02-2015, 20:50
можно ли сделать так, чтобы по окончании установки (когда доходим до FinishedPage) основной зацикленный файл MP3 глушился, а вместо него однократно воспроизводился бы другой? »
Если я правильно понял, то вам нужно что-то типа этого (в дополнение к основному коду):
Const //Вот только точно не знаю, какие из них за что отвечают.
BASS_ACTIVE_STOPPED = 0;
BASS_ACTIVE_PLAYING = 1;
BASS_ACTIVE_STALLED = 2;

Procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpFinished then
begin
if BASS_Stop then //останавливаем музыку, которая играла до этого
begin
ExtractTemporaryFile('sound2.mp3'); //загружаем новую мелодию
mp3Name := ExpandConstant('{tmp}\sound2.mp3');
BASS_Init(-1, 44100, 0, 0, 0);
mp3Handle := BASS_StreamCreateFile(FALSE, PAnsiChar(mp3Name), 0, 0, 0, 0, BASS_ACTIVE_STALLED);
BASS_Start();
BASS_ChannelPlay(mp3Handle, False);
end;
end;
end;

roman_kudin@vk
22-02-2015, 23:09
Подскажите, как скин прикрутить?

[Files]
Source: "1.bmp"; DestName: "1.bmp"; Flags: dontcopy
Source: "2.bmp"; DestName: "2.bmp"; Flags: dontcopy
Source: "theme.cjstyles"; DestDir: {tmp}; Flags: dontcopy
Source: "ISSkin.dll"; DestDir: {tmp}; Flags: dontcopy

[ Code]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer;
external 'ShowWindow@user32.dll stdcall';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('theme.cjstyles');
LoadSkin(ExpandConstant('{tmp}\theme.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
UnloadSkin();
end;

способом вЬІше не получаеться.




© OSzone.net 2001-2012