16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"RE^3:Wininit.iniの使用例"
この発言は #00810 Atelier Macchan さんのRE^2:Wininit.iniの使用例 に対するコメントです
この発言に対し以下のコメントが寄せられています
#01070 Atelier Macchan さん RE^4:Wininit.iniの使用例
#01403 Tiny Mouse さん 再起動時にファイル/フォルダをリネーム/削除
n-tack さん、Satobe さん、Atelier Macchan さん、こんにちは。
> フォルダは削除出来ません。(確認済み)
Wininit.ini ファイルを使って、フォルダを削除することも可能です。'Nul=' の
代わりに 'DirNul=' を使います。サブフォルダがあっても削除できます。
> 自作のアンインストーラで書いてる処理を、サンプルとして書いときます。
Delphi を使い始めて 1 カ月になります。こんな綺麗なコードが書けるんですね。
感動しました。
Atelier Macchan さんのサンプルを使って、サンプルを書いてみました。
{------------------------------------------------------------------------}
procedure DeleteFileAtReboot(FilePath: String);
var
pos: Integer;
inifile: String;
buf: array[0..MAX_PATH] of Char;
begin
// Wininit.ini のパス名を取得
GetWindowsDirectory(buf, SizeOf(buf));
inifile := buf + '\Wininit.ini';
// 編集用のStringListを作成
With TStringList.Create do
Try
// Wininit.ini が既にあれば読み込む
if FileExists(inifile) then begin
LoadFromFile(inifile);
end;
// [Rename]セクションの位置を取得
pos := IndexOf('[Rename]');
// [Rename]セクションが無ければ追加する
if pos < 0 then begin
pos := Add('[Rename]');
end;
// ファイルの短いパス名を取得
GetShortPathName(PChar(FilePath), buf, SizeOf(buf));
// 削除する設定の行を追加
if FileGetAttr(FilePath) and faDirectory > 0 then begin
// フォルダを削除
Insert(pos + 1, 'DirNul=' + buf);
end else begin
// ファイルを削除
Insert(pos + 1, 'Nul=' + buf);
end;
// Wininit.ini を保存する
SaveToFile(inifile);
Finally
Free;
end;
end;
◆◆ KHC04052 : http://member.nifty.ne.jp/tinymouse/ : Tiny Mouse ◆◆
Original document by Tiny Mouse 氏 ID:(KHC04052)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|