electonのアプリをビルドするためにelectron-builderを利用しています。 Windows版のインストーラの作成はNSISというスクリプト型のインストールシステムで作ります。
インストーラにスタートアップのチェックボタンを付けて、チェックがあればアプリをスタートアップに登録するスクリプトを作りました。
前の記事のelectron-builderとnsisでWindowsアプリのインストーラの設定まとめ - suzu6.netにNSISについてまとめました。
electron-builderの設定
# Modern UIをインクルードする
!include MUI2.nsh
!ifndef BUILD_UNINSTALLER
# ②チェックボタンがチェックされた時の関数
Function AddToStartup
# ③スタートアップにショートカットを作成
CreateShortCut "$SMSTARTUP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" ""
FunctionEnd
# ①インストーラの最終ページにチェックボタンをつける
!define MUI_FINISHPAGE_SHOWREADME
!define MUI_FINISHPAGE_SHOWREADME_TEXT "スタートアップに登録する"
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION AddToStartup
!endif
!macro customUnInstall
# ④アンインストール時にスタートアップのショートカットを削除する
Delete "$SMSTARTUP\${PRODUCT_NAME}.lnk"
!macroend
処理の説明です。
- インストーラの最終ページにチェックボタンをつける
MUI_FINISHPAGE
がインストーラの最後のfinishがあるページのことです。ここにチェックボタンを付けます。 - チェックボタンがチェックされた時の関数
MUI_FINISHPAGE_SHOWREADME_FUNCTION
で呼び出した関数を定義しています。 - スタートアップにショートカットを作成
CreateShortCut
でショートカットを作成します。$SMSTARTUP
がスタートアップのフォルダパス、$INSTDIR
がインストール先のフォルダパスです。 - アンインストール時にスタートアップのショートカットを削除する
package.json
のbuild.productName
に設定したアプリ名をとることができます。
build.productName
はbuild.name
とは違って日本語でアプリ名を定義できます。
参考
【Electron】PCのスリープと起動イベントを検知する
ElectronNodejsJavaScriptTypeScriptschedule2021-09-06