インストールを構成するページと、ペイロードのダウンロードとインストールの進行状況バーを表示するページの 2 つのページを含む、カスタム UI を備えた小さなブートストラップがあります。私の問題: 2 番目のページでユーザーが Enter キーを押すと、インストールが完了していなくてもインストーラーが終了します。
UI からできるすべてのコントロールを次のように削除しました。
GetDlgItem $1 $HWNDPARENT 1 //(2, and 3)
System::Call `User32::DestroyWindow(i $1)`
onGuiInit 関数で、最初のページは Enter キーとスペース キーを無視するようになりましたが、2 ページ目は Enter キーで終了します。そのページには、いくつかのラベル、プログレスバー、およびスライドショー (nsisSlideshow プラグイン) を除いて、他のコンポーネントはありません。バックグラウンドで、ペイロードをダウンロードしてインストールするスレッドがあります。
ページは次のように宣言されます。
Page Custom Options_Show Options_Leave
Page Custom Progress_Show Progress_Leave
つまり、簡単に言うと、Enter キーを押すと、nsDialogs::Show 関数が返され、インストーラーが強制終了されます。
これを止める方法はありますか?