2009-10-04 19 views
19

NSIS Modern User Interfaceを初めて使用してインストーラを作成しようとしています。私は、既にそこにある「Run XXXX」オプションに加えて、Finishページ(インストーラの最後の画面)にデスクトップショートカットを作成するように選択するオプション(チェックボックス)を追加する方法を知りたいと思います。NSISインストーラの終了ページにデスクトップショートカットオプションを追加するには?

+3

二嘆願:(a)は、「入れて役に立たないをチェックしないでください。デスクトップアイコン "のチェックボックスをオンにします。デスクトップは、Vistaではずっと劣っているプログラムの起動方法であり、後でスタートメニューの検索と比較されます。そして、(b)実行チェックボックスがadminsitrativ特権ではなく、現在対話的にログオンしているユーザーとして実行されるようにします。 – Joey

答えて

30

あなたはあなたが好きなアクションを実行するためにそれを使用することができ、仕上がりページ上のreadmeチェックボックスを使用していない場合:

Function finishpageaction 
CreateShortcut "$desktop\foo.lnk" "$instdir\foo.exe" 
FunctionEnd 

!define MUI_FINISHPAGE_SHOWREADME "" 
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED 
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut" 
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION finishpageaction 
+0

ありがとうございます!これはまさに私が必要とするものです! – takoloco

+1

代わりに、MUI_FINISHPAGE_RUN、MUI_FINISHPAGE_RUN_TEXT、MUI_FINISHPAGE_RUN_FUNCTION、MUI_PAGE_FINISHを使用しないでください。これらとMUI_FINISHPAGE_SHOWREADMEなどの違いは何ですか? – AnAurelian

+0

@Davidデフォルトのテキスト以外に実際の違いはありません。 – Anders

8

ユーザーがデスクトップアイコンを追加できるようにする最も簡単な方法は、それを行うカスタムセクションを作成することです。ユーザーは、インストーラの「機能」ページにショートカットを追加することを選択でき、UIを大幅に変更する必要はありません。

Section "Desktop Shortcut" SectionX 
    SetShellVarContext current 
    CreateShortCut "$DESKTOP\Your Program.lnk" "$INSTDIR\YourProgram.exe" 
SectionEnd 
+0

これは、このオプションをインストーラの珍しい、予期しない、しばしば単にスキップされたセクションに置きますので、このようにすることをお勧めします。ユーザーがショートカットを配置するかどうかを尋ねるには、何らかの理由でインストールプロセスの最後になると予想されます。 –

+0

通常、完全にスキップすることができるマイナーなディテールであるため、インストールの最後に期待されます。デスクトップショートカットは便利ですが、必要ではありません。アプリケーションをインストールするためには必須ではありません。この種のオプションをインストールプロセスの_end_に置いておくことで、より少ない労力で多くの作業が完了したように感じることができます。 –

関連する問題