私は、あらゆる種類の Windows (WinXP、Vista、Win7、X64 バリアントを含む Win8) 向けのデスクトップ MMO ゲームをリリースするゲーム開発者であり、技術に精通した人から技術に精通していない人まで、さまざまな一般ユーザーを対象としています。
ゲームは、定期的にいつでも自分自身を更新できる必要があります。つまり、実行可能ファイル自体を含む、インストールされているすべてのファイルを更新できるように、適切な UAC 特権を使用して顧客のマシンにインストールおよび構成する必要があります。
管理者権限 (RequestExecutionLevel ユーザー) なしで実行するように構成された NSIS インストーラーを作成し、ゲームを (デフォルトで) ユーザーの $LOCALAPPDATA にインストールして、そのゲームを実行するために昇格された権限を必要としないようにしました。私がゲーム用にインストールする実行可能ファイルは、Windows に昇格された特権を必要としないことを通知するマニフェストを使用して構築されています (これは、ゲームをプレイしようとするたびに醜い盾のアイコンと管理者プロンプトを回避するためです)。
私が遭遇した元の問題は次のとおりです。
- 顧客は NSIS インストーラーをダウンロードして特権のある場所にコピーしていますが、インストーラーは管理者権限なしで実行されるため、実行されていないというプロンプトが表示されずにサイレントに実行に失敗します。
一時的な回避策として、NSIS インストーラーを再構築して管理者権限で実行できるようにしましたが、別の問題が発生する可能性があります。顧客がデフォルトのインストール ディレクトリを権限のあるディレクトリに変更すると、ゲーム自体の実行に失敗する可能性があります。その問題の一時的な回避策として、完全な解決策が見つかるまで、デフォルトのインストール場所を変更する機能を無効にしました.
私が考えることができる理想的な解決策は、NSIS を正常に実行できるようにし、管理者権限が必要かどうかを検出してその時点でプロンプトを表示し、プレイヤーが昇格された特権のある場所にインストールできないようにする方法です。それがすべて可能かどうかを知るには、NSIS の経験が十分ではありません。
ガイダンスをいただければ幸いです。