|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4] |
|
|
Скрипты Inno Setup. Помощь и советы [часть 4]
|
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Inno Setup [все вопросы] часть 1 Inno Setup [все вопросы] часть 2 Скрипты Inno Setup. Помощь и советы [часть 3] Продолжение обсуждения Скрипты Inno Setup. Помощь и советы [часть 5] |
|
|
Отправлено: 18:01, 29-08-2011 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Лександер:
Цитата Лександер:
![]() |
||
|
Отправлено: 13:19, 10-03-2012 | #1011 |
|
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать Цитата El Sanchez:
|
|
|
------- Отправлено: 13:41, 10-03-2012 | #1012 |
|
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Люди да помогите чайнику
исправить хоть и тупой но скрипт, нодо что бы он распаковывал arc архив, и всё что внём. Я сделал что бы он расспаковывал сам .arc архив но он не распаковывает всё что внём,помогите поправить Вот скриншот [Setup]
AppName=Sigerous Mod для COP
AppVerName=Sigerous Mod v2.2
DefaultDirName=stalker
InfoBeforeFile=embedded\InfoBefore.rtf
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
[Languages]
;Name: rus; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: *.arc; DestDir: {app}; Flags: ignoreversion
Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
[Icons]
Name: {group}\Uninstall; IconFilename: {app}\unins000.exe; Filename: {app}\unins000.exe
[_Code]
const
PM_REMOVE = 1;
function PeekMessage(var lpMsg: TMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
function TranslateMessage(const lpMsg: TMsg): BOOL; external 'TranslateMessage@user32.dll stdcall';
function DispatchMessage(const lpMsg: TMsg): Longint; external 'DispatchMessageA@user32.dll stdcall';
procedure AppProcessMessage;
var
Msg: TMsg;
begin
while PeekMessage(Msg, WizardForm.Handle, 0, 0, PM_REMOVE) do begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
type
TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;
function WrapFreeArcCallback (callback: TFreeArcCallback; paramcount: integer):longword;
external 'wrapcallback@files:innocallback.dll stdcall';
function FreeArcExtract (callback: longword; cmd1,cmd2,cmd3,cmd4,cmd5,cmd6,cmd7,cmd8,cmd9,cmd10: PAnsiChar): integer; external 'FreeArcExtract@files:unarc.dll cdecl';
var
ProgressBar: TNewProgressBar;
ExtractFile: TNewStaticText;
Button1: TButton;
Cancel: Integer;
procedure InitializeWizard();
begin
ProgressBar := TNewProgressBar.Create(WizardForm);
ExtractFile:=TNewStaticText.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar.Left := Left;
ProgressBar.Top := Top + ScaleX(55);
ProgressBar.Width := Width;
ProgressBar.Height := Height;
ProgressBar.Parent := WizardForm.InstallingPage;
ProgressBar.max := 1000;
ProgressBar.Position := 0;
ExtractFile.parent:=WizardForm.InstallingPage;
ExtractFile.autosize:=false;
ExtractFile.Width := Width;
ExtractFile.top:=Top + ScaleX(35);
ExtractFile.caption:='Распаковка архива FreeArc';
end;
end;
procedure Button1OnClick(Sender: TObject);
begin
Cancel := -1;
end;
function FreeArcCallback (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;
var percents: Integer;
begin
if string(what)='filename' then
//ExtractFile.Caption:=str
else if (string(what)='progress') and (int2>0) then begin
percents := (int1*1000) div int2;
ProgressBar.Position := percents;
ExtractFile.Caption:='Распаковано '+IntToStr(int1)+' из '+IntToStr(int2)+' мб ('+FloatToStr(percents/10)+'%)';
end;
AppProcessMessage;
Result := Cancel;
end;
procedure ExtractFreeArcArchive(arcname: String; destpath: String);
var callback: longword;
res: Integer;
begin
AppProcessMessage;
callback:=WrapFreeArcCallback(@FreeArcCallback,4); //FreeArcCallback has 4 arguments
Cancel := 0;
try
res := FreeArcExtract (callback, 'x', '-o+', '-dp'+destpath, '--', arcname, '', '', '', '', '');
if cancel<0 then
MsgBox('Installation cancelled', mbInformation, MB_OK);
if res<0 then
MsgBox('Decompression failed with error code '+IntToStr(res)+'!', mbError, MB_OK);
Button1.visible:=false;
except
MsgBox('Decompression failed!', mbError, MB_OK);
Button1.visible:=false;
end;
DeleteFile(arcname);
end;
procedure CurStepChanged(CurStep: TSetupStep);
var app: String;
begin
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Cancel installation';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
app := ExpandConstant('{app}');
ExtractFreeArcArchive(app+'\data.arc', app);
end;
end;
|
|
Отправлено: 13:44, 10-03-2012 | #1013 |
|
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать R.i.m.s.k.y.,
вот как это реализовано Inno Setup GameScript Generator от South http://forum.csmania.ru/viewtopic.php?t=4688 |
|
Последний раз редактировалось Johny777, 10-03-2012 в 14:34. Отправлено: 14:11, 10-03-2012 | #1014 |
|
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Johny777, спасибо, но я уже сделал как выше привел пример
|
|
------- Отправлено: 14:38, 10-03-2012 | #1015 |
|
Забанен Сообщения: 3
|
alert30, Просто рекламма
|
|
Отправлено: 15:36, 10-03-2012 | #1016 |
|
Ветеран Сообщения: 1088
|
Профиль | Отправить PM | Цитировать Цитата repacksman:
|
|
|
Отправлено: 17:00, 10-03-2012 | #1017 |
|
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Archives = '{#ArcLocation}'; как сдесь указывать расположение архивов arc ???
|
|
Отправлено: 22:14, 10-03-2012 | #1018 |
|
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать by_gangster,
ты прости, но это уже не в какие ворота кажись я писал вот это Цитата Johny777:
Цитата Johny777:
будь немного внимательнее! ![]() |
||
|
Последний раз редактировалось Johny777, 11-03-2012 в 00:43. Отправлено: 23:38, 10-03-2012 | #1019 |
|
Старожил Сообщения: 241
|
Профиль | Отправить PM | Цитировать by_gangster, используй исдоне проще в обращении))
|
|
------- Отправлено: 00:42, 11-03-2012 | #1020 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Test | ferget | Тест-форум | 0 | 24-08-2011 01:25 | |
| test | ! ! Aaa ! ! | Тест-форум | 0 | 23-04-2011 11:29 | |
| test | Santa aka Snt | Тест-форум | 0 | 16-04-2011 22:35 | |
| test | xolod. | Программное обеспечение Linux и FreeBSD | 0 | 19-04-2009 21:03 | |
| Test memory | KEugeNik | Хочу все знать | 11 | 23-11-2003 23:11 | |
|