Sử dụng C#, làm thế nào tôi có thể xác định chương trình nào được đăng ký làm ứng dụng email mặc định? Tôi không cần phải khởi chạy ứng dụng, tôi chỉ muốn biết nó là gì.Tìm ứng dụng email mặc định
Trả lời
Sử dụng lớp Đăng ký để tìm kiếm sổ đăng ký. Ứng dụng giao diện điều khiển này thể hiện nguyên tắ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());
}
}
}
Bạn có thể tìm trong các registry trên phím sau:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
+1 chỉ nhanh hơn một chút là tôi ... – Jonathan
Bạn có thể đọc khóa registry này từ
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail
Tôi nghĩ rằng bạn sẽ có thể thấy rằng thông tin trong registry tại HKLM\Software\Clients\Mail
.
Tìm giá trị chuỗi mặc định.
Ứng dụng email mặc định tùy thuộc vào người dùng. HKLM
liệt kê tất cả các ứng dụng email đã đăng ký; mục đầu tiên được trả về có thể không phải là giá trị mặc định của người dùng hiện tại. Tốt hơn để đọc HKEY_CURRENT_USER\Software\Clients\Mail
.
Điều này cũng chỉ cung cấp cho bạn tên của ứng dụng email. Nếu bạn muốn tên tập tin thực thi của nó, bạn phải đi ra với một cái gì đó như:
object mailCommand = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\" + mailClient.ToString() + @"\shell\open\command", "", "none");
và sau đó loại bỏ bất cứ điều gì không liên quan từ chuỗi dòng lệnh mà bạn không cần (dấu ngoặc kép, các thông số).
Ứng dụng email mặc định là chính sách cho mỗi người dùng. Tôi đồng ý với câu trả lời của William Parke dưới đây. – JDennis
Có cách nào để khởi chạy ứng dụng không? – Rich