private static string FindInternetExplorer() { const string strIEDef = "SOFTWARE\\Clients\\StartMenuInternet\\IEXPLORE.EXE\\shell\\open\\command"; const string strIEWow = "SOFTWARE\\Wow6432Node\\Clients\\StartMenuInternet\\IEXPLORE.EXE\\shell\\open\\command"; for (int i = 0; i < 6; ++i) { RegistryKey k = null; // https://msdn.microsoft.com/en-us/library/windows/desktop/dd203067.aspx if (i == 0) { k = Registry.CurrentUser.OpenSubKey(strIEDef, false); } else if (i == 1) { k = Registry.CurrentUser.OpenSubKey(strIEWow, false); } else if (i == 2) { k = Registry.LocalMachine.OpenSubKey(strIEDef, false); } else if (i == 3) { k = Registry.LocalMachine.OpenSubKey(strIEWow, false); } else if (i == 4) { k = Registry.ClassesRoot.OpenSubKey( "IE.AssocFile.HTM\\shell\\open\\command", false); } else { k = Registry.ClassesRoot.OpenSubKey( "Applications\\iexplore.exe\\shell\\open\\command", false); } if (k == null) { continue; } string str = (k.GetValue(string.Empty) as string); k.Close(); if (str == null) { continue; } str = UrlUtil.GetQuotedAppPath(str).Trim(); if (str.Length == 0) { continue; } // https://sourceforge.net/p/keepass/discussion/329221/thread/6b292ede/ if (str.StartsWith("iexplore.exe", StrUtil.CaseIgnoreCmp)) { continue; } return(str); } return(null); }