दिलचस्प पोस्ट
क्या आईओएस में एक घड़ी है जिसका प्रयोग उपयोगकर्ता द्वारा बदला नहीं जा सकता क्यों `नल> = 0 && नल <= 0` लेकिन नहीं` नल == 0`? आईफ़ोन: डिफ़ॉल्ट रूप से UITableView खोज बार छुपाएं आईओएसओ फोटो फ्रेमवर्क: पीएचएसएसटी के नाम (या फ़ाइल नाम) कैसे प्राप्त करें? चमकदार ऐप में 'रीसेट करें इनपुट' बटन संदर्भ त्रुटि: $ परिभाषित नहीं है जीआरपी: क्या एक ऑपरेटर है? स्ट्रिंग में वर्ण की सभी घटनाओं की अनुक्रमणिका प्रक्रिया मानक से आउटपुट प्राप्त करेंऑप्टपुट जावास्क्रिप्ट के साथ सुंदर प्रिंटिंग एक्सएमएल कैसे MATLAB समारोह के कुछ वापसी मूल्यों को सुंदर ढंग से अनदेखा करें? छवि के चारों ओर प्रवाह करने के लिए लेआउट पाठ कैसे करें MySQL "गलत स्ट्रिंग मान" त्रुटि जब Django में यूनिकोड स्ट्रिंग सहेजता है मैक ओएसएक्स 10.9 पर टर्मिनल में काम करने के लिए उपयुक्त क्यों नहीं है? खिड़की.क्योंकि क्रोम में काम नहीं कर रहा है

कैसे सी # का उपयोग डिफ़ॉल्ट वेब ब्राउज़र को खोजने के लिए?

सी # का उपयोग करते हुए मेरे डिफ़ॉल्ट वेब ब्राउज़र का नाम पता लगा सकता है? (फ़ायरफ़ॉक्स, Google क्रोम, आदि।)

क्या आप मुझे एक उदाहरण के साथ दिखा सकते हैं?

Solutions Collecting From Web of "कैसे सी # का उपयोग डिफ़ॉल्ट वेब ब्राउज़र को खोजने के लिए?"

आप यहां एक उदाहरण के लिए देख सकते हैं, लेकिन मुख्य रूप से इसे इस तरह किया जा सकता है:

