Hallo Werner, ...
alles was ich zu diesem Thema finden konnte deutet auf 2 Registry Einträge hin in der der Standard-Browser hinterlegt ist.
Hier mal ein kleines Beispiel dazu diese Info auszulesen (Dank an Thomas für die Reg-Lese Routine):
Was mich nur ein wenig stutzig macht ist, dass ich selber eigentlich Opera als Standard-Browser benutze, aber trotzdem der IE ausgegeben wird.
Aber wie gesagt - bei der Recherche dazu bin ich eigentlich ausschließlich auf diese Methode gestoßen um den Standard-Browser auszulesen.
[Nachtrag:]
OK, hab das Problem gefunden, warum er bei mir den IE statt Opera angezeigt hat.
Und zwar hat sich seit Vista die Art geändert, wie der Standard-Browser eingestellt wird.
Nachfolgend also mal der neue Code mit dem Du den Sandard-Browser abfagen kannst (sollte nun unter allen Windows-Versionen funktionieren):
Code: Alles auswählen
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s)
hKey.l=0
keyvalue.s=Space(255)
datasize.l=255
If RegOpenKeyEx_(OpenKey,SubKey,0,#KEY_READ,@hKey)
keyvalue="Error Opening Key"
Else
If RegQueryValueEx_(hKey,ValueName,0,0,@keyvalue,@datasize)
keyvalue="Error Reading key"
Else
keyvalue=Left(keyvalue,datasize-1)
EndIf
RegCloseKey_(hKey)
EndIf
ProcedureReturn keyvalue
EndProcedure
Procedure.s GetDefaultBrowser()
Protected HTMLClass.s, HTMLCommand.s
If OSVersion() = #PB_OS_Windows_Vista Or OSVersion() = #PB_OS_Windows_7 Or OSVersion()=#PB_OS_Windows_Future
HTMLClass = ReadRegKey(#HKEY_CURRENT_USER, "Software\Microsoft\Windows\Shell\Associations\UrlAssociations\http\UserChoice","ProgID")
HTMLCommand = ReadRegKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\Classes\"+HTMLClass+"\shell\open\command", "")
Else
HTMLClass = ReadRegKey(#HKEY_CLASSES_ROOT, ".html", "")
HTMLCommand = ReadRegKey(#HKEY_CLASSES_ROOT, HTMLClass+"\shell\open\command", "")
EndIf
ProcedureReturn GetPathPart(HTMLCommand) + GetFilePart(HTMLCommand)
EndProcedure
Debug GetDefaultBrowser()
Grüße, PL.