Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 5]
Ivan_009
30-08-2012, 22:38
Англоязычная версия..,пожалуйста, просто изучать конкретно нет времени, пожалуйста. Что с этим кодом делать. Заранее спасибо. »
Для начала прочти это...http://rusfolder.com/20364329
Gnom_aka_Lexander
30-08-2012, 22:41
Шапка, форума, первая строчка Показать/скрыть: Справка, руководство, примеры: »
Первая ссылкаРусская справка в формате .chm к версии 5.4.3, авторы перевода BagIra, bugron; »
Ну почему никто никогда не начинает изучение нового предмета с изучения шапок тематических форумов?
Ivan_009
30-08-2012, 23:30
Как сделать такой прогресс бар, чтобы на первом этапе извлекались сами файлы инсталлятора а на втором шла распаковка архивов IsDone... :sorry: Все перепробовал нехочет обьеденятся прогрессбар ssInstall и ssPostInstall, заранее спасибо...
Johny777
31-08-2012, 00:18
Вань,
я исдан не знаю, но сильно сомневаюсь что это один прогрессбар
думаю товарищъ-автор инсталла скрин которого ты предоставил просто укоротил верхний прогрессбар и разместил его на том же уровне что и второй и слева от него
я уверен что поделённого на 2 части прогрессбара нет, если только ты его сам не создаёшь (пусть програмисты меня не пинают. Только-только начал паскаль изучать)
Gnom_aka_Lexander, Ivan_009, Огромное спасибо, с компонентами разобрался, получилось!!!Ура ура!Правда с 17 раза :(.
Теперь есть ещё одна задача, все файлы допустим устанавливаются в директорию: D:\Games\game\mods\version1 как указал пользователь, затем программа выходит две папки назад, попадает в папку: D:\Games\game и в нее распаковывает ещё одну папку с файлами, а после нажатия готово открывает ее. Вроде понятно описал, возможно ли это реализовать? Я так понял это как-то в секции Tasks пишется..Заранее спасибо...
Всем привет. У меня короче проблема при отмене/закрытии инстала. При сборке инсталятора через инно инсталятор запускается а дальше когда я например запускаю отмену то инсталятор долго не завершается не смотря на то что он в процессах не висит но ясно видно что загрузка процессора скачет из за него подскажите пожалуйста как сделать чтоб при отмене инсталятор быстро завершался?
Gnom_aka_Lexander
31-08-2012, 07:00
SatHan, Скрипт покажи.
HElmo, Можно. Покажи структуру папок, как должно быть.
Gnom_aka_Lexander,
Вот весь код
#define MyAppName "MODSHELMO"
#define MyAppVersion "2.0"
#define MyAppPublisher "HELMO"
#define MyAppURL "HELMO"
[Setup]
AppId={{A4520E20-B884-4B0A-992C-07FC5D307AF2}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}
DefaultGroupName={#MyAppName}
AllowNoIcons=yes
OutputDir=C:\Users\Admin\Desktop
OutputBaseFilename=HELMO MODS
SetupIconFile=D:\Загрузки\World-of-Tanks.ico
Compression=lzma
SolidCompression=yes
Uninstallable=no
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: "C:\Users\Admin\Desktop\Jova\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Путь установки: D:\GAMES\World of tanks\World_of_tanks\res_mods\0.7.5, затем должно вернутся в папку World_of_tanks(не World of tanks) и туда распаковать папку из следующей дирректории: D:\GAMES\Mods, под названием Options и открыть ее. Но если пользователь выбрал другой путь, например С:\World_of_tanks\res_mods\0.7.5, тоже должно вернуться две папки назад в World_of_tanks . Заранее спасибо за помощь.
SatHan, я так понял Вы сегодня зарегистрировались на форум, для начала для "новичков" нужен скрипт, который Вы используете...
El Sanchez, в этом коде компилятор не устраивает тип CallbackAddr('AddFileCallback').
(Type mismatch)
Хотя если написать любой адрес ручную, то компилируется... Как тут быть?
var
phMPQ: THandle;
function SFileSetAddFileCallback(hMpq: THandle; pfnAddFileCB, pvUserData: Longint): BOOL; external 'SFileSetAddFileCallback@files:stormlib.dll stdcall';
procedure AddFileCallback(pvUserData: Longint; dwBytesWritten, dwTotalBytes: DWORD; bFinalCall: BOOL);
begin
//
end;
//
procedure CurStepChanged(CurStep: TSetupStep);
begin
SFileSetAddFileCallback (phMPQ, CallbackAddr('AddFileCallback'), 0);
end;
Gnom_aka_Lexander, скрипт простой
[Setup]
AppName=Моя программа
AppVersion=1.5
;AppVerName=Моя программа 1.5
AppPublisher=Моя компания, Inc.
AppPublisherURL=http://www.сайт.com/
AppSupportURL=http://www.сайт.com/
AppUpdatesURL=http://www.сайт.com/
DefaultDirName={pf}\Моя программа
DefaultGroupName=Моя программа
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\Моя программа"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,Моя программа}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\Моя программа"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
El Sanchez
31-08-2012, 11:19
в этом коде компилятор не устраивает тип CallbackAddr('AddFileCallback'). »
al1511, код-то хоть полностью скопировали?
Gnom_aka_Lexander
31-08-2012, 11:31
DefaultDirName={pf} »
Никогда так не делай. При неаккуратных действиях, при деинсталляции можно сильно повредить папку програм файлс.
Мой совет - делаешь папку по умолчанию - DefaultDirName={pf}\GAMES\World of tanks\ или лучше даже {sd}\GAMES\World of tanks\, тогда при деинсталляции будет удалена только это папка.
далее раскладываешь структуру перед упаковкой, как нужно и прописываешь ее подробно в секции [Files]. [Files] Source: "C:\Users\Admin\Desktop\Jova\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs »
Так, конечно, удобно. но очень неудобно в работе. воспользуйся Inno Script Studio от Kymoto Solutions (https://www.kymoto.org/) там очень удобно работать с секциями скрипта и привязывать отдельные файлы к компонентам.
нужен скрипт, который Вы используете... »скрипт выше только что это даст что я его выложил?
скрипт простой »и вот его (инсталятор) нужно быстро завершить.
Сами попробуйте запустить простой скомпилированый инсталятор инно зайдите в диспетчер задач во вкладку дополнительно и завершите инсталятор и сами всё увидите что несмотря на то что инсталятор не висит в процессах а загрузка процессора на две три секунды поднимается.
задался вопрос как через секцию run перезагрузить компьютер?
Johny777
31-08-2012, 13:25
как через секцию run перезагрузить компьютер? »
[Run]
Filename: shutdown.exe; Parameters: /r /t 10; Flags: runhidden
R.i.m.s.k.y.
31-08-2012, 13:39
Johny777 SatHan, и если открыты окна в ворде человек карму погнет тебе :)
[Run]
Filename: shutdown.exe; Parameters: /r /t 10; Description: Перегрузить компьютер; Flags: postinstall
У меня проблема не большая с Splash. Сперва появляется окно выбора языка инстолятора, затем сам контур инсталятора в чёрном цвете и на нём появляется сам Splash, потом когда Splash исчезает то на инсталяторе появляется приветствие и т.д. Добавлял скрипт Splash в другие инсталяторы и такой проблемы я там не наблюдал. Люди добрые, помогите.
Вот чем я пользуюсь, через подключения модуля:
[Code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure Splash();
begin
ExtractTemporaryFile('splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
end;
код-то хоть полностью скопировали? »
Полностью.
Я так понимаю в Inno Setup вообще проблема с указателями ))
El Sanchez
31-08-2012, 15:07
Полностью. »
al1511, код покажите.
Я так понимаю в Inno Setup вообще проблема с указателями )) »
al1511, не реализованы, но это не проблема.
Ivan_009
31-08-2012, 15:39
Twoface, Код полностью с модулями в студию... :drug:
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.