internal string GetSystemDefaultBrowser() { string name = string.Empty; RegistryKey regKey = null; try { //set the registry key we want to open regKey = Registry.ClassesRoot.OpenSubKey("HTTP\\shell\\open\\command", false); //get rid of the enclosing quotes name = regKey.GetValue(null).ToString().ToLower().Replace("" + (char)34, ""); //check to see if the value ends with .exe (this way we can remove any command line arguments) if (!name.EndsWith("exe")) //get rid of all command line arguments (anything after the .exe must go) name = name.Substring(0, name.LastIndexOf(".exe") + 4); } catch (Exception ex) { name = string.Format("ERROR: An exception of type: {0} occurred in method: {1} in the following module: {2}", ex.GetType(), ex.TargetSite, this.GetType()); } finally { //check and see if the key is still open, if so //then close it if (regKey != null) regKey.Close(); } //return the value return name; } 

वर्तमान में स्वीकृत जवाब मेरे लिए काम नहीं करता जब इंटरनेट एक्सप्लोरर को डिफ़ॉल्ट ब्राउज़र के रूप में सेट किया जाता है। मेरे विंडोज 7 पीसी पर HKEY_CLASSES_ROOT\http\shell\open\command IE के लिए अद्यतन नहीं है इसके पीछे का कारण Windows Vista से शुरू की गई परिवर्तनों में परिवर्तन हो सकता है, जिसमें डिफ़ॉल्ट कार्यक्रमों का संचालन किया जाता है।

आप रजिस्ट्री कुंजी, Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice , में डिफ़ॉल्ट चयनित ब्राउज़र पा सकते हैं, मूल्य Progid साथ। ( धन्यवाद टूटी पिक्सेल को जाता है )

 const string userChoice = @"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice"; string progId; BrowserApplication browser; using ( RegistryKey userChoiceKey = Registry.CurrentUser.OpenSubKey( userChoice ) ) { if ( userChoiceKey == null ) { browser = BrowserApplication.Unknown; break; } object progIdValue = userChoiceKey.GetValue( "Progid" ); if ( progIdValue == null ) { browser = BrowserApplication.Unknown; break; } progId = progIdValue.ToString(); switch ( progId ) { case "IE.HTTP": browser = BrowserApplication.InternetExplorer; break; case "FirefoxURL": browser = BrowserApplication.Firefox; break; case "ChromeHTML": browser = BrowserApplication.Chrome; break; case "OperaStable": browser = BrowserApplication.Opera; break; case "SafariHTML": browser = BrowserApplication.Safari; break; case "AppXq0fevzme2pys62n3e0fbqa7peapykr8v": browser = BrowserApplication.Edge; break; default: browser = BrowserApplication.Unknown; break; } } 

अगर आपको ब्राउजर के एक्जीक्यूटेबल के लिए पथ की आवश्यकता होती है, तो आप इसे इस प्रकार एक्सेस कर सकते हैं, Progid का उपयोग Progid से प्राप्त करने के लिए कर ClassesRoot

 const string exeSuffix = ".exe"; string path = progId + @"\shell\open\command"; FileInfo browserPath; using ( RegistryKey pathKey = Registry.ClassesRoot.OpenSubKey( path ) ) { if ( pathKey == null ) { return; } // Trim parameters. try { path = pathKey.GetValue( null ).ToString().ToLower().Replace( "\"", "" ); if ( !path.EndsWith( exeSuffix ) ) { path = path.Substring( 0, path.LastIndexOf( exeSuffix, StringComparison.Ordinal ) + exeSuffix.Length ); browserPath = new FileInfo( path ); } } catch { // Assume the registry value is set incorrectly, or some funky browser is used which currently is unknown. } } 

मैंने इसके लिए सिर्फ एक फ़ंक्शन बनाया है:

  public void launchBrowser(string url) { string browserName = "iexplore.exe"; using (RegistryKey userChoiceKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice")) { if (userChoiceKey != null) { object progIdValue = userChoiceKey.GetValue("Progid"); if (progIdValue != null) { if(progIdValue.ToString().ToLower().Contains("chrome")) browserName = "chrome.exe"; else if(progIdValue.ToString().ToLower().Contains("firefox")) browserName = "firefox.exe"; else if (progIdValue.ToString().ToLower().Contains("safari")) browserName = "safari.exe"; else if (progIdValue.ToString().ToLower().Contains("opera")) browserName = "opera.exe"; } } } Process.Start(new ProcessStartInfo(browserName, url)); } 

यह पुराना हो रहा है, लेकिन मैं दूसरों के इस्तेमाल के लिए अपनी स्वयं की निष्कर्षों को जोड़ दूंगा HKEY_CURRENT_USER\Software\Clients\StartMenuInternet का मान आपको इस उपयोगकर्ता के लिए डिफ़ॉल्ट ब्राउज़र नाम देना चाहिए।

यदि आप सभी इंस्टॉल किए गए ब्राउज़रों की गणना करना चाहते हैं, तो HKEY_LOCAL_MACHINE\SOFTWARE\Clients\StartMenuInternet

HKEY_LOCAL_MACHINE में डिफ़ॉल्ट ब्राउजर की पहचान करने के लिए आप HKEY_CURRENT_USER में पाए गए नाम का उपयोग कर सकते हैं और उसके बाद उस मार्ग को ढूंढ सकते हैं।

सही प्रोटोकॉल हैंडलिंग के साथ यहां यहां कुछ प्रतिक्रियाएं एकत्रित करने से मैंने इसे बनाया है:

 /// <summary> /// Opens a local file or url in the default web browser. /// Can be used both for opening urls, or html readme docs. /// </summary> /// <param name="pathOrUrl">Path of the local file or url</param> /// <returns>False if the default browser could not be opened.</returns> public static Boolean OpenInDefaultBrowser(String pathOrUrl) { // Trim any surrounding quotes and spaces. pathOrUrl = pathOrUrl.Trim().Trim('"').Trim(); // Default protocol to "http" String protocol = Uri.UriSchemeHttp; // Correct the protocol to that in the actual url if (Regex.IsMatch(pathOrUrl, "^[az]+" + Regex.Escape(Uri.SchemeDelimiter), RegexOptions.IgnoreCase)) { Int32 schemeEnd = pathOrUrl.IndexOf(Uri.SchemeDelimiter, StringComparison.Ordinal); if (schemeEnd > -1) protocol = pathOrUrl.Substring(0, schemeEnd).ToLowerInvariant(); } // Surround with quotes pathOrUrl = "\"" + pathOrUrl + "\""; Object fetchedVal; String defBrowser = null; // Look up user choice translation of protocol to program id using (RegistryKey userDefBrowserKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Windows\Shell\Associations\UrlAssociations\" + protocol + @"\UserChoice")) if (userDefBrowserKey != null && (fetchedVal = userDefBrowserKey.GetValue("Progid")) != null) // Programs are looked up the same way as protocols in the later code, so we just overwrite the protocol variable. protocol = fetchedVal as String; // Look up protocol (or programId from UserChoice) in the registry, in priority order. // Current User registry using (RegistryKey defBrowserKey = Registry.CurrentUser.OpenSubKey(@"SOFTWARE\Classes\" + protocol + @"\shell\open\command")) if (defBrowserKey != null && (fetchedVal = defBrowserKey.GetValue(null)) != null) defBrowser = fetchedVal as String; // Local Machine registry if (defBrowser == null) using (RegistryKey defBrowserKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Classes\" + protocol + @"\shell\open\command")) if (defBrowserKey != null && (fetchedVal = defBrowserKey.GetValue(null)) != null) defBrowser = fetchedVal as String; // Root registry if (defBrowser == null) using (RegistryKey defBrowserKey = Registry.ClassesRoot.OpenSubKey(protocol + @"\shell\open\command")) if (defBrowserKey != null && (fetchedVal = defBrowserKey.GetValue(null)) != null) defBrowser = fetchedVal as String; // Nothing found. Return. if (String.IsNullOrEmpty(defBrowser)) return false; String defBrowserProcess; // Parse browser parameters. This code first assembles the full command line, and then splits it into the program and its parameters. Boolean hasArg = false; if (defBrowser.Contains("%1")) { // If url in the command line is surrounded by quotes, ignore those; our url already has quotes. if (defBrowser.Contains("\"%1\"")) defBrowser = defBrowser.Replace("\"%1\"", pathOrUrl); else defBrowser = defBrowser.Replace("%1", pathOrUrl); hasArg = true; } Int32 spIndex; if (defBrowser[0] == '"') defBrowserProcess = defBrowser.Substring(0, defBrowser.IndexOf('"', 1) + 2).Trim(); else if ((spIndex = defBrowser.IndexOf(" ", StringComparison.Ordinal)) > -1) defBrowserProcess = defBrowser.Substring(0, spIndex).Trim(); else defBrowserProcess = defBrowser; String defBrowserArgs = defBrowser.Substring(defBrowserProcess.Length).TrimStart(); // Not sure if this is possible / allowed, but better support it anyway. if (!hasArg) { if (defBrowserArgs.Length > 0) defBrowserArgs += " "; defBrowserArgs += pathOrUrl; } // Run the process. defBrowserProcess = defBrowserProcess.Trim('"'); if (!File.Exists(defBrowserProcess)) return false; ProcessStartInfo psi = new ProcessStartInfo(defBrowserProcess, defBrowserArgs); psi.WorkingDirectory = Path.GetDirectoryName(defBrowserProcess); Process.Start(psi); return true; }