#DEFINE INTERNET_CONNECTION_MODEM 1 #DEFINE INTERNET_CONNECTION_LAN 2 #DEFINE INTERNET_CONNECTION_PROXY 4 #DEFINE INTERNET_CONNECTION_MODEM_BUSY 8 #DEFINE INTERNET_RAS_INSTALLED 16 #DEFINE INTERNET_CONNECTION_OFFLINE 32 #DEFINE INTERNET_CONNECTION_CONFIGURED 64 DECLARE SHORT InternetGetConnectedState IN wininet.dll; INTEGER @lpdwFlags, INTEGER dwReserved DECLARE SHORT InternetGetConnectedStateEx IN wininet.dll; INTEGER @lpdwFlags, STRING @lpszConnectionName,; INTEGER dwNameLen, INTEGER dwReserved DO displayState DO displayStateEx RETURN PROCEDURE displayState ? "*** InternetGetConnectedState:" lpdwFlags = 0 IF InternetGetConnectedState (@lpdwFlags, 0) = 1 ? " Flags returned: " +; LTRIM(STR(lpdwFlags)) ? " Modem connection: " +; _ok(lpdwFlags, INTERNET_CONNECTION_MODEM) ? " LAN connection: " +; _ok(lpdwFlags, INTERNET_CONNECTION_LAN) ? " Proxy connection: " +; _ok(lpdwFlags, INTERNET_CONNECTION_PROXY) ? " The modem is busy: " +; _ok(lpdwFlags, INTERNET_CONNECTION_MODEM_BUSY) ? " The RAS is installed: " +; _ok(lpdwFlags, INTERNET_RAS_INSTALLED) ? " Offline connection: " +; _ok(lpdwFlags, INTERNET_CONNECTION_OFFLINE) ? " Is configured: " +; _ok(lpdwFlags, INTERNET_CONNECTION_CONFIGURED) ELSE ? "InternetGetConnectedState error" ENDIF RETURN PROCEDURE displayStateEx * the same as the regular one except the connection name is returned ? ? "*** InternetGetConnectedStateEx:" lpdwFlags = 0 lcConnection = REPLI (Chr(0), 250) IF InternetGetConnectedStateEx (@lpdwFlags,; @lcConnection, Len(lcConnection), 0) = 1 ? " Flags returned: " + LTRIM(STR(lpdwFlags)) ? " Connection name: " +; SUBSTR (lcConnection, 1, AT(Chr(0), lcConnection)-1) ELSE ? "InternetGetConnectedStateEx error" ENDIF RETURN FUNCTION _ok (lnBase, lnValue) RETURN Iif(BitAnd(lnBase, lnValue)=lnValue, "Yes","No")>Alexandre,