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