Servers等を使ってOutlookExpressの送信済アイテムを消去する方法を教えて下さい、Delphiのバージョンは6です。宜しくお願いします。
Servers等...の意味がわからないけど、一括消去ならば、レジストリからそのフォルダを取得してファイル削除することも出来るよ。
またアラシのよかんさん有難う御座います。レジストリからそのフォルダを取得してファイル削除する方法が解りましたら教えて下さい、お願いします。
Serversって、コンポーネントのタブ?
> レジストリからそのフォルダを取得してファイル削除する方法
TRegistry 使えば?
新氏さん、Serversはコンポーネントです。TRegistryを使った場合Rootkeyの場所がわかりません、わかったら教えて下さい。
下記のソース迄は出来ています、この後各ユーザー毎のディレクトリー情報を読みたいのですが・・・。
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
try
Reg.Rootkey := HKEY_LOCAL_MACHINE;
if Reg.OpenKey('Software\microsoft\Outlook Express', False) then
Reg.GetKeyNames(Memo1.Lines)
else
ShowMessage('キーのオープンに失敗しました');
finally
Reg.CloseKey;
Reg.Free;
end;
end;
はづき:「あの〜、私、ハヅキといいますが…」
勝爺 :「はいはい、お泊りですか?」
真琴 :「あっ、違うよ、…近くの別荘のヒトですよね?」
はづき:「そうなんです、あの、これ母が送ってきて、でも私一人じゃ多過ぎて…、もしよろしければお嬢さんと召し上がってください」
勝爺 :「それはそれは、ありがとうございます、あ、これは孫でして^^;…」
真琴 :「マコトです、この頃、朝早く散歩してるのを観かけますけど」
はづき:「ええ、2週間ほど前から療養と気分転換を兼ねてココに…」
勝爺 :「療養というと…どこか、お体が…?」
はづき:「ちょっと心臓が弱くて…、じゃ私、散歩の途中なので、これで失礼します」
真琴 :「また遊びにも来てくださいね、ハヅキさん」
はづき:「ええ、そうします、じゃ、また…」
勝爺 :「…ハヅキさんか、体格も良くて、体弱いようには見えねぇけどな、マコト」
真琴 :「そうよね、ナニか"お返し"もしなくちゃネ、おじいちゃん」
春子 :「おっはよう〜、朝市で野菜仕入れてきたよ」
勝爺 :「おぅ、いつも済まねぇな、ハルコ」
春子 :「マコトも日曜なのに早起きだね、お客様来てるの?」
真琴 :「うん、それにもう習慣だから、そうだ、ハルコさん、聞きたいコトが…」
春子 :「じゃ、マコトの部屋にいこか」
真琴 :「ハルコさん、OutLook ExpressのItemフォルダを取得したいの」
春子 :「OutLookだったら、COMでフォルダ取得が出来るようだけどネ…」
真琴 :「OutLook Expressの方はそれじゃダメなの? ハルコさん」
春子 :「そぅ、でも HKEY_CURRENT_USER\Identitiesキーの'Default User ID'か'Last User ID'でクラスIDが分かるから」
真琴 :「クラスID? それが分かった後は?」
春子 :「この↓キーのStore Rootの値がフォルダ名なの」
HKEY_CURRENT_USER\Identities\クラスID\Software\Microsoft\Outlook Express\5.0キー
真琴 :「コレ? 'C:\WINDOWS\Application Data\Identities\...'って書いてある」
春子 :「9X系ではそうネ、でもNT系では、'%UserProfile%\Local Settings\Application Data\...'なの」
真琴 :「あッその環境変数'%UserProfile%'をパスに直すAPIあるよね、ハルコさん」
春子 :「よく知ってるじゃん、マコト」
真琴 :「うん、カイトさんに教えてもらったから」
春子 :「え? カイトさんに? 教えてもらった? どういうコトよ、あぁ〜、また…」
真琴 :「そうヨ、オモシロイ話でしょ? ハルコさん」
春子 :「おぉ? 開き直ったよネ、マコト」
真琴 :「どうせ信じてくれないンなら開き直らなきゃ」
春子 :「あのね、マコト、…ジツはネ、アタシもマコトと一緒に2年前に戻ったの」
真琴 :「エエッ!?…ハルコさんもなの?」
春子 :「あれ? ホンキにした? マコト^^、この前の"お返し"よ^^」
お返しさん有難う御座います、「春子 :「この↓キーのStore Rootの値がフォルダ名なの」の後を具体的に教えてもらえませんか?
HKEY_CURRENT_USER\Identities\クラスID\Software\Microsoft\Outlook Express\5.0キー
がエラーで引っかかってしまいます。その上のは上手くいったのですが・・・。
「↓これは上手くいきました」
var
Reg: TRegistry;
begin
// Reg のインスタンス化
Reg := TRegistry.Create;
try
// ルートキーを設定
Reg.Rootkey := HKEY_CURRENT_USER;
// キーを開く
if Reg.OpenKey('Identities', False) then
begin
Label1.Caption :=Reg.ReadString('Default User ID');
end
else
ShowMessage('キーのオープンに失敗しました');
finally
// キーを閉じる
Reg.CloseKey;
// Reg を破棄
Reg.Free;
end;
end;
「追伸」
HKEY_CURRENT_USER\Identities\クラスID\Software\Microsoft\Outlook Express\5.0キー、Store Rootからディレクトリーを返す方法を教えて下さい。
HKEY_CURRENT_USER\Identities\クラスID\Software\Microsoft\Outlook Express\5.0キー
↑このまんま使ってるとかじゃないの?
クラスIDの所を正しい値{xxxxxxxx-xxxx-....}で置き換えないと...
クラスIDはPC環境ごとに違うからね。
無知ですみません・・・クラスIDはどうやって探すのでしょうか?お手数かけます・・・。
> クラスIDはどうやって探すのでしょうか?
あなたが3つ上に書いたコード。上手くいったんでしょ?
念のため言っておくと最後のところも「5.0キー」じゃなくて「5.0」だから。
一度自分でレジストリエディタで見て構成つかんどいた方がいいかもね。
tttさん、5.0キーでなく5.0で実行しています、再度お聞きします、クラスIDはどうやって探すのでしょうか?
春子のセリフを良く読み返してみたら?
自分のコードでも、Label1.Captionに表示できたんじゃないの?
再度お答えします。あなたが5つ上(2008/07/18(金) 19:34:26)に書いた
「↓これは上手くいきました」
というコードがそのクラスIDを探すコード。
そのコードを実行すると、たとえば
{AAAAAA-BBBBBBBB-CCCCCCCC-DDDDDDDD}
みたいな文字列が得られる。そこまで上手くいったんだよね?
それがデフォルトユーザのクラスIDだから
「クラスID」の部分をその文字列で置き換えてください。
※この後まだ%UserProfile%を実際のパスに直すとか、
ファイルを列挙して削除するとかハードルが待ち受けてるけど大丈夫かな?
これってどうしてもプログラム組んでやらないといけないことなの?
tttさん有難う御座います。何とか出来そうです!!
ツイート | ![]() |