I do't know when anyone will need to check for the Default Web Browser
But As UserOfPure pointed to in his post
This piece of code checks for the Real Default URL Browser
Tested on XP,Vista,Windows 7 x86 x64 For IE & FireFox Only
Code: Select all
lRetVal.i
sRemMachName.s
lTopLevelKey.i
lHKeyhandle.i
sKeyName.s
lhkey.i
sValueName.s
vValue.s
msg.s
;
#ERROR_NONE = 0
#KEY_WOW64_64KEY=$100
#KEY_WOW64_32KEY=$200
Procedure.l QueryValueEx(lhkey.l, szValueName.s)
Define.l cch, lrc, lType, lValue
Define.s sValue
Shared vValue
cch = 255
sValue = Space(255)
lrc = RegQueryValueEx_(lhkey, szValueName, 0, @lType, 0, @cch)
Select lType
Case #REG_SZ
lrc = RegQueryValueEx_(lhkey, szValueName, 0, @lType, @sValue, @cch)
If lrc = #ERROR_NONE
vValue = Left(sValue, cch-1)
Else
vValue = "Empty"
EndIf
Case #REG_DWORD
lrc = RegQueryValueEx_(lhkey, szValueName, 0, @lType, @lValue, @cch)
If lrc = #ERROR_NONE
vValue = Str(lValue)
EndIf
Default
lrc = -1
EndSelect
ProcedureReturn lrc
EndProcedure
sRemMachName = ""
If OSVersion() >= 60 And OSVersion() < 70
lTopLevelKey = #HKEY_CLASSES_ROOT
sKeyName = "Http\Shell\Open\Command"
sValueName = ""
ElseIf OSVersion() >= 70 And OSVersion() < 100
lTopLevelKey = #HKEY_CURRENT_USER
sKeyName = "Software\Clients\StartMenuInternet"
sValueName = ""
EndIf
lRetVal = RegConnectRegistry_(sRemMachName, lTopLevelKey, @lHKeyhandle)
lRetVal = RegOpenKeyEx_(lHKeyhandle, sKeyName, 0,#KEY_READ|#KEY_WOW64_64KEY, @lhkey)
lRetVal = QueryValueEx(lhkey, sValueName)
RegCloseKey_(lhkey)
If lRetVal = 0
If FindString(vValue,"FIREFOX.EXE",1) Or FindString(vValue,"firefox.exe",1)
MessageRequester("Default Browser","FireFox",#MB_ICONINFORMATION)
ElseIf FindString(vValue,"IEXPLORE.EXE",1) Or FindString(vValue,"iexplore.exe",1)
MessageRequester("Default Browser","MS Internet Explorer",#MB_ICONINFORMATION)
Else
MessageRequester("Default Browser","Unknown",#MB_ICONINFORMATION)
EndIf
Else
msg = "An Error occured, Return value = " + Str(lRetVal)
MessageRequester("Error",msg, #MB_ICONERROR)
EndIf