Toon posts:

[.NET] Default browser information

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo mensen,

Ik heb een vraag. Ik wil graag dat ik informatie kan opvragen over de default browser (ongeacht of dit IE of FF is of nog een andere). Op de volgende manier doe ik het nu, maar ben ik niet gelukkig mee. Is er geen makkelijker manier?

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public static string getDefaultBrowser()
        {
            string browser = string.Empty;
            RegistryKey key = null;
            try
            {
                key = Registry.ClassesRoot.OpenSubKey(@"HTTP\shell\open\command", false);

                //trim off quotes
                browser = key.GetValue(null).ToString().ToLower().Replace("\"", "");
                if (!browser.EndsWith("exe"))
                {
                    //get rid of everything after the ".exe"
                    browser = browser.Substring(0, browser.LastIndexOf(".exe") + 4);
                }
            }
            finally
            {
                if (key != null) key.Close();
            }
            return browser;
        }

/// <summary>
        /// Functie om gegevens van een process terug te krijgen.
        /// </summary>
        /// <returns></returns>
        public static FileVersionInfo getDefaultBrowserInformation()
        {
            try
            {
                // Nieuwe default browser project.
                Process _Process = new Process();
                _Process.StartInfo.FileName = getDefaultBrowser();
                _Process.StartInfo.Arguments = "";
                _Process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                _Process.StartInfo.CreateNoWindow = true;
                _Process.Start();

                // Process informatie ophalen.
                FileVersionInfo _FileInfo = _Process.Modules[0].FileVersionInfo;
                _Process.Kill();

                // Informatie terug sturen.
                return _FileInfo;
            }
            catch (Exception)
            {
                // Null terugsturen.
                return null;
            }
        }

  • whoami
  • Registratie: December 2000
  • Laatst online: 18:04
Dit gaat over een WinForms applicatie neem ik aan ?
Wat wil je precies doen ? Als je een webpagina wilt openen in de default browser, dan is het beter / makkelijker om een process te starten, met enkel de URL als filename, op die manier zou het OS de default browser moeten opstarten, en naar die url gaan.

code:
1
2
3
4
5
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.FileName = "http://www.google.com";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.UseShellExecute = true;
p.Start();

[ Voor 26% gewijzigd door whoami op 04-12-2006 15:31 ]

https://fgheysels.github.io/


Verwijderd

Zo dus:

System.Diagnostics.Process.Start("http://tweakers.net");

Hij opent de website in je default browser.

Verwijderd

Topicstarter
Ohja, excuus.

Het gaat om een windows applicatie dat RSS feeds ophaalt van het internet en laat zien in msn schermpjes. In het programma zit een venster dat de versie en naam van het programma laat zien maar ik wil daar ook laten zien wat de default browser is. Hij hoeft daar geen URL te openen maar alleen informatie te tonen van de default browser.

@Searoar
Ik hoef geen browser te openen dat lukt wel, maar gewoon informatie VAN die browser.

[ Voor 12% gewijzigd door Verwijderd op 04-12-2006 15:45 ]


Verwijderd

Ik zat ff te kijken of je misschien met het mime type iets kunt. Als je zou kunnen opvragen welk programma die gebruikt om het type "text/html" te openen dan ben je er ook. Maar zoiets lijkt er niet te zijn:
System.Net.Mime.ContentType ct = new System.Net.Mime.ContentType("text/html");
ct. //vraag het default programma op

Verwijderd

Topicstarter
Heb ff gekeken maar inderdaad met ContentType is niets mogelijk, denk dat het toch of via fileInformation moet of via ProcessInformation

Verwijderd

Topicstarter
Ik heb een beter oplossing gevonden. In plaats van het process informatie op te vragen (door een process te starten, naar mijn mening niet echt handig en goed) kan ik wel de informatie opvragen van een bestand. Door eerste de default browser op te halen kan ik de Description en ProductVersion ophalen.

C#:
1
2
FileVersionInfo _Info = FileVersionInfo.GetVersionInfo(Functions.getDefaultBrowser());
this.lblBrowser.Text += " " + _Info.FileDescription + " " + _Info.ProductVersion.ToString();
Pagina: 1