昨日に引き続きですが、
アプリでタスク登録した場合はアンインストール時に削除しないと
存在しないバッチなんかを永遠に実行することになりかねないですよね。
ということで、アプリをアンインストールした際にタスクを削除してみます。
一応、前回の記事はこちら。
【WPF】Windowsのタスクスケジューラにタスクを登録する
下記、2つのファイルをプロジェクトのフォルダに配置します。
(カスタム動作からバッチファイルを直接呼び出すことができないため、
バッチを呼び出すVBScriptも作成します。)
taskDel.bat
@echo off
SET LOGF=taskDelete.log
echo [%DATE% %TIME%] タスクスケジュール設定を削除します。 > %LOGF%
echo. >> %LOGF%
echo %CD% >> %LOGF%
schtasks /delete /TN DORADORA\WpfApp1(自動実行タスク) /F >> %LOGF%
echo. >> %LOGF%
echo [%DATE% %TIME%] タスクスケジュール設定を削除しました。 >> %LOGF%
exit
taskDel.vbs
Option Explicit
Dim intReturn
Dim ws
Set ws = CreateObject("Wscript.Shell")
intReturn = ws.run("cmd /c " & Property("CustomActionData") & "taskDel.bat", 0)
パッケージ・エクスプローラーからセットアッププロジェクトを右クリックし、
「View」>「ファイル システム」を選択します。
「Application Folder」を右クリックし、「Add」>「ファイル」を選択します。
プロジェクトに追加した、「taskDel.bat」、「taskDel.vbs」を選択して「開く」ボタンをクリックします。
パッケージ・エクスプローラーからセットアッププロジェクトを右クリックし、
「View」>「カスタム動作」を選択します。
「Uninstall」を右クリックし、「カスタム動作の追加」を選択します。
項目選択ダイアログが表示されるので
「Application Folder」から、「taskDel.vbs」を選択して「OK」ボタンをクリックします。
追加した「taskDel.vbs」のプロパティを開き、
「CustomActionData」に、「 [TARGETDIR] 」を入力します。
以上でカスタム動作の設定は完了です。
種類
説明
Install(インストール)
全てのファイルがインストールされた後に実行されます。
Commit(確定)
インストールが問題なく終了した後に実行されます。
Rollback(ロールバック)
インストール中にエラーが発生し、ロールバックされた後に実行されます。
Uninstall(アンインストール)
アンインストールされた後に実行されます。
セットアッププロジェクトをビルドし、
作成されたモジュールからアプリケーションをインストールし、一度起動します。
(タスク登録処理が実行される)
「コントロールパネル」>「すべてのコントロールパネル項目」>「プログラムと機能」を開き、
インストールされている「WpfApp1」を右クリックし、「アンインストール」を選択します。
アンインストール確認ダイアログが表示される場合は「OK」ボタンをクリックします。
アンインストールが完了したら、
タスクスケジューラを起動してタスクの確認をします。
無事にタスクが削除されていることが確認できました。
何かのお役に立てれば。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント