Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
murlakatamenka
29-05-2011, 02:46
insombia, создаёте кастомные лэйблы, чекбоксы, кнопки, панельки и вперёд. внешний вид подсмотрен у инсталлеров от Good Old Games aka GOG
Gnom_aka_Lexander
29-05-2011, 20:10
vovka1021, держи (http://rghost.ru/8480681) , все лень доделать было.
Gnom_aka_Lexander
29-05-2011, 21:40
vovka1021, Найди такой кусок кода, и замени этим:
//************************************************ [Начало - Скрываем ненужные страницы] ***************************************************//
function ShouldSkipPage(PageID: Integer): Boolean;
begin
if (PageID =wpSelectTasks) then Result:= True;
end;
//************************************************ [Конец - Скрываем ненужные страницы] ***************************************************//
Потом ниже найди wpSelectTasks: и замени wpSelectProgramGroup:.
Здрасьте, а как убрать на финальной странице установки надпись "Время установки: 7 минут".Скрипт Isdone
эммм не хочеться тревожить лишний раз и настойчиво просить, но все же не поможет ктонибуть по моему посту (http://forum.oszone.net/post-1678780-1628.html) который я оставил 11 дней назад
murlakatamenka
30-05-2011, 11:39
LinkOFF, очень просто
закомментируйте эту строчку в фунуции ProgressCallback
LabelTime3.Caption:=ExpandConstant('{cm:AllElapsedTime}')+TimeStr3;
murlakatamenka, спасибо
Как изменить цвет шрифта на первой странице инсталятора и если можно на каждой отдельно
R.i.m.s.k.y.
30-05-2011, 13:59
каким макаром можно в инно узнать запущен ли экзешник %appname.exe%?
murlakatamenka
30-05-2011, 14:30
R.i.m.s.k.y., можно отслеживать по запущенному процессу
сча найду код и приведу
надо dll ISTask.dll
[Files]
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy
[Коде]
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
//**************************************************//
procedure InitializeWizard();
begin
If RunTask('имя_процесса', false) then
begin
//что-нить делаем
end;
end;
переделал из этого (проверка, запущен ли винамп, если да, убиваем процесс)
[Files]
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy
[Коде]
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload';
function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload';
//**************************************************//
function InitializeSetup(): Boolean;
begin
If RunTask('winamp.exe', false) then
begin
if MsgBox('Программа Winamp используется. Закрыть и продолжить установку?', mbInformation, mb_YesNo) = idYes then
begin
KillTask('winamp.exe');
Result:= True;
end else
Exit;
end;
Result:=True;
end;
LinkOFF,
if CurPageID=имя_страницы then WizardForm.Font=имя_шрифта;
страницы например wpWelcome, wpSelectDir, wpReady, wpFinished и т.д. (можно посмотреть в хелпе)
R.i.m.s.k.y.
30-05-2011, 14:49
надо dll ISTask »
где его взять?
murlakatamenka
30-05-2011, 15:02
http://rghost.ru/8574801 - ISTask.dll
Gnom_aka_Lexander
30-05-2011, 15:04
R.i.m.s.k.y., если используеш мою сборку, то есть в папке Dll Pack в корне компилятора (compiler:Dll Pack\ISTask.dll) - для секции файлс
R.i.m.s.k.y.
30-05-2011, 15:07
если используеш мою сборку, то есть в папке Dll Pack в корне компилятора (compiler:Dll Pack\ISTask.dll) - для секции файлс »
ога, юзую твою лайт
murlakatamenka
30-05-2011, 15:09
вообще-то dll входит в Inno Setup Scripting (ссылка есть в шапке)
а скрипт взял из сборника скриптов от Krinkels (-//-)
Лександер, InnoUltra - это ваша сборка ? вы и есть Ultra ?
R.i.m.s.k.y.
30-05-2011, 15:16
Лександер, InnoUltra - это ваша сборка ? вы и есть Ultra ? »
у него в подписи ведь ссылка на сайт :cool:
El Sanchez
30-05-2011, 16:17
каким макаром можно в инно узнать запущен ли экзешник %appname.exe%? »
R.i.m.s.k.y.,
[Code]
function IsProcessRunning(FileName: String): Boolean;
var
objSWbemLocator, objSWbemServices: Variant;
begin
try
objSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
except
ShowExceptionMessage;
Exit;
end;
objSWbemServices := objSWbemLocator.ConnectServer();
objSWbemServices.Security_.ImpersonationLevel := 3;
Result := (objSWbemServices.ExecQuery('SELECT * FROM Win32_Process WHERE Name="' + FileName + '"').Count > 0);
end;
procedure InitializeWizard();
begin
if IsProcessRunning('notepad.exe') then
MsgBox('yes', mbInformation, MB_OK)
else
MsgBox('no', mbError, MB_OK);
end;
эммм не хочеться тревожить лишний раз и настойчиво просить, но все же не поможет ктонибуть по моему посту который я оставил 11 дней назад »
lmiol, единственный вариант, что мне пришел в голову, это создание кастомного ComponentsList, наполнение которого зависело бы от радиокнопок Standart/Pro (как на скрине). Свою страницу с радиокнопками создать-то можно, как и кастомный ComponentsList, но с синхронизацией кастомного и визардовского List'ов тяжело (там еще и TypesCombo нужно учитывать и комстроку). В общем, отложил задачу напотом, извиняйте.
R.i.m.s.k.y.
30-05-2011, 16:28
SELECT * FROM Win32_Process WHERE Name= »
на вин64 SELECT * FROM Win32_Process нормально отработает? или надо будет делать еще и SELECT * FROM Win64_Process ???
El Sanchez
30-05-2011, 18:26
на вин64 SELECT * FROM Win32_Process нормально отработает? »
R.i.m.s.k.y., да
R.i.m.s.k.y.
30-05-2011, 18:47
SELECT * FROM Win32_Process в вин64 отберет и 64разрядные процессы?
El Sanchez
30-05-2011, 20:32
SELECT * FROM Win32_Process в вин64 отберет и 64разрядные процессы? »
Да, все что отображается в диспетчере задач. И в Windows-системах нет Win64_* классов.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC