Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2355
Благодарности: 557

Профиль | Отправить PM | Цитировать


Цитата 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
Цитата Salmo:
Я не лентяй »
Хмм... Шутка ?
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:14, 03-11-2013 | #695