|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 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 |
|
Старожил Сообщения: 169
|
Профиль | Отправить PM | Цитировать Dodakaedr, Может не правильно выразился, мне надо поменять цвет окна во всех MsgBox...
|
|
Отправлено: 13:00, 20-03-2016 | #1441 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить 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 |
|
Старожил Сообщения: 292
|
Профиль | Отправить 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 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить PM | Цитировать Цитата El Sanchez:
|
|
|
------- Отправлено: 20:30, 21-03-2016 | #1447 |
|
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата Dodakaedr:
|
|
|
Отправлено: 21:18, 21-03-2016 | #1448 |
|
Ветеран Сообщения: 863
|
Профиль | Отправить 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 | |
|