Hi!
Try next code.
Regards,
Sergey
DECLARE INTEGER ShellExecute IN Shell32.DLL;
INTEGER nWinHandle,;
STRING cOperation,;
STRING cFileName,;
STRING cParameters,;
STRING cDirectory,;
INTEGER nShowWindow
DECLARE INTEGER RegOpenKey IN Win32API;
INTEGER nHKey,;
STRING sSubKey,;
INTEGER @nHandle
DECLARE INTEGER RegCloseKey IN Win32API;
INTEGER nHKey
DECLARE INTEGER RegQueryValueEx IN Win32API;
INTEGER nHKey,;
STRING sValueName,;
INTEGER nReserved,;
INTEGER @nType,;
STRING @sData,;
INTEGER @nData
PUBLIC SysIE_Default
SysIE_Default= "?"
=ShowWeb("http://www.levelextreme.com", .F.)
=ShowWeb("http://www.levelextreme.com", .F.)
=ShowWeb("http://www.levelextreme.com", .F.)
RETURN
FUNCTION GetRegistryValue(sKey, sSubKey, sEntry)
LOCAL rc, sKeyU, nKey, nHandle, nSize, sData, nType
#DEFINE HKEY_CLASSES_ROOT 0x80000000
#DEFINE HKEY_CURRENT_USER 0x80000001
#DEFINE HKEY_LOCAL_MACHINE 0x80000002
#DEFINE HKEY_USERS 0x80000003
sKeyU= UPPER(sKey)
nKey= IIF(sKeyU=="ROOT", HKEY_CLASSES_ROOT,;
IIF(sKeyU=="LOCAL", HKEY_LOCAL_MACHINE,;
IIF(sKeyU=="USER", HKEY_CURRENT_USER,;
IIF(sKeyU=="USERS", HKEY_USERS,;
0 ))))
nHandle= 0
rc= RegOpenKey(nKey, sSubKey, @nHandle)
IF rc#0
RETURN ""
ENDIF
nSize= 512
sData= SPACE(nSize)
nType= 4
rc= RegQueryValueEx(nHandle, sEntry, 0, @nType, @sData, @nSize)
IF rc#0
RETURN ""
ENDIF
=RegCloseKey(nHandle)
RETURN IIF(rc#0, "",;
IIF(nSize<=1, "",;
SUBSTR(sData, 1, nSize-1)))
PROCEDURE GetIE_Default()
IF !SysIE_Default=="?"
RETURN
ENDIF
LOCAL sIE, i1, i2
SysIE_Default= ""
sIE= GetRegistryValue("Root", "http\shell\open\command", "")
i1= AT(["], sIE, 1)
i2= AT(["], sIE, 2)
IF i1#0 .and. i2#0
SysIE_Default= SUBSTR(sIE, i1+1, i2-i1-1)
ENDIF
RETURN
PROCEDURE ShowWeb(sURL, FlgOld)
IF EMPTY(sURL)
=WMsg("!", "There is no URL to show.")
RETURN
ENDIF
LOCAL rc
rc= FlgOld
IF !rc
=GetIE_Default()
rc= EMPTY(SysIE_Default)
ENDIF
IF rc
ShellExecute(0, "open", sURL, "", "", 1)
ELSE
ShellExecute(0, "open", SysIE_Default, sURL, "", 1)
ENDIF
RETURN