Przy użyciu języka C#, jak ustalić, który program jest zarejestrowany jako domyślny klient poczty e-mail? Nie muszę uruchamiać aplikacji, chcę tylko wiedzieć, co to jest.Znajdź domyślnego klienta poczty e-mail
Odpowiedz
Użyj klasy rejestru, aby przeszukać rejestr. Ta aplikacja konsolowa demonstruje zasadę.
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());
}
}
}
Możesz zajrzeć w rejestrze następujący klucz:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
+1 tylko odrobinę szybciej niż ja ... – Jonathan
Można przeczytać ten klucz rejestru z
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
Myślę, że powinieneś być w stanie znaleźć te informacje w rejestrze na HKLM\Software\Clients\Mail
.
Sprawdź domyślną wartość ciągu.
domyślny klient poczty zależy od użytkownika. HKLM
zawiera listę wszystkich zarejestrowanych klientów poczty e-mail; pierwszy zwrócony może nie być domyślnym użytkownikiem bieżącego użytkownika. Lepiej przeczytać HKEY_CURRENT_USER\Software\Clients\Mail
.
To również daje tylko nazwę aplikacji e-mail. Jeśli chcesz swoją nazwę pliku wykonywalnego, trzeba iść z czymś takim:
object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none");
a następnie wyjąć coś obcego z ciągu wiersza polecenia, których nie potrzebujesz (cytaty, parametry).
Domyślny klient poczty e-mail jest zasadą dla każdego użytkownika. Zgadzam się z odpowiedzią Williama Parke'a poniżej. – JDennis
Czy w jakikolwiek sposób uruchamia się aplikacja? – Rich