実行ファイルで自分自身を削除するには? – プログラミング – Home

実行ファイルで自分自身を削除するには?
 
通知
すべてクリア

[解決済] 実行ファイルで自分自身を削除するには?


労働者
 労働者
(@労働者)
ゲスト
結合: 25年前
投稿: 3
Topic starter  

はじめまして、VC初心者の労働者です。
ファイルを削除するプログラムを作成しています。
一応、アンインストーラとして使用する予定なのですが、このアンインストーラ自身を
削除することが可能なのか?、またそれを行うには如何なる方法があるか
教えて欲しいのです。
分かるかたが居られましたら宜しくお願いします。

アンインストーラでなくても、アプリケーションの追加と削除に登録されて削除が可能って
方法でも結構です。アンインストールについて知識/情報をお持ちの方、宜しくお願い
します。


引用未解決
トピックタグ
労働者
 労働者
(@労働者)
ゲスト
結合: 25年前
投稿: 3
Topic starter  

自己レスです。

レジストリの
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
に任意の項目を追加することでアプリケーションの追加と削除に登録できる様です。

RegCreateKeyを使用してキーを作成して、更にサブキーを指定します。
DisplayName:リストに表示するAP名(文字列)
UninstallString:アンインストーラをフルパスで指定

これでアプリケーションの追加と削除からアンインストーラを起動できるようです。

まだアンインストーラ自身の削除方法は不明です。
ご存知の方がいましたら宜しくお願いします。


返信引用
労働者
 労働者
(@労働者)
ゲスト
結合: 25年前
投稿: 3
Topic starter  

またまた自己レスです。

Windowsディレクトリ直下にWININIT.INIというファイルを作成し、
ここに削除したいファイルのフルパスを記述しておけば、OSの再起動時に
自動的に削除されるようです。WININIT.INIも自動的に削除されます。
試したところ、どうやらロングファイルネームには対応していない様でした。

[Rename]
NUL=削除したいファイルAのフルパス
NUL=削除したいファイルBのフルパス

上記のような記述式で対応できる様です。
但し、キーが「NUL」でないといけない様なので複数のファイルを指定する場合や
自分以外のアプリが既にWININIT.INIを使用している場合も考えると、
WritePrivateProfileString関数を使用するには向いていない様です。

…自分で解決させてしまった。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました