8

NSIS で、ユーザーが現在実行している Windows のバージョンを特定する方法はありますか?

これを行う理由は、私のインストーラーが Windows XP コンピューターでは異なって見えるからです。私のインストーラーは MUI2 を使用していますが、Windows 7 と同じ GUI ボタン​​ (XP スタイルと呼ばれていると思います) がないようで、メインのインストーラー ウィンドウは Windows 7 よりもはるかに大きくなっています (約 500 x 400 ピクセル)。MUI2 を使用するインストーラーでこれらの違いがあるのは正常ですか? MUI2 により、Windows バージョン XP 以降で外観が一貫していると思いますか?

インストーラーのウィンドウ サイズの違いを克服するための私の解決策は、ユーザーが Windows XP を使用しているかどうかを検出し、それに応じてウィンドウのサイズを変更することです。これは可能ですか?

背景画像があり、画像の幅が500pxであるため、ウィンドウを特定のサイズにする必要があるため、インストーラーウィンドウが大きい場合は空白のギャップがあります。背景画像をより広く変更できますが、自分にとって最も簡単な解決策は、上で説明したものです

4

4 に答える 4

6

MUIは、Windowsのバージョンに基づいてウィンドウのサイズを変更しません。ただし、ウィンドウサイズはフォントとDPI設定の影響を受けます。

WinVer.nshWindowsのバージョンを検出するために使用します。このモジュールは、デフォルトでNSISインクルードフォルダーに含まれています。

于 2013-01-19T10:16:26.247 に答える
1

レジストリから直接読み取ることもできます。

ReadRegStr $WinEdition HKLM "SOFTWARE\Microsoft\Windows NT\CurrentVersion" "ProductName"

次に、「==」を使用して比較できます。たとえば、次のようになります。

${If} $WinEdition == "Windows XP"

または、StrContainsを使用して、Windows バージョンに「Windows XP」が含まれているかどうかを確認できます。

于 2014-09-01T10:51:32.603 に答える