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

Показать сообщение отдельно

Аватара для kotkovets

Ветеран


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

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


Цитата wolkow70:
Товарищи, подскажите как в
MB_USERICON подставить другую иконку, а не инсталлятора? »
Элементарно....
Код: Выделить весь код
${MessageBoxEx}  "путь к файлу ресурсу, где иконка" "текст надписи" "текст заголовка" "стиль сообщения" "индекс иконки" "код возврата"
читать дальше »
Код: Выделить весь код
!include "MUI2.nsh"
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE Russian
OutFile "msgbox-setup.exe"

!ifndef MB_OK
  !define MB_OK                       0x00000000
  !define MB_OKCANCEL                 0x00000001
  !define MB_ABORTRETRYIGNORE         0x00000002
  !define MB_YESNOCANCEL              0x00000003
  !define MB_YESNO                    0x00000004
  !define MB_RETRYCANCEL              0x00000005
  !define MB_CANCELTRYCONTINUE        0x00000006
  !define MB_ICONHAND                 0x00000010
  !define MB_ICONQUESTION             0x00000020
  !define MB_ICONEXCLAMATION          0x00000030
  !define MB_ICONASTERISK             0x00000040
  !define MB_USERICON                 0x00000080
  !define MB_ICONWARNING              ${MB_ICONEXCLAMATION}
  !define MB_ICONERROR                ${MB_ICONHAND}
  !define MB_ICONINFORMATION          ${MB_ICONASTERISK}
  !define MB_ICONSTOP                 ${MB_ICONHAND}
  !define MB_DEFBUTTON1               0x00000000
  !define MB_DEFBUTTON2               0x00000100
  !define MB_DEFBUTTON3               0x00000200
  !define MB_DEFBUTTON4               0x00000300
  !define MB_APPLMODAL                0x00000000
  !define MB_SYSTEMMODAL              0x00001000
  !define MB_TASKMODAL                0x00002000
  !define MB_HELP                     0x00004000
  !define MB_NOFOCUS                  0x00008000
  !define MB_SETFOREGROUND            0x00010000
  !define MB_DEFAULT_DESKTOP_ONLY     0x00020000
  !define MB_TOPMOST                  0x00040000
  !define MB_RIGHT                    0x00080000
  !define MB_RTLREADING               0x00100000
  !define IDABORT    3
  !define IDCANCEL   2
  !define IDCONTINUE 11
  !define IDIGNORE   5
  !define IDNO       7
  !define IDOK       1
  !define IDRETRY    4
  !define IDTRYAGAIN 10
  !define IDYES      6
!endif
!define MessageBoxEx "!insertmacro macro_MessageBoxIndirect"
!macro macro_MessageBoxIndirect Library lpszText lpszCaption dwStyle lpszIcon ExitCode
  Push `${lpszText}`
  Push `${lpszCaption}`
  Push `${Library}`
  Push `${dwStyle}`
  Push `${lpszIcon}`
  System::Store Sr1r2r3r4r5
  System::Call 'kernel32::LoadLibrary(tr3)i.r0'
  StrCmp $0 0 +5
  System::Call '*(&l4, i$HWNDPARENT, ir0, tr5, tr4, i$2|${MB_USERICON}, ir1, i,k,i)i.r5'
  System::Call 'user32::MessageBoxIndirect(ir5) i.s'
  System::Call "kernel32::FreeLibrary(ir0)"
  System::Free $5
  StrCmp $0 0 0 +2
  Push "error"
  System::Store L
  Pop `${ExitCode}`
!macroend

Section
  ${MessageBoxEx} "$SYSDIR\shell32.dll" "lpszText" "lpszCaption" "${MB_YESNOCANCEL}" "194" $1
  ${If} $1 == ${IDYES}
      MessageBox MB_OK "Нажали кнопку `Да`"
  ${ElseIf} $1 == ${IDNO}
      MessageBox MB_OK "Нажали кнопку `Heт`"
  ${ElseIf} $1 == ${IDCANCEL}
      MessageBox MB_OK "Нажали кнопку `Отмена`"
  ${Else}
      MessageBox MB_OK "$$1 = $1"
  ${EndIf}
SectionEnd

-------
Спасибо ВСЕМ за то, что тратите свое время, что бы ПОМОЧЬ МНЕ.


Последний раз редактировалось kotkovets, 07-05-2012 в 23:14. Причина: Поправка на правильный указатель освобождения ресурсов

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:55, 07-05-2012 | #2684