Цитата Salmo:
А можно заставить окно инсталлятора открываться не в центре экрана, а по координатам, которые я укажу »
|
И про это уже было...
Код:

!include "MUI2.nsh"
!define MUI_CUSTOMFUNCTION_GUIINIT Welcome
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE English
OutFile RepositionWindow_test.exe
!define stRECT "(i, i, i, i) i"
!define SPI_GETWORKAREA 0x0030
Function Welcome
; Создать RECT структуру. Внутри этой структуры координаты углов.
; Верхний левый угол определяется двумя координатами left и top.
; Нижний правый соответственно определяется двумя оставшимися координатами - right и bottom.
System::Call "*${stRECT} .r1"
; Получить окно прямоугольника.Функция GetWindowRect отыскивает размеры рамки ограничивающей прямоугольник
;определяемого окна. Размеры даны в экранных координатах, которые расположены относительно левого верхнего угла экрана.
System::Call "User32::GetWindowRect(i, i) i ($HWNDPARENT, r1) .r2"
; Получить координаты
System::Call "*$1${stRECT} (.r2, .r3, .r4, .r5)"
; Рассчитать ширину / высоту нашего окна
IntOp $2 $4 - $2 ; $2 - ширина
IntOp $3 $5 - $3 ; $3 - высота
; Определить размер рабочего стола без панели задач
System::Call "User32::SystemParametersInfo(i, i, i, i) i (${SPI_GETWORKAREA}, 0, r1, 0) .r4"
; Получить координаты
System::Call "*$1${stRECT} (.r4, .r5, .r6, .r7)"
System::Free $1
; правую сторону экрана разделить на 4
IntOp $0 $6 / 4
IntOp $8 $2 / 4
IntOp $0 $0 - $8
; нижнюю часть экрана разделить на 4
IntOp $1 $7 / 4
IntOp $8 $3 / 4
IntOp $1 $1 - $8
;Установить новую позицию окна
System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, 0, $0, $1, 0, 0, 0x201)"
FunctionEnd
Section
SectionEnd
Хмм... Шутка ?
