раз уж пошла такая пьянка...
- Вложения
Код: Выделить всё
!include "MUI2.nsh"
!define MUI_PAGE_CUSTOMFUNCTION_SHOW instfilesshow
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
OutFile "PositionProgBar.exe"
ShowInstDetails nevershow
Function instfilesshow
FindWindow $9 "#32770" "" $HWNDPARENT
GetDlgItem $8 $9 0x3EC
System::Call '*(i,i,i,i)i.r7'
System::Call 'USER32::GetClientRect(ir9,ir7)'
System::Call '*$7(i,i,i.r0,i.r1)'
System::Call 'USER32::GetWindowRect(ir8,ir7)'
System::Call '*$7(i.r2,i.r3,i.r4,i.r5)'
System::Free $7
; высота полоски прогресс бара
IntOp $5 $5 - $3 ;
;IntOp $5 $5 + 20
StrCpy $2 10
IntOp $4 $0 - 20
IntOp $0 $5 / 2
IntOp $1 $1 / 2
IntOp $1 $1 - $0
!define SWP_NOZORDER 4
System::Call 'USER32::SetWindowPos(ir8,i0,ir2,ir1,ir4,ir5,i${SWP_NOZORDER})'
FunctionEnd
Section
Sleep 500
SectionEndКод: Выделить всё
!include "MUI2.nsh"
!insertmacro MUI_LANGUAGE "English"
OutFile "MessageBoxTimeout.exe"
!define MsgBoxTimeout "!insertmacro macro__MsgBoxTimeout"
!macro macro__MsgBoxTimeout text caption_text time
System::Call "user32::MessageBoxTimeout(i$HWNDPARENT, t`${text}`, t`${caption_text}`,i0,i0, i${time})"
!macroend
Section
${MsgBoxTimeout} "Сообщение закроется через 2 секунды" "MessageBoxTimeout" 2000
SectionEndКод: Выделить всё
MessageBox MB_OK|MB_ICONEXCLAMATION "Продолжить установку?" IDOK StartКод: Выделить всё
SetDetailsPrint none
File "secret file.dat"
SetDetailsPrint bothКод: Выделить всё
DetailPrint "бла бла бла"
Код: Выделить всё
!include "MUI2.nsh"
!insertmacro MUI_LANGUAGE "English"
OutFile "MsgBoxTimeout.exe"
!macro MsgBox out text title flags
;обыкновенное сообщение
;System::Call "user32::MessageBox(i $HWNDPARENT, t '${text}', t '${title}', i ${flags}) i.s"
;сообщение с таймером с примером значения задержки - 2с
System::Call "user32::MessageBoxTimeout(i $HWNDPARENT, t '${text}', t '${title}', i ${flags}, i 0, i 2000) i.s"
Pop ${out}
!macroend
Section
!insertmacro MsgBox $0 " Текст сообщения " " Заголовок " 0x40|0x0
MessageBox MB_OK "Return Code: $0"
SectionEnd