インストラー NSIS を使う
自作ソフトウエアのインストーラーを作るのに、 NSIS を使います。
PC 起動時に常駐するプログラムのインストーラーは、 以下の2つ対応が必要です。
・ スタートアップにリンクを作成する
・ アンインストール時に常駐プログラムを終了してアンインストールする
NSIS plugin nProcess を使う
-
ns
https://nsisProcess .zip をダウンロード .sourceforge .io /Ns Process_plugin / から、 Download v1.6 (NSIS UNICODE support)の
nsProcess .zip(14KB) をダウンロードして、 ns Process plugin をインストールします。 -
ns
Process .zip を解凍 plugin
/ns Process .dll を NSIS インストールフォルダ/plugins /x86-ansi に
plugin/ns Process W .dll を NSIS インストールフォルダ/plugins /x86-unicode に
コピーします。 -
次に、unicode版dll を名前を変更します。
NSIS インストールフォルダ/plugins
/x86-unicode /ns Process W .dll
↓
NSIS インストールフォルダ/plugins/x86-unicode /ns Process .dll
これで NSIS に plugin が準備できました。
nsi を常駐プログラムに対応する
# スタートアップフォルダにアイコンを作成
CreateShortcut "$$SMPROGRAMS¥clipsnippets.lnk" "$INSTDIR¥clipsnippets.exe" ""
を追加します。
!include "LogicLib.nsh"
# アンインストーラ
Section "Uninstall"
# アンインストーラを削除
Delete "$INSTDIR¥Uninstall.exe"
# 常駐プログラムを終了
StrCpy $1 "clipsnippets.exe"
nsProcess::_FindProcess "$1"
Pop $R0
${If} $R0 = 0
nsProcess::_KillProcess "$1"
Pop $R0
Sleep 500
${EndIf}
Delete "$INSTDIR¥clipsnippets.exe"
# サブディレクトリ毎ディレクトリを削除
RMDir /r "$INSTDIR"
# スタート メニューから削除
Delete "$SMPROGRAMS¥clipsnippets.lnk"
# スタートアップのショートカットを削除する
Delete "$SMSTARTUP¥clipsnippets.lnk"
# レジストリ キーを削除
DeleteRegKey HKLM "Software¥Microsoft¥Windows¥CurrentVersion¥Uninstall¥clipsnippets"
SectionEnd
実行中のプログラムを終了してから、 アンインストールする様に修正します。
サンプルダウンロード
最終更新日
2023-04-21