2009-07-13 10 views
6

C#を使用すると、どのプログラムがデフォルトの電子メールクライアントとして登録されているかをどのように判断できますか?私はアプリを起動する必要はありません、私はちょうどそれが何であるか知りたいです。デフォルトの電子メールクライアントを見つける

あなたは、次のキーにレジストリで見ることができ

答えて

9

レジストリクラスを使用してレジストリを検索します。このコンソールアプリは原理を実証しています。

using System; 
using Microsoft.Win32; 

namespace RegistryTestApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     object mailClient = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail", "", "none"); 
     Console.WriteLine(mailClient.ToString()); 
     } 
    } 
} 
+0

デフォルトの電子メールクライアントは、ユーザーごとのポリシーです。私は以下のWilliam Parkeの回答に同意します。 – JDennis

+0

とにかくアプリを起動する方法はありますか? – Rich

8

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
+2

+1私はちょっと速いです... – Jonathan

3

あなたは

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
1

からこのレジストリキーを読み取ることができ、私はあなたがでレジストリにその情報を見つけることができるはずだと思いますHKLM\Software\Clients\Mail

デフォルトの文字列値を探します。

3

デフォルトのメールクライアントは、ユーザーによって異なります。 HKLMは登録されているすべての電子メールクライアントを一覧表示します。返される最初のものは、現在のユーザーのデフォルトではない可能性があります。 HKEY_CURRENT_USER\Software\Clients\Mailをよく読んでください。

また、電子メールアプリケーションの名前のみが表示されます。

object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none"); 

、その後、あなたは(引用符、パラメータ)を必要としないコマンドライン文字列から余分なものを取り除く:あなたはその実行可能ファイル名が必要な場合は、のようなものを上に行かなければなりません。

関連する問題