3

追加のファイルをダウンロードする必要がない限り、完全にサイレントにしたいNSISインストーラーがあります。SilentInstallを使用して完全にサイレントにすることはできますが、ダウンロードダイアログを表示できません(InetLoad :: loadを使用しています)。

私がそう言うまで、ウィンドウを表示しないようにNSISに伝えたいと思います。私が思いつくことができる最高のものはHideWindowです。残念ながら、NSISはデフォルトでウィンドウを表示してから非表示にしてちらつきを引き起こしているように見えます。

ウィンドウのちらつきを防ぐにはどうすればよいですか?

コード例:

名前「フリッカーテスト」
OutFile "flickertest.exe"

AutoCloseWindow true

セクション
    HideWindow
SectionEnd
4

3 に答える 3

3

これはそれを行うためのハック方法です:

!include "${NSISDIR}\Examples\System\System.nsh"

Name "No Flicker test"
OutFile "noflickertest.exe"

AutoCloseWindow true

Function .onGUIInit
    ; move window off screen
    System::Call "User32::SetWindowPos(i, i, i, i, i, i, i) b ($HWNDPARENT, 0, -10000, -10000, 0, 0, ${SWP_NOOWNERZORDER}|${SWP_NOSIZE})"
FunctionEnd

Section -main
    HideWindow
SectionEnd
于 2009-11-09T01:44:08.523 に答える
2

スキップページを使用できますMUI2の例(モードが更新されている場合はディレクトリページを非表示にします):

!define MUI_PAGE_CUSTOMFUNCTION_PRE dirPre
!insertmacro MUI_PAGE_DIRECTORY

Function dirPre
    StrCmp $Mode "update" +1 +2
    abort
FunctionEnd
于 2011-10-27T13:20:58.840 に答える
0
OutFile "example.exe"

SilentInstall silent

RequestExecutionLevel user<br>
ReserveFile test.exe

Section ""<br>
&emsp;InitPluginsDir<br>
&emsp;File /oname=$PLUGINSDIR\test.exe test.exe<br>
&emsp;ExecWait "$PLUGINSDIR\test.exe"<br>
SectionEnd
于 2016-05-28T16:17:25.443 に答える