Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
Dodakaedr
21-02-2015, 16:12
сам скрипт »
а файлы для его работы где взять???
http://rghost.ru/6Sdf9gdX2 звиняюсь не подумал)
Dodakaedr
21-02-2015, 16:39
Tixo, Fix script (http://rghost.ru/private/8JZvMYKjG/bc347a69fc0ce057064395cc3eb9b263). Тестил на расширенном юникоде.
хм страннО, у меня отказывается показывать скин(
Dodakaedr
21-02-2015, 16:57
Tixo, A какая у вас версия inno? Unicode или Ansi?
Dodakaedr
21-02-2015, 17:01
Tixo, понятно. Замените IsSkinAnsi (http://rghost.ru/private/6JFkHmYDS/b4454a96218b9906c96e3fb90969e10c)
все теперь все заработало) благодарю)
Здравствуйте уважаемые форумчане)) Очень нужна помощь...
Вот в чем суть. Нужно, чтобы после установки игры, в меню пуск создавалась папка (с моим названием), а в этой папке было несколько кликабельных ярлыков со ссылками, одна ссылка например на общий сайт разработчика, а вторая конкретно на игру. При этом хотелось бы, чтоб один ярлык так и назывался "сайт разработчика", а второй "сайт игры", ну а при нажатии происходил переход по заданной ссылке для каждого ярлыка. Ну и еще желательно, чтоб для каждого ярлыка можно было задать свою иконку.
Подскажите, возможно ли это как то реализовать? И если возможно, помогите, пожалуйста, со скриптом :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 глушился, а вместо него однократно воспроизводился бы другой?
Типа устанавливаем "увесистую" программу - процесс длительный - параллельно инсталлятор развлекает нас тихой классической музыкой, нам всё равно надоело ждать и мы уснули или пошли обедать, в это время инсталлятор наконец выполнил свою задачу и извещает нас об этом, например, с помощью записи паровозного гудка :)
зависит от мелочей (принудительная ли должна быть установка этих ярлыков, зависит ли их установка от каких-то параметров »
Спасибо, буду пробовать :) Установка да, желательно принудительная. От параметров не зависит, просто установилась игра, и при этом появились ярлыки. Еще не поняла, ярлыки эти в папке будут или просто по отдельности в меню пуск? И как сделать, если допустим нужно не два, а три ярлыка со ссылками? Спасибо :yes:
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;
TryRooM, и Вам спасибо большое :)
В общем методом тыка получилось, примерно поняла как делать эти ссылки, оказалось не так сложно. Но так же оказалось, что это немножко не то. Эти ярлыки создаются в папке с игрой, эта папка оказывается где то внизу и ее не видно, если специально не искать.
А хочется, чтоб папка была вверху и отдельно от игры. То есть отдельная папка с моими ссылками. Допустим, у себя я нажала меню пуск, у меня там высвечиваются последние установленные приложения. И например есть Inno Setup, и в этой строке с Inno Setup есть стрелочка, на которую нажимаешь и открываются сбоку разные скрипты. Как бы сделать что то подобное, чтоб сверху создавалась папка, которую можно развернуть, а там ссылки, можно даже обычные, со стандартными ярлыками. Или это я слишком много хочу и так нельзя сделать? Уж извините за неопытность :blush:
roman_kudin@vk
22-02-2015, 13:45
У кого есть исходник полного изменения вида инсталлятора, поделитесь пожалуйста.
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;
создавалась папка, которую можно развернуть, а там ссылки »
Ну да, это понятно, папка разворачивалась, и там были ссылки. Просто эта папка создается где то внизу и ее не видно, к тому же в этой папке кроме ссылок еще другие составляющие игры. А хочется такую папку в самом верху меню пуск и чтоб этой папке можно было дать другое название, которое отличается от названия самой игры, и чтоб в папке ничего кроме ссылок не было.
Ладно, скажу честно, в этой папке будут находиться несколько ссылок на сайты, не связанные с игрой :blush2: И нужно, чтобы человек установив игру или приложение, даже не совсем понял, откуда у него в меню пуск взялась папка со ссылками. Думала, может сделать, чтоб такая папочка создавалась автоматически на рабочем столе при установке приложения, но это я тоже не умею, да и в меню пуск вроде не так заметно. Точнее мне нужно, чтоб было заметно, но не сразу после установки игры))
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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.