1

このコマンドで古いバージョンをアンインストールするNSIS インストーラーがあります

ExecWait "$INSTDIR\temp\uninstall.exe /S _?=$INSTDIR"

インストーラーは、古いバージョンのアンインストールが完了するまで待ってから、新しいインストールに進むことになっています。問題は、ユーザーがインストール ウィンドウで長い間進行状況を確認できないことです (アンインストーラーはいくつかの巨大なディレクトリを削除する必要があるため、独自の時間がかかります)。

/Sスイッチを削除するとアンインストーラー ウィンドウがポップアップし、ユーザーは数回クリックしてアンインストールを続行し、最後にアンインストーラーを閉じる必要があるため、削除したくありません。

アンインストーラーをサイレント モードで実行しているときに、インストーラー ウィンドウに進行状況を表示できる方法はありますか?

4

1 に答える 1

1

/S が使用されている場合、フィードバックを取得する方法はありません。できることは、独自のパラメーターを作成し、アンインストーラーを微調整することです。

!include FileFunc.nsh

UninstPage uninstConfirm un.skipifsilentprogress
UninstPage instFiles

Function un.skipifsilentprogress
ClearErrors
${GetParameters} $0
${GetOptions} "$0" "/UIS" $1
${IfNot} ${Errors}
    SetAutoClose true ;Make sure user does not have to click close
    Abort
${EndIf}
FunctionEnd

Section uninstall
Detailprint uninstalling...
Sleep 555
Sleep 555
Sleep 555
SectionEnd

そして、特別な /UIS スイッチで実行します...

于 2012-05-04T16:05:31.603 に答える