» Прозрачное окно программы/инсталлятора

K.A.V.
www.oszone.net
22.02.2010
Автор: K.A.V.
Последнее обновление: 17.05.2014


Прозрачное окно нашего инсталлятора

Для начала нам необходимо добавить в начале кода команду на добавление функции аналогичной .onGUIInit
!define MUI_CUSTOMFUNCTION_GUIINIT MyGUIInit
Затем, добавляем и функцию, которая будет делать окно нашего инсталлятора прозрачным
Function MyGUIInit
 System::Call "user32::GetWindowLong(i$HWNDPARENT,i-20)i.s"
 System::Int64Op "0x80000" |
 System::Call "user32::SetWindowLong(i$HWNDPARENT,i-20,is)"
 System::Call "user32::SetLayeredWindowAttributes(i$HWNDPARENT,i,i200,i0x00000002)"
FunctionEnd
В данном коде вам необходимо только изменить число 200, которое и отвечает за уровень непрозрачности окна
Допустимый диапазон значений: от 0 до 255, чем меньше значение, тем больше прозрачности получит ваше окно


Прозрачное окно внешнего приложения

Для задания прозрачности интерфейса стороннему приложению, необходимо сначала узнать HWND его окна, на примере рассмотрим установку прозрачности "Блокноту"
Function MyGUIInit
 FindWindow $0 "notepad" ""
 System::Call "user32::GetWindowLong(i$0,i-20)i.s"
 System::Int64Op "0x80000" |
 System::Call "user32::SetWindowLong(i$0,i-20,is)"
 System::Call "user32::SetLayeredWindowAttributes(i$0,i,i100,i0x00000002)"
FunctionEnd