LOCAL lcRetVal, loIE, loDoc, lnTimeOut, lnTSec, lnST, lnFH, lcFL, ; lnX, lcIP, lnCtr WAIT WINDOW "Detecting Internet IP address ..." NOWAIT DECLARE Sleep IN kernel32 INTEGER millisec loIE = CREATEOBJECT('internetexplorer.application') loIE.Silent = .T. && no dialogs lcIP = "" lnTimeOut = 20 lnTSec = SECONDS() loIE.navigate2("www.whatismyip.com") lnCtr = 0 *-------------------------------------------- * wait until complete *-------------------------------------------- lnST = SECONDS() Sleep(50) DO WHILE .T. IF NOT VERSION(5) = 700 *** In 7.0, the DoEvents behavior changed to stop and wait for event. *** In 8.0, the behavior was changed back to 6.0 behavior. DOEVENTS ENDIF DO CASE CASE loIE.ReadyState = 4 AND NOT loIE.Busy EXIT CASE loIE.ReadyState = 3 AND SECONDS() - lnST > 5 EXIT CASE SECONDS() - lnST > lnTimeOut EXIT ENDCASE lnCtr = lnCtr + 1 WAIT WINDOW "Detecting Internet IP address (" + ALLTRIM(STR(lnCtr)) + ") ..." NOWAIT Sleep(50) ENDDO **** **** This IF condition is a major cause of the problem, I have tried VARTYPE() also as well as the below conditions independently, no joy **** IF TYPE("loIE.DOCUMENT") = "O" AND TYPE("loIE.DOCUMENT.NAME") = "C" *** 21/02/2007 put in a TRY-CATCH for when object is created *** but innertext is invalid TRY loDoc = loIE.DOCUMENT *** now you have your doc. object in loDoc MyString = loDoc.Body.InnerText &&& now you have a string with the contents MyHTML = loDoc.Body.InnerHTML &&& same, but in HTML STRTOFILE(MyString, "InnerText.txt") STRTOFILE(MyHTML , "InnerHTML.htm") lnFH = FOPEN("InnerText.txt") DO WHILE NOT FEOF(lnFH) lcFL = UPPER(FGETS(lnFH)) DO CASE CASE lcFL = UPPER("Your IP is ") lcIP = ALLTRIM(STRTRAN(lcFL, UPPER("Your IP is "), "")) EXIT CASE lcFL = UPPER("Your IP - ") lcIP = ALLTRIM(STRTRAN(lcFL, UPPER("Your IP - "), "")) EXIT CASE lcFL = UPPER("Bookmark Your IP - ") lcIP = ALLTRIM(STRTRAN(lcFL, UPPER("Bookmark Your IP - "), "")) EXIT CASE lcFL = UPPER("Bookmark Your IP Is ") lcIP = ALLTRIM(STRTRAN(lcFL, UPPER("Bookmark Your IP Is "), "")) EXIT ENDCASE ENDDO = FCLOSE(lnFH) DELETE FILE InnerText.txt DELETE FILE InnerHTML.htm CATCH lcIP = "" ENDTRY ENDIF lcRetVal = IIF(EMPTY(lcIP), "Not detected", lcIP) WAIT WINDOW "Internet IP address: " + lcRetVal + " ..." NOWAIT CLEAR DLLS Sleep RETURN lcRetVal