Wie findet man den bevorzugten Webbrowser?

Anfängerfragen zum Programmieren mit PureBasic.
bin_neu_hier
Beiträge: 105
Registriert: 06.03.2019 21:52

Wie findet man den bevorzugten Webbrowser?

Beitrag von bin_neu_hier »

Hallo!

Wie kann man herausfinden, welchen Webbrowser ein User als den "Haupt"-Browser hinterlegt hat und wie würde ich den dann per runprogramm mit einer bestimmten URL als Vorgabe starten?
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wie findet man den bevorzugten Webbrowser?

Beitrag von Nino »

bin_neu_hier hat geschrieben:Wie kann man herausfinden, welchen Webbrowser ein User als den "Haupt"-Browser hinterlegt hat
Das hängt wohl vom verwendeten Betriebssystem ab.
bin_neu_hier hat geschrieben:und wie würde ich den dann per runprogramm mit einer bestimmten URL als Vorgabe starten?
Es reicht, wenn man einfach die URL aufruft. Diese wird dann automatisch in dem Standard-Browser geöffnet:

Code: Alles auswählen

RunProgram("https://www.google.de/")
Benutzeravatar
Shardik
Beiträge: 738
Registriert: 25.01.2005 12:19

Re: Wie findet man den bevorzugten Webbrowser?

Beitrag von Shardik »

Nino hat geschrieben:Es reicht, wenn man einfach die URL aufruft. Diese wird dann automatisch in dem Standard-Browser geöffnet:

Code: Alles auswählen

RunProgram("https://www.google.de)"
Das funktioniert so aber nur unter Windows! Damit es auch unter MacOS und Linux funktioniert, müsste es so angepasst werden:

Code: Alles auswählen

Procedure OpenWebsiteInDefaultBrowser(Website.S)
  CompilerSelect #PB_Compiler_OS
    CompilerCase #PB_OS_Linux
      RunProgram("xdg-open", Website, "")
    CompilerCase #PB_OS_MacOS
      RunProgram("Open", Website, "")
    CompilerCase #PB_OS_Windows
      RunProgram(Website)
  CompilerEndSelect
EndProcedure

OpenWebsiteInDefaultBrowser("https://www.google.de")
bin_neu_hier
Beiträge: 105
Registriert: 06.03.2019 21:52

Re: Wie findet man den bevorzugten Webbrowser?

Beitrag von bin_neu_hier »

Super, vielen Dank Euch beiden!

Die Windowslösung per Runprogram tut's für mich. Bei meinen Versuchen mit Runprogram habe ich mich bei den Parametern vertan, dass der Aufruf so einfach sein kann, wäre mir gar nicht in den Sinn gekommen. Nochmals besten Dank!
Bin mit 21 erstmals mit Computern in Kontakt gekommen und konnte mich daher in meiner Jugend ganz auf den Alkohol konzentrieren. Bin nun seit fast 40 Jahren programmiertechnisch konstant auf Anfänger-Level, konnte jedoch beim Thema Alkohol eine gewisse Virtuosität erreichen.
Irgendwas muss man ja gut können.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Wie findet man den bevorzugten Webbrowser?

Beitrag von Nino »

Shardik hat geschrieben:Das funktioniert so aber nur unter Windows!
Ja, natürlich. Daran hatte ich in dem Moment als ich das schrieb nicht gedacht. Danke!
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Wie findet man den bevorzugten Webbrowser?

Beitrag von Mijikai »

Optional über die Registry (nur Windows) :)

Code:

Code: Alles auswählen

Procedure.s GetDefaultBrowser()
  Protected key.i
  Protected size.i
  Protected browser.s
  If RegOpenKeyEx_(#HKEY_CURRENT_USER,"Software\Clients\StartMenuInternet",#Null,#KEY_READ,@key) = #ERROR_SUCCESS
    If RegQueryValueEx_(key,#Null,#Null,#Null,#Null,@size) = #ERROR_SUCCESS
      browser = Space(size)
      If RegQueryValueEx_(key,#Null,#Null,#Null,@browser,@size) = #ERROR_SUCCESS
        RegCloseKey_(key)
        ProcedureReturn browser
      EndIf
    EndIf
    RegCloseKey_(key)
  EndIf 
  ProcedureReturn #Null$
EndProcedure

Debug GetDefaultBrowser()
Antworten