標準に設定してあるメーラを取得するには

解決


RYO  2008-11-12 22:30:45  No: 32566

WindwsXP SP3 + Delphi6Proです。
Delphiで製作したアプリケーション側から、標準に設定されているメーラを知るにはどうしたらいいのでしょうか?
よろしくお願い致します。


igy  2008-11-12 22:42:13  No: 32567

既定のメーラーのファイルパスを取得するには
https://www.petitmonte.com/bbs/answers?question_id=4624

は、どうですか?


RYO  2008-11-13 07:34:34  No: 32568

ご指摘のリンクをたどり、レジストリのHKEY_LOCAL_MACHINE−Software−Clients−Mail−Shell−Open−Commandの値が起動すべきメールソフトのフルパスであることが解りました。ありがとうございました。
これさえ解ればあとはShellExecでいけます。


RYO  2008-11-13 23:27:21  No: 32569

解決しました。

function TForm1.GetMailer: string;
{===============================================================================
規定のメールソフトの起動パスを得る
===============================================================================}
var
  Reg: TRegistry;
  keycode : string;
begin
  Reg := TRegistry.Create;
  Reg.RootKey := HKEY_LOCAL_MACHINE;
  if Reg.OpenKey('\SOFTWARE\Clients\Mail',False) then begin
    keycode := Reg.ReadString('');      //規定されているメールソフトの名前
    if Reg.Openkey('\SOFTWARE\Clients\Mail\' + keycode + '\shell\open\command',false) then begin
      keycode := Reg.ReadString('');    //コマンドラインを取得
      Result := Copy(keycode,2,Length(keycode) - 2);    //ダブルクォート削除
    end;
  end;
  Reg.Free;
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加