![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1274 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Старожил Сообщения: 212
|
Профиль | Отправить PM | Цитировать Цитата Николай_Николаич@vk:
palsn2000, я точно не уверен, не пробовал. Но на прогрессбар разве лейбл станет? |
|
------- Отправлено: 08:44, 12-05-2015 | #601 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 119
|
Профиль | Отправить PM | Цитировать Привет всем.
Как сделать, чтобы деинсталятор удалял заранее указанные папки? Например: У меня есть папка res_mods, в не папка mods и папка 0.9.7. Мне нужно чтобы деинсталятор удалил папку mods и очистил папку 0.9.7 |
Отправлено: 12:34, 12-05-2015 | #602 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата Kashtan007:
|
|
------- Отправлено: 14:08, 12-05-2015 | #603 |
Пользователь Сообщения: 119
|
Профиль | Отправить PM | Цитировать Nordek, файл удалять по такому же способу?
|
Последний раз редактировалось Kashtan007, 12-05-2015 в 19:00. Отправлено: 18:55, 12-05-2015 | #604 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата Kashtan007:
Инфа из справки. По-моему все доходчиво описано
Цитата:
|
||
------- Отправлено: 19:29, 12-05-2015 | #605 |
Новый участник Сообщения: 30
|
Профиль | Отправить PM | Цитировать Цитата kotyarko@fb:
Но в общем речь не об этом, а о том, что мои познания в программировании близки к нулю, и сам я не понимаю как (и вообще можно ли) проценты установки связать с дэйблом, а не сообщением. У Вас там используется SetupMessage(msgStatusExtractFiles) function ProgressBarProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; begin if Msg = PBM_SETPOS then with WizardForm do SetWindowText( StatusLabel.Handle, Format('%s'#32'%s', [SetupMessage(msgStatusExtractFiles), FormatFloat('0.#0 %', (ProgressGauge.Position*100)/ProgressGauge.Max)]) ); Result := CallWindowProc(OldProgressBarProc, hWnd, Msg, wParam, lParam); end; Может я не совсем правильно объясняю, чего хочу, вот для примера картинка: ![]() |
|
Отправлено: 19:46, 12-05-2015 | #606 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать palsn2000, например, так:
Скрытый текст
function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer; external 'MulDiv@kernel32.dll stdcall'; var PercentLabel: TLabel; /////////////////////////// procedure InitializeWizard; begin { PercentLabel } PercentLabel := TLabel.Create(WizardForm); with PercentLabel do begin Parent := WizardForm.ProgressGauge; Align := alClient; Alignment := taCenter; Layout := tlCenter; Transparent := True; end; end; ///////////////////////////////////////////////////////////////////////////////////////// function ProgressBarProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; begin case Msg of PBM_SETPOS: begin Result := CallWindowProc(OldProgressBarProc, hWnd, Msg, wParam, lParam); with WizardForm.ProgressGauge do PercentLabel.Caption := Format('%d %%', [MulDiv(Position, 100, Max)]); end; else Result := CallWindowProc(OldProgressBarProc, hWnd, Msg, wParam, lParam); end; end; |
Отправлено: 20:45, 12-05-2015 | #607 |
![]() Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
|
------- Отправлено: 22:41, 12-05-2015 | #608 |
Новый участник Сообщения: 17
|
Профиль | Сайт | Отправить PM | Цитировать Цитата kotyarko@fb:
Нужно что то типо этого: только проверка не на файл, а папку. |
|
Отправлено: 23:12, 12-05-2015 | #609 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
Скрытый текст
[Setup] AppName=test AppVerName=test DefaultDirName={tmp} CreateAppDir=no Uninstallable=no CreateUninstallRegKey=no [Files] Source: compiler:Languages\*; DestDir: {app} [Languages] Name: ru; MessagesFile: compiler:Languages\russian.isl [code] #define A = (Defined UNICODE) ? "W" : "A" const WM_USER = $0400; PBM_SETPOS = (WM_USER + 2); GWL_WNDPROC = (-4); GWL_USERDATA = (-21); function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLong{#A}@user32.dll stdcall'; function SetWindowLong(hWnd: HWND; nIndex: Integer; dwNewLong: Longint): Longint; external 'SetWindowLong{#A}@user32.dll stdcall'; function CallWindowProc(lpPrevWndFunc: Longint; hWnd: HWND; Msg: UINT; wParam: Longint; lParam: Longint): Longint; external 'CallWindowProc{#A}@user32.dll stdcall'; function MulDiv(nNumber, nNumerator, nDenominator: Integer): Integer; external 'MulDiv@kernel32.dll stdcall'; var InstPercentLabel: TLabel; /////////////////////////////// procedure CreateInstallingPage; begin { InstPercentLabel } InstPercentLabel := TLabel.Create(WizardForm); with InstPercentLabel do begin Parent := WizardForm.ProgressGauge; Align := alClient; Alignment := taCenter; Layout := tlCenter; Transparent := True; end; end; /////////////////////////////////////////////////////////////////////////////////////// function ProgressGaugeWndProc(hWnd: HWND; Msg: UINT; wParam, lParam: Longint): Longint; begin case Msg of PBM_SETPOS: begin Result := CallWindowProc(GetWindowLong(hWnd, GWL_USERDATA), hWnd, Msg, wParam, lParam); with WizardForm.ProgressGauge do InstPercentLabel.Caption := Format('%d %%', [MulDiv(Position, 100, Max)]); end; else Result := CallWindowProc(GetWindowLong(hWnd, GWL_USERDATA), hWnd, Msg, wParam, lParam); end; end; /////////////////////////// procedure SubclassControls; begin { ProgressGauge } with WizardForm.ProgressGauge do begin if GetWindowLong(Handle, GWL_USERDATA) = 0 then SetWindowLong(Handle, GWL_USERDATA, SetWindowLong(Handle, GWL_WNDPROC, CallbackAddr('ProgressGaugeWndProc'))); end; end; /////////////////////////// procedure InitializeWizard; begin CreateInstallingPage; SubclassControls; end; ///////////////////////////// procedure UnSubclassControls; begin { ProgressGauge } with WizardForm.ProgressGauge do begin if GetWindowLong(Handle, GWL_USERDATA) > 0 then SetWindowLong(Handle, GWL_WNDPROC, GetWindowLong(Handle, GWL_USERDATA)); end; end; //////////////////////////// procedure DeinitializeSetup; begin if ExpandConstant('{wizardhwnd}') = '0' then Exit; UnSubclassControls; end; Цитата Николай_Николаич@vk:
|
||
Отправлено: 09:05, 13-05-2015 | #610 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 7] | El Sanchez | Автоматическая установка приложений | 2499 | 02-02-2015 08:59 | |
Скрипты 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 |
|