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);
        }