6

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

4

5 に答える 5

11

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

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());
      }
   }
}
于 2009-07-13T14:43:21.523 に答える
8

次のキーでレジストリを確認できます。

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
于 2009-07-13T14:26:44.983 に答える
3

このレジストリキーはから読み取ることができます

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
于 2009-07-13T14:27:56.667 に答える
3

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

また、これはあなたに電子メールアプリケーションの名前を与えるだけです。実行可能ファイル名が必要な場合は、次のようにする必要があります。

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

次に、不要なもの(引用符、パラメーター)をコマンドライン文字列から削除します。

于 2013-08-27T17:21:38.173 に答える
1

のレジストリでその情報を見つけることができるはずだと思いますHKLM\Software\Clients\Mail

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

于 2009-07-13T14:28:42.627 に答える