デフォルトの電子メールクライアントを探します
-
12-09-2019 - |
質問
C#を使用して、どのように私は、デフォルトの電子メールクライアントとして登録されているプログラムを判別することができますか?私はちょうどそれが何であるかを知りたい、アプリを起動する必要はありません。
解決
レジストリを検索するためにレジストリクラスを使用します。このコンソールアプリは原則を示しています。
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());
}
}
}
他のヒント
あなたは、次のキーにレジストリで見ることができます:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
あなたはからこのレジストリキーを読み取ることができます。
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
デフォルトの電子メールクライアントは、ユーザーによって異なります。 HKLM
リスト登録されているすべての電子メールクライアント。返された最初のものは、現在のユーザーのデフォルトではないかもしれません。より良いHKEY_CURRENT_USER\Software\Clients\Mail
を読み取ります。
また、これが唯一のあなたの電子メールアプリケーションの名前を与えます。あなたがその実行可能ファイル名が必要な場合は、のようなものを上に行かなければならない。
object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none");
と、あなたが(引用符、パラメータ)を必要としないコマンドライン文字列から余分なものを削除します。
私はあなたがHKLM\Software\Clients\Mail
でレジストリにその情報を見つけることができるはずだと思います。
デフォルトの文字列値を探します。
所属していません StackOverflow