PDA

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


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

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 части прогрессбара нет, если только ты его сам не создаёшь (пусть програмисты меня не пинают. Только-только начал паскаль изучать)

HElmo
31-08-2012, 00:36
Gnom_aka_Lexander, Ivan_009, Огромное спасибо, с компонентами разобрался, получилось!!!Ура ура!Правда с 17 раза :(.
Теперь есть ещё одна задача, все файлы допустим устанавливаются в директорию: D:\Games\game\mods\version1 как указал пользователь, затем программа выходит две папки назад, попадает в папку: D:\Games\game и в нее распаковывает ещё одну папку с файлами, а после нажатия готово открывает ее. Вроде понятно описал, возможно ли это реализовать? Я так понял это как-то в секции Tasks пишется..Заранее спасибо...

SatHan
31-08-2012, 03:49
Всем привет. У меня короче проблема при отмене/закрытии инстала. При сборке инсталятора через инно инсталятор запускается а дальше когда я например запускаю отмену то инсталятор долго не завершается не смотря на то что он в процессах не висит но ясно видно что загрузка процессора скачет из за него подскажите пожалуйста как сделать чтоб при отмене инсталятор быстро завершался?

Gnom_aka_Lexander
31-08-2012, 07:00
SatHan, Скрипт покажи.
HElmo, Можно. Покажи структуру папок, как должно быть.

HElmo
31-08-2012, 09:32
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 . Заранее спасибо за помощь.

alert30
31-08-2012, 09:32
SatHan, я так понял Вы сегодня зарегистрировались на форум, для начала для "новичков" нужен скрипт, который Вы используете...

al1511
31-08-2012, 10:17
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;

SatHan
31-08-2012, 10:21
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/) там очень удобно работать с секциями скрипта и привязывать отдельные файлы к компонентам.

SatHan
31-08-2012, 12:34
нужен скрипт, который Вы используете... »скрипт выше только что это даст что я его выложил?

скрипт простой »и вот его (инсталятор) нужно быстро завершить.
Сами попробуйте запустить простой скомпилированый инсталятор инно зайдите в диспетчер задач во вкладку дополнительно и завершите инсталятор и сами всё увидите что несмотря на то что инсталятор не висит в процессах а загрузка процессора на две три секунды поднимается.

задался вопрос как через секцию 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

Twoface
31-08-2012, 14:11
У меня проблема не большая с 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;

al1511
31-08-2012, 14:20
код-то хоть полностью скопировали? »

Полностью.

Я так понимаю в 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