|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 8] |
|
Скрипты Inno Setup. Помощь и советы [часть 8]
|
Ветеран Сообщения: 1264 |
Профиль | Отправить PM | Цитировать
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: Скрипты Inno Setup. Помощь и советы (Archive Pack 1):
Скрипты Inno Setup. Помощь и советы [часть 6] Скрипты Inno Setup. Помощь и советы [часть 7] |
|
Отправлено: 08:52, 02-02-2015 |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Dodakaedr, Может не правильно выразился, мне надо поменять цвет окна во всех MsgBox...
|
Отправлено: 13:00, 20-03-2016 | #1441 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 857
|
Профиль | Отправить PM | Цитировать Цитата AlekseyPopovv:
|
|
------- Отправлено: 13:20, 20-03-2016 | #1442 |
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Dodakaedr, А как в стандартных MsgBox поменять цвет?
|
Отправлено: 05:26, 21-03-2016 | #1443 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Прошу помощи. В этой проге я дуб дубом, а в smart install maker у меня не получается это сделать. Накидайте пожалуйста образец скрипта для такой схемы:
При установке, нужно удалить из "программы" две папки с файлами полностью "aircraft_1" и "aircraft1_2", а также два файла "traffic_1.bgl" и "traffic_2.bgl". Создать папку с файлами "aircraft_3" и файл "traffic_3.bgl" Я это вот, как дилетант, так себе это представляю: Скрытый текст
[InstallDelete] Type: files; Name: "traffic_1.bgl"{app}\" Type: files; Name: "traffic_2.bgl"{app}\" Type: files; Name: "aircraft_1l"{app}\" Type: files; Name: "aircraft_2l"{app}\" [Files] Source: “traffic_3.bgl”; DestDir: “{app}” Source: “aircraft_3”; DestDir: “{app}” Заранее благодарен за ответ. |
Последний раз редактировалось solopavel, 21-03-2016 в 19:31. Отправлено: 18:40, 21-03-2016 | #1444 |
Ветеран Сообщения: 1264
|
Профиль | Отправить PM | Цитировать Цитата AlekseyPopovv:
Скрытый текст
[Setup] AppName=test AppVerName=test DefaultDirName={tmp}\test CreateAppDir=no Uninstallable=no CreateUninstallRegKey=no [Languages] Name: ru; MessagesFile: compiler:Languages\russian.isl [Code] #define A = (Defined UNICODE) ? "W" : "A" const WH_CBT = 5; HCBT_CREATEWND = 3; WC_DIALOG = '#32770'; WM_INITDIALOG = $0110; WM_ERASEBKGND = $0014; WM_PAINT = $000F; WM_CTLCOLORSTATIC = $0138; WM_CTLCOLORBTN = $0135; WM_DESTROY = $0002; TRANSPARENT = 1; type PAINTSTRUCT = record hdc: THandle; fErase: BOOL; rcPaint: TRect; fRestore: BOOL; fIncUpdate: BOOL; rgbReserved: array [0..31] of Byte; end; function GetCurrentThreadId: DWORD; external 'GetCurrentThreadId@kernel32.dll stdcall'; function CallNextHookEx(hhk: THandle; nCode: Integer; wParam, lParam: Longint): Longint; external 'CallNextHookEx@user32.dll stdcall'; function SetWindowsHookEx(idHook: Integer; lpfn, hMod: Longint; dwThreadId: DWORD): THandle; external 'SetWindowsHookEx{#A}@user32.dll stdcall'; function UnhookWindowsHookEx(hhk: THandle): BOOL; external 'UnhookWindowsHookEx@user32.dll stdcall'; function SetWindowSubclass(hWnd: HWND; pfnSubclass: Longint; uIdSubclass: UINT_PTR; dwRefData: DWORD_PTR): BOOL; external 'SetWindowSubclass@comctl32.dll stdcall'; function RemoveWindowSubclass(hWnd: HWND; pfnSubclass: Longint; uIdSubclass: UINT_PTR): BOOL; external 'RemoveWindowSubclass@comctl32.dll stdcall'; function DefSubclassProc(hWnd: HWND; uMsg: UINT; wParam, lParam: Longint): Longint; external 'DefSubclassProc@comctl32.dll stdcall'; function GetClassName(hWnd: HWND; lpClassName: string; nMaxCount: Integer): Integer; external 'GetClassName{#A}@user32.dll stdcall'; function GetSysColorBrush(nIndex: Integer): THandle; external 'GetSysColorBrush@user32.dll stdcall'; function SetBkMode(hdc: THandle; iBkMode: Integer): Integer; external 'SetBkMode@gdi32.dll stdcall'; function BeginPaint(hWnd: HWND; var lpPaint: PAINTSTRUCT): Longint; external 'BeginPaint@user32.dll stdcall'; function EndPaint(hWnd: HWND; const lpPaint: PAINTSTRUCT): Boolean; external 'EndPaint@user32.dll stdcall'; function FillRect(hDC: THandle; const lprc: TRect; hbr: THandle): Integer; external 'FillRect@user32.dll stdcall'; function GetUpdateRect(hWnd: HWND; var lpRect: TRect; bErase: BOOL): BOOL; external 'GetUpdateRect@user32.dll stdcall'; var GCBTProc, GDlgProc: Longint; GDlgHook, GBgndBrush: THandle; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function DlgProc(hWnd: HWND; uMsg: UINT; wParam, lParam: Longint; uIdSubclass: UINT_PTR; dwRefData: DWORD_PTR): Longint; var ps: PAINTSTRUCT; rc: TRect; begin case uMsg of WM_INITDIALOG: begin if GBgndBrush = 0 then GBgndBrush := GetSysColorBrush(13{COLOR_HIGHLIGHT для примера}); Result := DefSubclassProc(hWnd, uMsg, wParam, lParam); end; WM_ERASEBKGND: begin GetUpdateRect(hWnd, rc, False); FillRect(wParam, rc, GBgndBrush); Result := 1; end; WM_PAINT: begin BeginPaint(hWnd, ps); FillRect(ps.hdc, ps.rcPaint, GBgndBrush); EndPaint(hWnd, ps); end; WM_CTLCOLORBTN, WM_CTLCOLORSTATIC: begin SetBkMode(wParam, TRANSPARENT); Result := GBgndBrush; end; WM_DESTROY: begin RemoveWindowSubclass(hWnd, GDlgProc, 0); Result := DefSubclassProc(hWnd, uMsg, wParam, lParam); end; else Result := DefSubclassProc(hWnd, uMsg, wParam, lParam); end; end; /////////////////////////////////////////////////////////////////// function CBTProc(nCode: Integer; wParam, lParam: Longint): Longint; var ClassName: string; begin case nCode of HCBT_CREATEWND: begin ClassName := StringOfChar(#0, 64); GetClassName(wParam, ClassName, Length(ClassName)); ClassName := TrimRight(ClassName); case ClassName of WC_DIALOG: begin if GDlgProc = 0 then GDlgProc := CallbackAddr('DlgProc'); SetWindowSubclass(wParam, GDlgProc, 0, 0); end; end; Result := 0; end; else Result := CallNextHookEx(GDlgHook, nCode, wParam, lParam); end; end; ////////////////// procedure HookDlg; begin if GCBTProc = 0 then GCBTProc := CallbackAddr('CBTProc'); GDlgHook := SetWindowsHookEx(WH_CBT, GCBTProc, 0, GetCurrentThreadId); end; //////////////////// procedure UnHookDlg; begin UnhookWindowsHookEx(GDlgHook); end; /////////////////////////// procedure InitializeWizard; begin HookDlg; end; //////////////////////////// procedure DeinitializeSetup; begin if ExpandConstant('{wizardhwnd}') = '0' then Exit; UnHookDlg; end; ////////////////////////////////////// function InitializeUninstall: Boolean; begin Result := True; HookDlg; end; //////////////////////////////// procedure DeinitializeUninstall; begin UnHookDlg; end; |
|
Отправлено: 19:56, 21-03-2016 | #1445 |
Старожил Сообщения: 284
|
Профиль | Отправить PM | Цитировать Цитата solopavel:
Скрытый текст
[Files] Source: "{app}\traffic_3.bgl"; DestDir: "{app}"; Source: "{app}\aircraft_3\*"; DestDir: "{app}\aircraft_3"; [InstallDelete] Type: files; Name: "{app}\traffic_1.bgl"; Type: files; Name: "{app}\traffic_2.bgl"; Type: filesandordirs; Name: "{app}\aircraft_1l"; Type: filesandordirs; Name: "{app}\aircraft_2l"; |
|
------- Отправлено: 19:57, 21-03-2016 | #1446 |
Ветеран Сообщения: 857
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
|
------- Отправлено: 20:30, 21-03-2016 | #1447 |
Ветеран Сообщения: 1264
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
Отправлено: 21:18, 21-03-2016 | #1448 |
Ветеран Сообщения: 857
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
|
------- Отправлено: 21:27, 21-03-2016 | #1449 |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать ZVSRus, спасибо за оперативный ответ.
Сейчас попробую. |
Отправлено: 21:31, 21-03-2016 | #1450 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты 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 |
|