![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Скрипты Inno Setup. Помощь и советы [часть 7]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] |
|
Отправлено: 11:48, 10-03-2014 |
Пользователь Сообщения: 55
|
Профиль | Отправить PM | Цитировать Здравствуйте,
Подскажите пожалуйста, есть функция slideshow в окне инсталлятора: #define TIME_FOR_VIEW 10 [Setup] AppName=My Program AppVerName=My Program v 1.5 DefaultDirName={pf}\My Program [Languages] Name: russian; MessagesFile: compiler:Languages\Russian.isl [Files] Source: InnoCallback.dll; Flags: dontcopy noencryption nocompression solidbreak; Source: .bmp; Flags: dontcopy noencryption nocompression solidbreak; Source: D:\Games\StarCraft enGB\StarDat.mpq; DestDir: {app} [Code const n=21; ///количество слайдов type TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord); TRandNumbers = array[1..N] of byte; function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:InnoCallback.dll stdcall'; function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall'; function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall'; function get_unique_r andom_number(X:byte):TRandNumbers; var A,b,c: string; i,j,k:byte; begin For i:=1 to X do A:=A+chr(i); B:=''; For i:=1 to X do begin j:=Random(Length(A)-1)+1; C:=''; B:=B + A[j]; for k:=1 to Length(A) do if k<>j then C:=C+A[k]; A:=C; end; for i:=1 to X do Result[i]:=ord(B[i]); end; var TimerID: LongWord; currTime: Integer; SplashImage: TBitmapImage; StatusMessages: TNewStaticText; bmp: TRandNumbers; z:byte; procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord); begin currTime := currTime + 1; if (currTime mod {#TIME_FOR_VIEW} = 0) then begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_'+ inttostr(bmp[currTime/{#TIME_FOR_VIEW}])+'.bmp')); if (currTime/{#TIME_FOR_VIEW} = N) then currTime:=0; end; end; procedure InitializeWizard; begin bmp:=get_unique_random_number(N); ExtractTemporaryFile('Image_'+inttostr(bmp[1])+'.bmp'); currTime := 0; WizardForm.ProgressGauge.Parent := WizardForm; WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + ScaleY (12); WizardForm.ProgressGauge.Left := ScaleX(10); WizardForm.ProgressGauge.Width := WizardForm.MainPanel.Width - ScaleX(20); WizardForm.ProgressGauge.Height := 16; WizardForm.ProgressGauge.Hide; WizardForm.StatusLabel.Parent := WizardForm; WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18); WizardForm.StatusLabel.Left := ScaleX(10); WizardForm.StatusLabel.Width := ScaleX(397); WizardForm.StatusLabel.Hide; SplashImage := TBitmapImage.Create(WizardForm); SplashImage.Top := 0; SplashImage.Left := 0; SplashImage.Width := WizardForm.MainPanel.Width; SplashImage.Height := WizardForm.Bevel.Top; SplashImage.Parent := WizardForm.InnerPage; SplashImage.Stretch := True; SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_'+inttostr(bmp[1])+'.bmp')); SplashImage.Hide; end; procedure CurStepChanged(CurStep: TSetupStep); begin if CurStep = ssInstall then begin WizardForm.StatusLabel.Caption := 'Распаковка слайдов ...'; for z:=2 to N do ExtractTemporaryFile('Image_ '+inttostr(bmp[z])+'.bmp'); end; end; procedure CurPageChanged(CurPageID: Integer); var pfunc: LongWord; begin if (CurPageID = wpInstalling) then begin pfunc := WrapTimerProc(@OnTimer, 5); TimerID := SetTimer(0, 0, 1000, pfunc); WizardForm.PageNameLabel.Visible := False; WizardForm.PageNameLabel.Visible := False; WizardForm.InnerNotebook.Hide; WizardForm.Bevel1.Hide; WizardForm.MainPanel.Hide; WizardForm.PageNameLabel.Hide; WizardForm.PageNameLabel.Hide; WizardForm.ProgressGauge.Show; WizardForm.StatusLabel.Show; SplashImage.Show; WizardForm.CancelButton.Enabled := True; WizardForm.CancelButton.Top := WizardForm< /FONT> .Bevel.Top + ScaleY(100); end else begin WizardForm.ProgressGauge.Hide; SplashImage.Hide; WizardForm.FileNameLabel.Hide; WizardForm.StatusLabel.Hide; if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then begin WizardForm.InnerNotebook.Show; WizardForm.Bevel1.Show; WizardForm.MainPanel.Show; WizardForm.PageNameLabel.Show; WizardForm.PageNameLabel.Show; end; If CurPageID = wpFinished then end; end; procedure DeInitializeSetup(); begin KillTimer(0, TimerID); end; |
Отправлено: 03:24, 03-04-2014 | #221 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Здравствуйте, подскажите пожалуйста как менять значение конфига json, при выборе определённого компонента
|
Отправлено: 06:49, 03-04-2014 | #222 |
Ветеран Сообщения: 608
|
Подскажите пожалуйста как на деинсталлятор прикрутить свой шрифт для кнопок...
Пробовал так не работает... Ошибку выбивает:http://rghost.ru/53729756 var hCancelUninstBtn: HWND; ButtonFontU:TFont; procedure BtnSetFontU(h :HWND; Font :Cardinal); external 'BtnSetFont@{tmp}\b2p.dll stdcall delayload'; procedure InitializeUninstallProgressForm(); begin ButtonFontU:=TFont.Create; with ButtonFontU do begin Name:='Tahoma'; Size:= 8; Style:=[]; end; with UninstallProgressForm.CancelButton do begin BtnSetFontU(hCancelUninstBtn,ButtonFontU.Handle); end; |
Отправлено: 08:34, 03-04-2014 | #223 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать Если {tmp} это временная папка инсталлятора... а как обозначить временную папку Win? {%TEMP} ?
|
Отправлено: 09:39, 03-04-2014 | #224 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Mat_y, %temp%
|
------- Отправлено: 09:40, 03-04-2014 | #225 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:57, 03-04-2014 | #226 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать Mat_y, в инно это константа {%TEMP}
|
------- Отправлено: 09:58, 03-04-2014 | #227 |
Пользователь Сообщения: 80
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:02, 03-04-2014 | #228 |
Ветеран Сообщения: 1640
|
Профиль | Отправить PM | Цитировать Mat_y, EXPANDconstant('{%temp}')
|
------- Последний раз редактировалось R.i.m.s.k.y., 03-04-2014 в 10:13. Отправлено: 10:07, 03-04-2014 | #229 |
Ветеран Сообщения: 978
|
Профиль | Сайт | Отправить PM | Цитировать Mat_y, Из справки:
то есть по маске {%NAME} вместо NAME подставляем имя переменной винды без обрамляющих знаков процента. формат %temp% или она-же %tmp% - инно не поймет, это для командной строки самой винды. |
------- Отправлено: 10:10, 03-04-2014 | #230 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 6] | El Sanchez | Автоматическая установка приложений | 2494 | 10-03-2014 11:51 | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 |
|