Отображение диалогового окна / сообщения после установки NSIS в автоматическом режиме - PullRequest
0 голосов
/ 01 марта 2019

У меня установлен установщик NSIS для работы в автоматическом режиме.Это работает очень хорошо.

У меня был запрос клиента на всплывающее информационное окно после завершения установки ... но все же он хочет, чтобы часть программы установки молчала!

Я понимаю, что это противоречит интуиции.

То, что сказано, есть ли возможность переопределить молчание в конце установки?

В настоящее время я устанавливаю атрибут установщика ниже в начале сценария .nsi.

SilentInstall silent

1 Ответ

0 голосов
/ 01 марта 2019

Вы можете включить или выключить бесшумный режим в .onInit с помощью SetSilent, но как только эта функция вернет режим пользовательского интерфейса, изменить его нельзя.

Простое решение - просто использовать один из Плагины или Splash в конце ваших последних Section для отображения сообщения / изображения.

Или вы можете создать фиктивный тихий режим с минимальным пользовательским интерфейсом, которыйотображается только индикатор выполнения:

!include LogicLib.nsh
Var Silent

Function .onInit
${If} ${Silent}
    SetSilent Normal ; Turn off real silent mode
    SetAutoClose True
    StrCpy $Silent 1 ; Fake silent mode
${EndIf}
FunctionEnd

Page Components SkipPageIfSilent
Page Directory SkipPageIfSilent
Page InstFiles "" TweakInstfilesPage

Function SkipPageIfSilent
IntCmp $Silent 0 +2
    Abort
FunctionEnd

Function TweakInstfilesPage
${If} $Silent <> 0
    SetSilent Silent ; Make IfSilent return true
    FindWindow $0 "#32770" "" $HWNDPARENT
    GetDlgItem $0 $0 0x403 ; Show details button
    ShowWindow $0 0
    System::Call 'USER32::GetWindowRect(p$0,@r1)' ; NSIS v3+
    System::Call 'USER32::GetWindowRect(p$HWNDPARENT,@r2)' ; NSIS v3+
    System::Call '*$1(i,i.r3,i,i)'
    System::Call '*$2(i.r5,i.r6,i.r7,ir3r8)'
    IntOp $5 $7 - $5 ; Width
    IntOp $6 $8 - $6 ; Height
    System::Call 'USER32::SetWindowPos(p$HWNDPARENT,p,i,i,ir5,ir6,i0x12)'
    SetDetailsView Hide
${EndIf}
FunctionEnd

Section
Sleep 333
Sleep 333
Sleep 333
Sleep 333
SectionEnd
...