BrowserSelect.BrowserFinder.find C# (CSharp) Method

find() public static method

public static find ( ) : List
return List
        public static List<Browser> find()
        {
            List<Browser> browsers = new List<Browser>();
            //special case , firefox+firefox developer both installed
            //(only works if firefox installed in default directory)
            var ff_path = Path.Combine(
                Program.ProgramFilesx86(),
                @"Mozilla Firefox\firefox.exe");
            if (File.Exists(ff_path))
                browsers.Add(new Browser()
                {
                    name = "FireFox",
                    exec = ff_path,
                    icon = IconExtractor.fromFile(ff_path)
                });
            //special case , Edge
            var edge_path = Path.Combine(
                Environment.GetFolderPath(Environment.SpecialFolder.Windows),
                @"SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe");
            if (File.Exists(edge_path))
                browsers.Add(new Browser()
                {
                    name = "Edge",
                    //exec=edge_path,
                    // http://answers.microsoft.com/en-us/insider/forum/insider_internet-insider_spartan/how-to-start-microsoft-edge-from-command-line/25d0ba93-4e8b-41cb-adde-461d8fb58ec1
                    exec = "edge",
                    icon = IconExtractor.fromFile(edge_path)
                });

            //gather browsers from registry
            using (RegistryKey hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32))
                browsers.AddRange(find(hklm));
            using (RegistryKey hkcu = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry32))
                browsers.AddRange(find(hkcu));

            //remove myself
            browsers = browsers.Where(x => Path.GetFileName(x.exec).ToLower() !=
                 Path.GetFileName(Application.ExecutablePath).ToLower()).ToList();
            //remove duplicates
            browsers = browsers.GroupBy(browser => browser.exec)
                .Select(group => group.First()).ToList();

            return browsers;
        }

Same methods

BrowserFinder::find ( RegistryKey hklm ) : List

Usage Example

Example #1
0
        public void updateBrowsers()
        {
            SuspendLayout();
            browsers = BrowserFinder.find().Where(b => !Settings.Default.HideBrowsers.Contains(b.Identifier)).ToList();
            int i     = 0;
            int width = 0;

            for (int k = Controls.Count - 1; k >= 0; k--)
            {
                Control c = Controls[k];
                if (c is BrowserUC)
                {
                    Controls.RemoveAt(k);
                }
            }
            // add browserUC objects to the form
            foreach (var browser in browsers)
            {
                var buc = new BrowserUC(browser, i);
                width      = buc.Width; // buc.Width = 128*dpi Scale
                buc.Left   = width * i++;
                buc.Click += browser_click;
                this.Controls.Add(buc);
            }
            ResumeLayout();
            buc.Left      = i * width;
            btn_help.Left = i * width;
            btn_help.Top  = buc.Height - btn_help.Height;
            // this.Width = i * 128 + 20 + 20;
        }
All Usage Examples Of BrowserSelect.BrowserFinder::find
BrowserFinder