2009-07-13 14 views
6

सी # का उपयोग करके, मैं यह निर्धारित कैसे कर सकता हूं कि डिफ़ॉल्ट ईमेल क्लाइंट के रूप में कौन सा प्रोग्राम पंजीकृत है? मुझे ऐप लॉन्च करने की ज़रूरत नहीं है, मैं सिर्फ यह जानना चाहता हूं कि यह क्या है।डिफ़ॉल्ट ईमेल क्लाइंट खोजें

उत्तर

9

रजिस्ट्री को खोजने के लिए रजिस्ट्री क्लास का उपयोग करें। यह कंसोल ऐप सिद्धांत का प्रदर्शन करता है।

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

डिफ़ॉल्ट ई-मेल क्लाइंट प्रति उपयोगकर्ता नीति है। मैं नीचे विलियम पार्के की प्रतिक्रिया से सहमत हूं। – JDennis

+0

क्या ऐप लॉन्च करने के लिए वैसे भी है? – Rich

8

आप कुंजी निम्नलिखित पर रजिस्ट्री में देख सकते हैं:

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail 
+2

+1 केवल थोड़ा तेज़ है कि मुझे ... – Jonathan

1

से रजिस्ट्री कुंजी पढ़ सकते हैं मुझे लगता है कि आप कम से रजिस्ट्री में है कि अधिक जानकारी के लिए सक्षम होना चाहिए HKLM\Software\Clients\Mail

डिफ़ॉल्ट स्ट्रिंग मान की खोज करें।

3

डिफ़ॉल्ट ईमेल क्लाइंट उपयोगकर्ता पर निर्भर करता है। HKLM सभी पंजीकृत ईमेल क्लाइंट सूचीबद्ध करता है; लौटाया गया पहला उपयोगकर्ता वर्तमान उपयोगकर्ता का डिफ़ॉल्ट नहीं हो सकता है। HKEY_CURRENT_USER\Software\Clients\Mail पढ़ने के लिए बेहतर है।

इसके अलावा यह आपको केवल ईमेल एप्लिकेशन का नाम देता है। आप अपने निष्पादन योग्य फ़ाइल नाम चाहते हैं, आप की तरह कुछ के साथ पर जाने के लिए है:

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

और उसके बाद कुछ भी कमांड लाइन स्ट्रिंग है कि आप (उद्धरण, पैरामीटर) की जरूरत नहीं है से बाहरी को हटा दें।

संबंधित मुद्दे