2009-07-13 16 views

Odpowiedz

9

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()); 
     } 
    } 
} 
+0

Domyślny klient poczty e-mail jest zasadą dla każdego użytkownika. Zgadzam się z odpowiedzią Williama Parke'a poniżej. – JDennis

+0

Czy w jakikolwiek sposób uruchamia się aplikacja? – Rich

8

Możesz zajrzeć w rejestrze następujący klucz:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
+2

+1 tylko odrobinę szybciej niż ja ... – Jonathan

3

Można przeczytać ten klucz rejestru z

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
1

Myślę, że powinieneś być w stanie znaleźć te informacje w rejestrze na HKLM\Software\Clients\Mail.

Sprawdź domyślną wartość ciągu.

3

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).