2010-03-22 11 views
6

यदि VFPOLEDB प्रदाता स्थापित/पंजीकृत है तो मुझे अपने प्रोग्राम में जांच करने की आवश्यकता है? मैं एक संदेश दिखाना चाहता हूं और उपयोगकर्ता को प्रदाता को डाउनलोड और इंस्टॉल करने के लिए कहूंगा। मैं इसे सी # में कैसे देखूं?यह निर्धारित करने के लिए कि VFPOLEDB प्रदाता स्थापित/पंजीकृत है या नहीं?

उत्तर

6

जैसा कि यहां बताया गया है: How to check if an OLEDB driver is installed on the system? आप रजिस्ट्री में VFPOLEDB की कुंजी देख सकते हैं। regedit खोलें और VFPOLEDB की खोज करें, आपको इसे कई स्थानों पर मिल जाएगा; आप यहाँ पर एक में रुचि रखते हैं:

HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000}\1.0\0\win32 

तो हम जानते हैं कि VFPOLEDB यहाँ से अधिक पंजीकृत किया जाना चाहिए:

HKEY_CLASSES_ROOT\TypeLib\{50BAEECA-ED25-11D2-B97B-000000000000} 

अगर यह इस सी # अभिव्यक्ति उपयोग कर रहा है हम परीक्षण कर सकते हैं:

(Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null) 

या हम इसे आसानी से पुन: उपयोग के लिए एक अच्छी स्थैतिक कक्षा में लपेट सकते हैं:

public static class CheckVfpOleDb 
{ 
    public static bool IsInstalled() 
    { 
     return Registry.ClassesRoot.OpenSubKey("TypeLib\\{50BAEECA-ED25-11D2-B97B-000000000000}") != null; 
    } 
} 
+0

अच्छा समाधान, लेकिन कुछ अपवाद होने पर अपनी उपकुंजी को बंद करना न भूलें। – juFo