質問

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でレジストリにその情報を見つけることができるはずだと思います。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top