Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Szukam]Osoby Która Zrobi Tego Packera


Rekomendowane odpowiedzi

Opublikowano

Witam szukam osoby która mogła by mi pomóc w tym auto patcherze za nagrodę 10x + itp http://www.mpcforum.pl/topic/172897-tut-polski-patcher-na-twoj-serwer/

Piszę poprawnie po polsku

Człowiek nie wie sam, co dla niego dobre,

Pozorny raj, na przykład życie modne,

Pozorny świat, w którym czujesz się dobrze,

Im szybciej runie Farsa ta tym później będzie pogrzeb,

 

witchersigforpiotrekxxd.png

Sygnaturka by RedWolf

Opublikowano

hehe pobierz AutoIT i edytuj

 

Global Const $FC_NOOVERWRITE = 0

Global Const $FC_OVERWRITE = 1

Global Const $FT_MODIFIED = 0

Global Const $FT_CREATED = 1

Global Const $FT_ACCESSED = 2

Global Const $FO_READ = 0

Global Const $FO_APPEND = 1

Global Const $FO_OVERWRITE = 2

Global Const $FO_BINARY = 16

Global Const $FO_UNICODE = 32

Global Const $FO_UTF16_LE = 32

Global Const $FO_UTF16_BE = 64

Global Const $FO_UTF8 = 128

Global Const $FO_UTF8_NOBOM = 256

Global Const $EOF = -1

Global Const $FD_FILEMUSTEXIST = 1

Global Const $FD_PATHMUSTEXIST = 2

Global Const $FD_MULTISELECT = 4

Global Const $FD_PROMPTCREATENEW = 8

Global Const $FD_PROMPTOVERWRITE = 16

Global Const $CREATE_NEW = 1

Global Const $CREATE_ALWAYS = 2

Global Const $OPEN_EXISTING = 3

Global Const $OPEN_ALWAYS = 4

Global Const $TRUNCATE_EXISTING = 5

Global Const $INVALID_SET_FILE_POINTER = -1

Global Const $FILE_BEGIN = 0

Global Const $FILE_CURRENT = 1

Global Const $FILE_END = 2

Global Const $FILE_ATTRIBUTE_READONLY = 1

Global Const $FILE_ATTRIBUTE_HIDDEN = 2

Global Const $FILE_ATTRIBUTE_SYSTEM = 4

Global Const $FILE_ATTRIBUTE_DIRECTORY = 16

Global Const $FILE_ATTRIBUTE_ARCHIVE = 32

Global Const $FILE_ATTRIBUTE_DEVICE = 64

Global Const $FILE_ATTRIBUTE_NORMAL = 128

Global Const $FILE_ATTRIBUTE_TEMPORARY = 256

Global Const $FILE_ATTRIBUTE_SPARSE_FILE = 512

Global Const $FILE_ATTRIBUTE_REPARSE_POINT = 1024

Global Const $FILE_ATTRIBUTE_COMPRESSED = 2048

Global Const $FILE_ATTRIBUTE_OFFLINE = 4096

Global Const $FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192

Global Const $FILE_ATTRIBUTE_ENCRYPTED = 16384

Global Const $FILE_SHARE_READ = 1

Global Const $FILE_SHARE_WRITE = 2

Global Const $FILE_SHARE_DELETE = 4

Global Const $GENERIC_ALL = 268435456

Global Const $GENERIC_EXECUTE = 536870912

Global Const $GENERIC_WRITE = 1073741824

Global Const $GENERIC_READ = -2147483648

 

Func _FILECOUNTLINES($SFILEPATH)

Local $HFILE = FileOpen($SFILEPATH, $FO_READ)

If $HFILE = -1 Then Return SetError(1, 0, 0)

Local $SFILECONTENT = StringStripWS(FileRead($HFILE), 2)

FileClose($HFILE)

Local $ATMP

If StringInStr($SFILECONTENT, @LF) Then

$ATMP = StringSplit(StringStripCR($SFILECONTENT), @LF)

ElseIf StringInStr($SFILECONTENT, @CR) Then

$ATMP = StringSplit($SFILECONTENT, @CR)

Else

If StringLen($SFILECONTENT) Then

Return 1

Else

Return SetError(2, 0, 0)

EndIf

EndIf

Return $ATMP[0]

EndFunc

 

 

Func _FILECREATE($SFILEPATH)

Local $HOPENFILE = FileOpen($SFILEPATH, $FO_OVERWRITE)

If $HOPENFILE = -1 Then Return SetError(1, 0, 0)

Local $HWRITEFILE = FileWrite($HOPENFILE, "")

FileClose($HOPENFILE)

If $HWRITEFILE = -1 Then Return SetError(2, 0, 0)

Return 1

EndFunc

 

 

Func _FILELISTTOARRAY($SPATH, $SFILTER = "*", $IFLAG = 0)

Local $HSEARCH, $SFILE, $SFILELIST, $SDELIM = "|"

$SPATH = StringRegExpReplace($SPATH, "[\\/]+\z", "") & "\"

If Not FileExists($SPATH) Then Return SetError(1, 1, "")

If StringRegExp($SFILTER, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "")

If Not ($IFLAG = 0 Or $IFLAG = 1 Or $IFLAG = 2) Then Return SetError(3, 3, "")

$HSEARCH = FileFindFirstFile($SPATH & $SFILTER)

If @error Then Return SetError(4, 4, "")

While 1

$SFILE = FileFindNextFile($HSEARCH)

If @error Then ExitLoop

If ($IFLAG + @extended = 2) Then ContinueLoop

$SFILELIST &= $SDELIM & $SFILE

WEnd

FileClose($HSEARCH)

If Not $SFILELIST Then Return SetError(4, 4, "")

Return StringSplit(StringTrimLeft($SFILELIST, 1), "|")

EndFunc

 

 

Func _FILEPRINT($S_FILE, $I_SHOW = @SW_HIDE)

Local $A_RET = DllCall("shell32.dll", "int", "ShellExecuteW", "hwnd", 0, "wstr", "print", "wstr", $S_FILE, "wstr", "", "wstr", "", "int", $I_SHOW)

If @error Then Return SetError(@error, @extended, 0)

If $A_RET[0] <= 32 Then Return SetError(10, $A_RET[0], 0)

Return 1

EndFunc

 

 

Func _FILEREADTOARRAY($SFILEPATH, ByRef $AARRAY)

Local $HFILE = FileOpen($SFILEPATH, $FO_READ)

If $HFILE = -1 Then Return SetError(1, 0, 0)

Local $AFILE = FileRead($HFILE, FileGetSize($SFILEPATH))

If StringRight($AFILE, 1) = @LF Then $AFILE = StringTrimRight($AFILE, 1)

If StringRight($AFILE, 1) = @CR Then $AFILE = StringTrimRight($AFILE, 1)

FileClose($HFILE)

If StringInStr($AFILE, @LF) Then

$AARRAY = StringSplit(StringStripCR($AFILE), @LF)

ElseIf StringInStr($AFILE, @CR) Then

$AARRAY = StringSplit($AFILE, @CR)

Else

If StringLen($AFILE) Then

Dim $AARRAY[2] = [1, $AFILE]

Else

Return SetError(2, 0, 0)

EndIf

EndIf

Return 1

EndFunc

 

 

Func _FILEWRITEFROMARRAY($FILE, $A_ARRAY, $I_BASE = 0, $I_UBOUND = 0)

If Not IsArray($A_ARRAY) Then Return SetError(2, 0, 0)

Local $LAST = UBound($A_ARRAY) - 1

If $I_UBOUND < 1 Or $I_UBOUND > $LAST Then $I_UBOUND = $LAST

If $I_BASE < 0 Or $I_BASE > $LAST Then $I_BASE = 0

Local $HFILE

If IsString($FILE) Then

$HFILE = FileOpen($FILE, $FO_OVERWRITE)

Else

$HFILE = $FILE

EndIf

If $HFILE = -1 Then Return SetError(1, 0, 0)

Local $ERRORSAV = 0

For $X = $I_BASE To $I_UBOUND

If FileWrite($HFILE, $A_ARRAY[$X] & @CRLF) = 0 Then

$ERRORSAV = 3

ExitLoop

EndIf

Next

If IsString($FILE) Then FileClose($HFILE)

If $ERRORSAV Then Return SetError($ERRORSAV, 0, 0)

Return 1

EndFunc

 

 

Func _FILEWRITELOG($SLOGPATH, $SLOGMSG, $IFLAG = -1)

Local $IOPENMODE = $FO_APPEND

Local $SDATENOW = @YEAR & "-" & @MON & "-" & @MDAY

Local $STIMENOW = @HOUR & ":" & @MIN & ":" & @SEC

Local $SMSG = $SDATENOW & " " & $STIMENOW & " : " & $SLOGMSG

If $IFLAG <> -1 Then

$SMSG &= @CRLF & FileRead($SLOGPATH)

$IOPENMODE = $FO_OVERWRITE

EndIf

Local $HOPENFILE = FileOpen($SLOGPATH, $IOPENMODE)

If $HOPENFILE = -1 Then Return SetError(1, 0, 0)

Local $IWRITEFILE = FileWriteLine($HOPENFILE, $SMSG)

Local $IRET = FileClose($HOPENFILE)

If $IWRITEFILE = -1 Then Return SetError(2, $IRET, 0)

Return $IRET

EndFunc

 

 

Func _FILEWRITETOLINE($SFILE, $ILINE, $STEXT, $FOVERWRITE = 0)

If $ILINE <= 0 Then Return SetError(4, 0, 0)

If Not IsString($STEXT) Then

$STEXT = String($STEXT)

If $STEXT = "" Then Return SetError(6, 0, 0)

EndIf

If $FOVERWRITE <> 0 And $FOVERWRITE <> 1 Then Return SetError(5, 0, 0)

If Not FileExists($SFILE) Then Return SetError(2, 0, 0)

Local $SREAD_FILE = FileRead($SFILE)

Local $ASPLIT_FILE = StringSplit(StringStripCR($SREAD_FILE), @LF)

If UBound($ASPLIT_FILE) < $ILINE Then Return SetError(1, 0, 0)

Local $HFILE = FileOpen($SFILE, $FO_OVERWRITE)

If $HFILE = -1 Then Return SetError(3, 0, 0)

$SREAD_FILE = ""

For $I = 1 To $ASPLIT_FILE[0]

If $I = $ILINE Then

If $FOVERWRITE = 1 Then

If $STEXT <> "" Then $SREAD_FILE &= $STEXT & @CRLF

Else

$SREAD_FILE &= $STEXT & @CRLF & $ASPLIT_FILE[$I] & @CRLF

EndIf

ElseIf $I < $ASPLIT_FILE[0] Then

$SREAD_FILE &= $ASPLIT_FILE[$I] & @CRLF

ElseIf $I = $ASPLIT_FILE[0] Then

$SREAD_FILE &= $ASPLIT_FILE[$I]

EndIf

Next

FileWrite($HFILE, $SREAD_FILE)

FileClose($HFILE)

Return 1

EndFunc

 

 

Func _PATHFULL($SRELATIVEPATH, $SBASEPATH = @WorkingDir)

If Not $SRELATIVEPATH Or $SRELATIVEPATH = "." Then Return $SBASEPATH

Local $SFULLPATH = StringReplace($SRELATIVEPATH, "/", "\")

Local Const $SFULLPATHCONST = $SFULLPATH

Local $SPATH

Local $BROOTONLY = StringLeft($SFULLPATH, 1) = "\" And StringMid($SFULLPATH, 2, 1) <> "\"

For $I = 1 To 2

$SPATH = StringLeft($SFULLPATH, 2)

If $SPATH = "\\" Then

$SFULLPATH = StringTrimLeft($SFULLPATH, 2)

Local $NSERVERLEN = StringInStr($SFULLPATH, "\") - 1

$SPATH = "\\" & StringLeft($SFULLPATH, $NSERVERLEN)

$SFULLPATH = StringTrimLeft($SFULLPATH, $NSERVERLEN)

ExitLoop

ElseIf StringRight($SPATH, 1) = ":" Then

$SFULLPATH = StringTrimLeft($SFULLPATH, 2)

ExitLoop

Else

$SFULLPATH = $SBASEPATH & "\" & $SFULLPATH

EndIf

Next

If $I = 3 Then Return ""

If StringLeft($SFULLPATH, 1) <> "\" Then

If StringLeft($SFULLPATHCONST, 2) = StringLeft($SBASEPATH, 2) Then

$SFULLPATH = $SBASEPATH & "\" & $SFULLPATH

Else

$SFULLPATH = "\" & $SFULLPATH

EndIf

EndIf

Local $ATEMP = StringSplit($SFULLPATH, "\")

Local $APATHPARTS[$ATEMP[0]], $J = 0

For $I = 2 To $ATEMP[0]

If $ATEMP[$I] = ".." Then

If $J Then $J -= 1

ElseIf Not ($ATEMP[$I] = "" And $I <> $ATEMP[0]) And $ATEMP[$I] <> "." Then

$APATHPARTS[$J] = $ATEMP[$I]

$J += 1

EndIf

Next

$SFULLPATH = $SPATH

If Not $BROOTONLY Then

For $I = 0 To $J - 1

$SFULLPATH &= "\" & $APATHPARTS[$I]

Next

Else

$SFULLPATH &= $SFULLPATHCONST

If StringInStr($SFULLPATH, "..") Then $SFULLPATH = _PATHFULL($SFULLPATH)

EndIf

While StringInStr($SFULLPATH, ".\")

$SFULLPATH = StringReplace($SFULLPATH, ".\", "\")

WEnd

Return $SFULLPATH

EndFunc

 

 

Func _PATHGETRELATIVE($SFROM, $STO)

If StringRight($SFROM, 1) <> "\" Then $SFROM &= "\"

If StringRight($STO, 1) <> "\" Then $STO &= "\"

If $SFROM = $STO Then Return SetError(1, 0, StringTrimRight($STO, 1))

Local $ASFROM = StringSplit($SFROM, "\")

Local $ASTO = StringSplit($STO, "\")

If $ASFROM[1] <> $ASTO[1] Then Return SetError(2, 0, StringTrimRight($STO, 1))

Local $I = 2

Local $IDIFF = 1

While 1

If $ASFROM[$I] <> $ASTO[$I] Then

$IDIFF = $I

ExitLoop

EndIf

$I += 1

WEnd

$I = 1

Local $SRELPATH = ""

For $J = 1 To $ASTO[0]

If $I >= $IDIFF Then

$SRELPATH &= "\" & $ASTO[$I]

EndIf

$I += 1

Next

$SRELPATH = StringTrimLeft($SRELPATH, 1)

$I = 1

For $J = 1 To $ASFROM[0]

If $I > $IDIFF Then

$SRELPATH = "..\" & $SRELPATH

EndIf

$I += 1

Next

If StringRight($SRELPATH, 1) == "\" Then $SRELPATH = StringTrimRight($SRELPATH, 1)

Return $SRELPATH

EndFunc

 

 

Func _PATHMAKE($SZDRIVE, $SZDIR, $SZFNAME, $SZEXT)

If StringLen($SZDRIVE) Then

If Not (StringLeft($SZDRIVE, 2) = "\\") Then $SZDRIVE = StringLeft($SZDRIVE, 1) & ":"

EndIf

If StringLen($SZDIR) Then

If Not (StringRight($SZDIR, 1) = "\") And Not (StringRight($SZDIR, 1) = "/") Then $SZDIR = $SZDIR & "\"

EndIf

If StringLen($SZEXT) Then

If Not (StringLeft($SZEXT, 1) = ".") Then $SZEXT = "." & $SZEXT

EndIf

Return $SZDRIVE & $SZDIR & $SZFNAME & $SZEXT

EndFunc

 

 

Func _PATHSPLIT($SZPATH, ByRef $SZDRIVE, ByRef $SZDIR, ByRef $SZFNAME, ByRef $SZEXT)

Local $DRIVE = ""

Local $DIR = ""

Local $FNAME = ""

Local $EXT = ""

Local $POS

Local $ARRAY[5]

$ARRAY[0] = $SZPATH

If StringMid($SZPATH, 2, 1) = ":" Then

$DRIVE = StringLeft($SZPATH, 2)

$SZPATH = StringTrimLeft($SZPATH, 2)

ElseIf StringLeft($SZPATH, 2) = "\\" Then

$SZPATH = StringTrimLeft($SZPATH, 2)

$POS = StringInStr($SZPATH, "\")

If $POS = 0 Then $POS = StringInStr($SZPATH, "/")

If $POS = 0 Then

$DRIVE = "\\" & $SZPATH

$SZPATH = ""

Else

$DRIVE = "\\" & StringLeft($SZPATH, $POS - 1)

$SZPATH = StringTrimLeft($SZPATH, $POS - 1)

EndIf

EndIf

Local $NPOSFORWARD = StringInStr($SZPATH, "/", 0, -1)

Local $NPOSBACKWARD = StringInStr($SZPATH, "\", 0, -1)

If $NPOSFORWARD >= $NPOSBACKWARD Then

$POS = $NPOSFORWARD

Else

$POS = $NPOSBACKWARD

EndIf

$DIR = StringLeft($SZPATH, $POS)

$FNAME = StringRight($SZPATH, StringLen($SZPATH) - $POS)

If StringLen($DIR) = 0 Then $FNAME = $SZPATH

$POS = StringInStr($FNAME, ".", 0, -1)

If $POS Then

$EXT = StringRight($FNAME, StringLen($FNAME) - ($POS - 1))

$FNAME = StringLeft($FNAME, $POS - 1)

EndIf

$SZDRIVE = $DRIVE

$SZDIR = $DIR

$SZFNAME = $FNAME

$SZEXT = $EXT

$ARRAY[1] = $DRIVE

$ARRAY[2] = $DIR

$ARRAY[3] = $FNAME

$ARRAY[4] = $EXT

Return $ARRAY

EndFunc

 

 

Func _REPLACESTRINGINFILE($SZFILENAME, $SZSEARCHSTRING, $SZREPLACESTRING, $FCASENESS = 0, $FOCCURANCE = 1)

Local $IRETVAL = 0

Local $NCOUNT, $SENDSWITH

If StringInStr(FileGetAttrib($SZFILENAME), "R") Then Return SetError(6, 0, -1)

Local $HFILE = FileOpen($SZFILENAME, $FO_READ)

If $HFILE = -1 Then Return SetError(1, 0, -1)

Local $S_TOTFILE = FileRead($HFILE, FileGetSize($SZFILENAME))

If StringRight($S_TOTFILE, 2) = @CRLF Then

$SENDSWITH = @CRLF

ElseIf StringRight($S_TOTFILE, 1) = @CR Then

$SENDSWITH = @CR

ElseIf StringRight($S_TOTFILE, 1) = @LF Then

$SENDSWITH = @LF

Else

$SENDSWITH = ""

EndIf

Local $AFILELINES = StringSplit(StringStripCR($S_TOTFILE), @LF)

FileClose($HFILE)

Local $HWRITEHANDLE = FileOpen($SZFILENAME, $FO_OVERWRITE)

If $HWRITEHANDLE = -1 Then Return SetError(2, 0, -1)

For $NCOUNT = 1 To $AFILELINES[0]

If StringInStr($AFILELINES[$NCOUNT], $SZSEARCHSTRING, $FCASENESS) Then

$AFILELINES[$NCOUNT] = StringReplace($AFILELINES[$NCOUNT], $SZSEARCHSTRING, $SZREPLACESTRING, 1 - $FOCCURANCE, $FCASENESS)

$IRETVAL = $IRETVAL + 1

If $FOCCURANCE = 0 Then

$IRETVAL = 1

ExitLoop

EndIf

EndIf

Next

For $NCOUNT = 1 To $AFILELINES[0] - 1

If FileWriteLine($HWRITEHANDLE, $AFILELINES[$NCOUNT]) = 0 Then

FileClose($HWRITEHANDLE)

Return SetError(3, 0, -1)

EndIf

Next

If $AFILELINES[$NCOUNT] <> "" Then FileWrite($HWRITEHANDLE, $AFILELINES[$NCOUNT] & $SENDSWITH)

FileClose($HWRITEHANDLE)

Return $IRETVAL

EndFunc

 

 

Func _TEMPFILE($S_DIRECTORYNAME = @TempDir, $S_FILEPREFIX = "~", $S_FILEEXTENSION = ".tmp", $I_RANDOMLENGTH = 7)

If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @TempDir

If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @ScriptDir

If StringRight($S_DIRECTORYNAME, 1) <> "\" Then $S_DIRECTORYNAME = $S_DIRECTORYNAME & "\"

Local $S_TEMPNAME

Do

$S_TEMPNAME = ""

While StringLen($S_TEMPNAME) < $I_RANDOMLENGTH

$S_TEMPNAME = $S_TEMPNAME & Chr(Random(97, 122, 1))

WEnd

$S_TEMPNAME = $S_DIRECTORYNAME & $S_FILEPREFIX & $S_TEMPNAME & $S_FILEEXTENSION

Until Not FileExists($S_TEMPNAME)

Return $S_TEMPNAME

EndFunc

 

Global Const $GUI_EVENT_CLOSE = -3

Global Const $GUI_EVENT_MINIMIZE = -4

Global Const $GUI_EVENT_RESTORE = -5

Global Const $GUI_EVENT_MAXIMIZE = -6

Global Const $GUI_EVENT_PRIMARYDOWN = -7

Global Const $GUI_EVENT_PRIMARYUP = -8

Global Const $GUI_EVENT_SECONDARYDOWN = -9

Global Const $GUI_EVENT_SECONDARYUP = -10

Global Const $GUI_EVENT_MOUSEMOVE = -11

Global Const $GUI_EVENT_RESIZED = -12

Global Const $GUI_EVENT_DROPPED = -13

Global Const $GUI_RUNDEFMSG = "GUI_RUNDEFMSG"

Global Const $GUI_AVISTOP = 0

Global Const $GUI_AVISTART = 1

Global Const $GUI_AVICLOSE = 2

Global Const $GUI_CHECKED = 1

Global Const $GUI_INDETERMINATE = 2

Global Const $GUI_UNCHECKED = 4

Global Const $GUI_DROPACCEPTED = 8

Global Const $GUI_NODROPACCEPTED = 4096

Global Const $GUI_ACCEPTFILES = $GUI_DROPACCEPTED

Global Const $GUI_SHOW = 16

Global Const $GUI_HIDE = 32

Global Const $GUI_ENABLE = 64

Global Const $GUI_DISABLE = 128

Global Const $GUI_FOCUS = 256

Global Const $GUI_NOFOCUS = 8192

Global Const $GUI_DEFBUTTON = 512

Global Const $GUI_EXPAND = 1024

Global Const $GUI_ONTOP = 2048

Global Const $GUI_FONTITALIC = 2

Global Const $GUI_FONTUNDER = 4

Global Const $GUI_FONTSTRIKE = 8

Global Const $GUI_DOCKAUTO = 1

Global Const $GUI_DOCKLEFT = 2

Global Const $GUI_DOCKRIGHT = 4

Global Const $GUI_DOCKHCENTER = 8

Global Const $GUI_DOCKTOP = 32

Global Const $GUI_DOCKBOTTOM = 64

Global Const $GUI_DOCKVCENTER = 128

Global Const $GUI_DOCKWIDTH = 256

Global Const $GUI_DOCKHEIGHT = 512

Global Const $GUI_DOCKSIZE = 768

Global Const $GUI_DOCKMENUBAR = 544

Global Const $GUI_DOCKSTATEBAR = 576

Global Const $GUI_DOCKALL = 802

Global Const $GUI_DOCKBORDERS = 102

Global Const $GUI_GR_CLOSE = 1

Global Const $GUI_GR_LINE = 2

Global Const $GUI_GR_BEZIER = 4

Global Const $GUI_GR_MOVE = 6

Global Const $GUI_GR_COLOR = 8

Global Const $GUI_GR_RECT = 10

Global Const $GUI_GR_ELLIPSE = 12

Global Const $GUI_GR_PIE = 14

Global Const $GUI_GR_DOT = 16

Global Const $GUI_GR_PIXEL = 18

Global Const $GUI_GR_HINT = 20

Global Const $GUI_GR_REFRESH = 22

Global Const $GUI_GR_PENSIZE = 24

Global Const $GUI_GR_NOBKCOLOR = -2

Global Const $GUI_BKCOLOR_DEFAULT = -1

Global Const $GUI_BKCOLOR_TRANSPARENT = -2

Global Const $GUI_BKCOLOR_LV_ALTERNATE = -33554432

Global Const $GUI_WS_EX_PARENTDRAG = 1048576

 

Func _WINAPI_GETLASTERROR($CURERR = @error, $CUREXT = @extended)

Local $ARESULT = DllCall("kernel32.dll", "dword", "GetLastError")

Return SetError($CURERR, $CUREXT, $ARESULT[0])

EndFunc

 

 

Func _WINAPI_SETLASTERROR($IERRCODE, $CURERR = @error, $CUREXT = @extended)

DllCall("kernel32.dll", "none", "SetLastError", "dword", $IERRCODE)

Return SetError($CURERR, $CUREXT)

EndFunc

 

#Region Header

#EndRegion Header

#Region Global Variables and Constants

Global Const $IEAU3VERSIONINFO[6] = ["V", 2, 4, 0, "20071231", "V2.4-0"]

Global Const $LSFW_LOCK = 1, $LSFW_UNLOCK = 2

Global $__IELOADWAITTIMEOUT = 300000

Global $__IEAU3DEBUG = False

Global $__IEAU3V1COMPATIBILITY

Global $__IEAU3DEBUG_USEOLDDLLCALL = False

Global $_IEERRORNOTIFY = True

Global $OIEERRORHANDLER, $SIEUSERERRORHANDLER

Global $IECOMERRORNUMBER, $IECOMERRORNUMBERHEX, $IECOMERRORDESCRIPTION, $IECOMERRORSCRIPTLINE, $IECOMERRORWINDESCRIPTION, $IECOMERRORSOURCE, $IECOMERRORHELPFILE, $IECOMERRORHELPCONTEXT, $IECOMERRORLASTDLLERROR, $IECOMERRORCOMOBJ, $IECOMERROROUTPUT

Global Enum $_IESTATUS_SUCCESS = 0, $_IESTATUS_GENERALERROR, $_IESTATUS_COMERROR, $_IESTATUS_INVALIDDATATYPE, $_IESTATUS_INVALIDOBJECTTYPE, $_IESTATUS_INVALIDVALUE, $_IESTATUS_LOADWAITTIMEOUT, $_IESTATUS_NOMATCH, $_IESTATUS_ACCESSISDENIED, $_IESTATUS_CLIENTDISCONNECTED

Global Enum Step * 2 $_IENOTIFYLEVEL_NONE = 0, $_IENOTIFYNOTIFYLEVEL_WARNING = 1, $_IENOTIFYNOTIFYLEVEL_ERROR, $_IENOTIFYNOTIFYLEVEL_COMERROR

Global Enum Step * 2 $_IENOTIFYMETHOD_SILENT = 0, $_IENOTIFYMETHOD_CONSOLE = 1, $_IENOTIFYMETHOD_TOOLTIP, $_IENOTIFYMETHOD_MSGBOX

#EndRegion Global Variables and Constants

#Region Core functions

 

Func _IECREATE($S_URL = "about:blank", $F_TRYATTACH = 0, $F_VISIBLE = 1, $F_WAIT = 1, $F_TAKEFOCUS = 1)

If $__IEAU3V1COMPATIBILITY Then

Switch String($S_URL)

Case "0"

$S_URL = "about:blank"

$F_VISIBLE = 0

__IEERRORNOTIFY("Warning", "_IECreate", "", "Using deprecated behavior - $f_visible is now parameter 3 instead of parameter 1")

Case "1"

$S_URL = "about:blank"

$F_VISIBLE = 1

__IEERRORNOTIFY("Warning", "_IECreate", "", "Using deprecated behavior - $f_visible is now parameter 3 instead of parameter 1")

EndSwitch

EndIf

If Not $F_VISIBLE Then $F_TAKEFOCUS = 0

If $F_TRYATTACH Then

Local $ORESULT = _IEATTACH($S_URL, "url")

If IsObj($ORESULT) Then

If $F_TAKEFOCUS Then WinActivate(HWnd($ORESULT.HWND))

Return SetError($_IESTATUS_SUCCESS, 1, $ORESULT)

EndIf

EndIf

Local $F_MUSTUNLOCK = 0

If Not $F_VISIBLE And __IELOCKSETFOREGROUNDWINDOW($LSFW_LOCK) Then $F_MUSTUNLOCK = 1

Local $O_OBJECT = ObjCreate("InternetExplorer.Application")

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IECreate", "", "Browser Object Creation Failed")

Return SetError($_IESTATUS_GENERALERROR, 0, 0)

EndIf

$O_OBJECT.visible = $F_VISIBLE

If $F_MUSTUNLOCK And Not __IELOCKSETFOREGROUNDWINDOW($LSFW_UNLOCK) Then __IEERRORNOTIFY("Warning", "_IECreate", "", "Foreground Window Unlock Failed!")

_IENAVIGATE($O_OBJECT, $S_URL, $F_WAIT)

Return SetError(@error, 0, $O_OBJECT)

EndFunc

 

 

Func _IECREATEEMBEDDED()

Local $O_OBJECT = ObjCreate("Shell.Explorer.2")

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IECreateEmbedded", "", "WebBrowser Object Creation Failed")

Return SetError($_IESTATUS_GENERALERROR, 0, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)

EndFunc

 

 

Func _IENAVIGATE(ByRef $O_OBJECT, $S_URL, $F_WAIT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IENavigate", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IENavigate", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.navigate ($S_URL)

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

Return SetError(@error, 0, -1)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, -1)

EndFunc

 

 

Func _IEATTACH($S_STRING, $S_MODE = "Title", $I_INSTANCE = 1)

$S_MODE = StringLower($S_MODE)

$I_INSTANCE = Int($I_INSTANCE)

If $I_INSTANCE < 1 Then

__IEERRORNOTIFY("Error", "_IEAttach", "$_IEStatus_InvalidValue", "$i_instance < 1")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndIf

If $S_MODE = "embedded" Or $S_MODE = "dialogbox" Then

Local $IWINTITLEMATCHMODE = Opt("WinTitleMatchMode", 2)

If $S_MODE = "dialogbox" And $I_INSTANCE > 1 Then

If IsHWnd($S_STRING) Then

$I_INSTANCE = 1

__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd and DialogBox. Setting to 1.")

Else

Local $A_WINLIST = WinList($S_STRING, "")

If $I_INSTANCE <= $A_WINLIST[0][0] Then

$S_STRING = $A_WINLIST[$I_INSTANCE][1]

$I_INSTANCE = 1

Else

__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")

Opt("WinTitleMatchMode", $IWINTITLEMATCHMODE)

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndIf

EndIf

EndIf

Local $H_CONTROL = ControlGetHandle($S_STRING, "", "[CLASS:Internet Explorer_Server; INSTANCE:" & $I_INSTANCE & "]")

Local $ORESULT = __IECONTROLGETOBJFROMHWND($H_CONTROL)

Opt("WinTitleMatchMode", $IWINTITLEMATCHMODE)

If IsObj($ORESULT) Then

Return SetError($_IESTATUS_SUCCESS, 0, $ORESULT)

Else

__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndIf

EndIf

Local $O_SHELL = ObjCreate("Shell.Application")

Local $O_SHELLWINDOWS = $O_SHELL.Windows ()

Local $I_TMP = 1

Local $F_NOTIFYSTATUS, $STATUS, $F_ISBROWSER, $S_TMP

For $O_WINDOW In $O_SHELLWINDOWS

$F_ISBROWSER = True

$STATUS = __IEINTERNALERRORHANDLERREGISTER()

If Not $STATUS Then __IEERRORNOTIFY("Warning", "_IEAttach", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")

$F_NOTIFYSTATUS = _IEERRORNOTIFY()

_IEERRORNOTIFY(False)

If $F_ISBROWSER Then

$S_TMP = $O_WINDOW.type

If @error Then $F_ISBROWSER = False

EndIf

If $F_ISBROWSER Then

$S_TMP = $O_WINDOW.document.title

If @error Then $F_ISBROWSER = False

EndIf

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

If $F_ISBROWSER Then

Switch $S_MODE

Case "title"

If StringInStr($O_WINDOW.document.title, $S_STRING) > 0 Then

If $I_INSTANCE = $I_TMP Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

Else

$I_TMP += 1

EndIf

EndIf

Case "instance"

If $I_INSTANCE = $I_TMP Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

Else

$I_TMP += 1

EndIf

Case "windowtitle"

Local $F_FOUND = False

$S_TMP = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\", "Window Title")

If Not @error Then

If StringInStr($O_WINDOW.document.title & " - " & $S_TMP, $S_STRING) Then $F_FOUND = True

Else

If StringInStr($O_WINDOW.document.title & " - Microsoft Internet Explorer", $S_STRING) Then $F_FOUND = True

If StringInStr($O_WINDOW.document.title & " - Windows Internet Explorer", $S_STRING) Then $F_FOUND = True

EndIf

If $F_FOUND Then

If $I_INSTANCE = $I_TMP Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

Else

$I_TMP += 1

EndIf

EndIf

Case "url"

If StringInStr($O_WINDOW.LocationURL, $S_STRING) > 0 Then

If $I_INSTANCE = $I_TMP Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

Else

$I_TMP += 1

EndIf

EndIf

Case "text"

If StringInStr($O_WINDOW.document.body.innerText, $S_STRING) > 0 Then

If $I_INSTANCE = $I_TMP Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

Else

$I_TMP += 1

EndIf

EndIf

Case "html"

If StringInStr($O_WINDOW.document.body.innerHTML, $S_STRING) > 0 Then

If $I_INSTANCE = $I_TMP Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

Else

$I_TMP += 1

EndIf

EndIf

Case "hwnd"

If $I_INSTANCE > 1 Then

$I_INSTANCE = 1

__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd. Setting to 1.")

EndIf

If _IEPROPERTYGET($O_WINDOW, "hwnd") = $S_STRING Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_WINDOW)

EndIf

Case Else

__IEERRORNOTIFY("Error", "_IEAttach", "$_IEStatus_InvalidValue", "Invalid Mode Specified")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

EndSwitch

EndIf

Next

__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndFunc

 

 

Func _IELOADWAIT(ByRef $O_OBJECT, $I_DELAY = 0, $I_TIMEOUT = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_InvalidObjectType", ObjName($O_OBJECT))

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $OTEMP, $F_ABORT = False, $I_ERRORSTATUSCODE = $_IESTATUS_SUCCESS

Local $STATUS = __IEINTERNALERRORHANDLERREGISTER()

If Not $STATUS Then __IEERRORNOTIFY("Warning", "_IELoadWait", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")

Local $F_NOTIFYSTATUS = _IEERRORNOTIFY()

_IEERRORNOTIFY(False)

Sleep($I_DELAY)

Local $IELOADWAITTIMER = TimerInit()

If $I_TIMEOUT = -1 Then $I_TIMEOUT = $__IELOADWAITTIMEOUT

Switch ObjName($O_OBJECT)

Case "IWebBrowser2"

While Not (String($O_OBJECT.readyState) = "complete" Or $O_OBJECT.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

While Not (String($O_OBJECT.document.readyState) = "complete" Or $O_OBJECT.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

Case "DispHTMLWindow2"

While Not (String($O_OBJECT.document.readyState) = "complete" Or $O_OBJECT.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

While Not (String($O_OBJECT.top.document.readyState) = "complete" Or $O_OBJECT.top.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

Case "DispHTMLDocument"

$OTEMP = $O_OBJECT.parentWindow

While Not (String($OTEMP.document.readyState) = "complete" Or $OTEMP.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

While Not (String($OTEMP.top.document.readyState) = "complete" Or $OTEMP.top.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

Case Else

$OTEMP = $O_OBJECT.document.parentWindow

While Not (String($OTEMP.document.readyState) = "complete" Or $OTEMP.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

While Not (String($OTEMP.top.document.readyState) = "complete" Or $O_OBJECT.top.document.readyState = 4 Or $F_ABORT)

If (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

Sleep(100)

WEnd

EndSwitch

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

Switch $I_ERRORSTATUSCODE

Case $_IESTATUS_SUCCESS

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $_IESTATUS_LOADWAITTIMEOUT

__IEERRORNOTIFY("Warning", "_IELoadWait", "$_IEStatus_LoadWaitTimeout")

Return SetError($_IESTATUS_LOADWAITTIMEOUT, 3, 0)

Case $_IESTATUS_ACCESSISDENIED

__IEERRORNOTIFY("Warning", "_IELoadWait", "$_IEStatus_AccessIsDenied", "Cannot verify readyState. Likely casue: cross-site scripting security restriction.")

Return SetError($_IESTATUS_ACCESSISDENIED, 0, 0)

Case $_IESTATUS_CLIENTDISCONNECTED

__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_ClientDisconnected", "Browser has been deleted prior to operation.")

Return SetError($_IESTATUS_CLIENTDISCONNECTED, 0, 0)

Case Else

__IEERRORNOTIFY("Error", "_IELoadWait", "$_IEStatus_GeneralError", "Invalid Error Status - Notify IE.au3 developer")

Return SetError($_IESTATUS_GENERALERROR, 0, 0)

EndSwitch

EndFunc

 

 

Func _IELOADWAITTIMEOUT($I_TIMEOUT = -1)

If $I_TIMEOUT = -1 Then

Return SetError($_IESTATUS_SUCCESS, 0, $__IELOADWAITTIMEOUT)

Else

$__IELOADWAITTIMEOUT = $I_TIMEOUT

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndIf

EndFunc

 

#EndRegion Core functions

#Region Frame Functions

 

Func _IEISFRAMESET(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEIsFrameSet", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If String($O_OBJECT.document.body.tagName) = "FRAMESET" Then

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Else

Return SetError($_IESTATUS_SUCCESS, 0, 0)

EndIf

EndFunc

 

 

Func _IEFRAMEGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFrameGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.parentwindow.frames.length, $O_OBJECT.document.parentwindow.frames)

Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.document.parentwindow.frames.length

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.parentwindow.frames.length, $O_OBJECT.document.parentwindow.frames.item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IEFrameGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

__IEERRORNOTIFY("Warning", "_IEFrameGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndSelect

EndFunc

 

 

Func _IEFRAMEGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFrameGetObjByName", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $OTEMP, $OFRAMES

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEFrameGetObjByName", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.parentWindow

Else

$OTEMP = $O_OBJECT.document.parentWindow

EndIf

If _IEISFRAMESET($OTEMP) Then

$OFRAMES = _IETAGNAMEGETCOLLECTION($OTEMP, "frame")

Else

$OFRAMES = _IETAGNAMEGETCOLLECTION($OTEMP, "iframe")

EndIf

If $OFRAMES.length Then

For $OFRAME In $OFRAMES

If $OFRAME.name = $S_NAME Then Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.frames ($S_NAME))

Next

__IEERRORNOTIFY("Warning", "_IEFrameGetObjByName", "$_IEStatus_NoMatch", "No frames matching name")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

Else

__IEERRORNOTIFY("Warning", "_IEFrameGetObjByName", "$_IEStatus_NoMatch", "No Frames found")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

EndFunc

 

#EndRegion Frame Functions

#Region Link functions

 

Func _IELINKCLICKBYTEXT(ByRef $O_OBJECT, $S_LINKTEXT, $I_INDEX = 0, $F_WAIT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IELinkClickByText", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $FOUND = 0, $LINKTEXT, $LINKS = $O_OBJECT.document.links

$I_INDEX = Number($I_INDEX)

For $LINK In $LINKS

$LINKTEXT = $LINK.outerText & ""

If $LINKTEXT = $S_LINKTEXT Then

If ($FOUND = $I_INDEX) Then

$LINK.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

Return SetError(@error, 0, -1)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, -1)

EndIf

$FOUND = $FOUND + 1

EndIf

Next

__IEERRORNOTIFY("Warning", "_IELinkClickByText", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 0, 0)

EndFunc

 

 

Func _IELINKCLICKBYINDEX(ByRef $O_OBJECT, $I_INDEX, $F_WAIT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IELinkClickByIndex", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $OLINKS = $O_OBJECT.document.links, $OLINK

$I_INDEX = Number($I_INDEX)

If ($I_INDEX >= 0) And ($I_INDEX <= $OLINKS.length - 1) Then

$OLINK = $OLINKS ($I_INDEX)

$OLINK.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

Return SetError(@error, 0, -1)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, -1)

Else

__IEERRORNOTIFY("Warning", "_IELinkClickByIndex", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

EndFunc

 

 

Func _IELINKGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IELinkGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.links.length, $O_OBJECT.document.links)

Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.document.links.length

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.links.length, $O_OBJECT.document.links.item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IELinkGetCollection", "$_IEStatus_InvalidValue")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

__IEERRORNOTIFY("Warning", "_IELinkGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndSelect

EndFunc

 

#EndRegion Link functions

#Region Image functions

 

Func _IEIMGCLICK(ByRef $O_OBJECT, $S_LINKTEXT, $S_MODE = "src", $I_INDEX = 0, $F_WAIT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEImgClick", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $LINKTEXT, $FOUND = 0, $IMGS = $O_OBJECT.document.images

$S_MODE = StringLower($S_MODE)

$I_INDEX = Number($I_INDEX)

For $IMG In $IMGS

Select

Case $S_MODE = "alt"

$LINKTEXT = $IMG.alt

Case $S_MODE = "name"

$LINKTEXT = $IMG.name

Case $S_MODE = "src"

$LINKTEXT = $IMG.src

Case Else

__IEERRORNOTIFY("Error", "_IEImgClick", "$_IEStatus_InvalidValue", "Invalid mode: " & $S_MODE)

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSelect

If StringInStr($LINKTEXT, $S_LINKTEXT) Then

If ($FOUND = $I_INDEX) Then

$IMG.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

Return SetError(@error, 0, -1)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, -1)

EndIf

$FOUND = $FOUND + 1

EndIf

Next

__IEERRORNOTIFY("Warning", "_IEImgClick", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 0, 0)

EndFunc

 

 

Func _IEIMGGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEImgGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $OTEMP.images.length, $OTEMP.images)

Case $I_INDEX > -1 And $I_INDEX < $OTEMP.images.length

Return SetError($_IESTATUS_SUCCESS, $OTEMP.images.length, $OTEMP.images.item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IEImgGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

__IEERRORNOTIFY("Warning", "_IEImgGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndSelect

EndFunc

 

#EndRegion Image functions

#Region Form functions

 

Func _IEFORMGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $OTEMP.forms.length, $OTEMP.forms)

Case $I_INDEX > -1 And $I_INDEX < $OTEMP.forms.length

Return SetError($_IESTATUS_SUCCESS, $OTEMP.forms.length, $OTEMP.forms.item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IEFormGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

__IEERRORNOTIFY("Warning", "_IEFormGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndSelect

EndFunc

 

 

Func _IEFORMGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME, $I_INDEX = 0)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormGetObjByName", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $I_LENGTH = 0

Local $O_COL = $O_OBJECT.document.forms.item ($S_NAME)

If IsObj($O_COL) Then

If __IEISOBJTYPE($O_COL, "elementcollection") Then

$I_LENGTH = $O_COL.length

Else

$I_LENGTH = 1

EndIf

EndIf

$I_INDEX = Number($I_INDEX)

If $I_INDEX = -1 Then

Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.document.forms.item ($S_NAME))

Else

If IsObj($O_OBJECT.document.forms.item ($S_NAME, $I_INDEX)) Then

Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.document.forms.item ($S_NAME, $I_INDEX))

Else

__IEERRORNOTIFY("Warning", "_IEFormGetObjByName", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 0, 0)

EndIf

EndIf

EndFunc

 

 

Func _IEFORMELEMENTGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "form") Then

__IEERRORNOTIFY("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.elements.length, $O_OBJECT.elements)

Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.elements.length

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.elements.length, $O_OBJECT.elements.item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IEFormElementGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndSelect

EndFunc

 

 

Func _IEFORMELEMENTGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME, $I_INDEX = 0)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementGetObjByName", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "form") Then

__IEERRORNOTIFY("Error", "_IEFormElementGetObjByName", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $I_LENGTH = 0

Local $O_COL = $O_OBJECT.elements.item ($S_NAME)

If IsObj($O_COL) Then

If __IEISOBJTYPE($O_COL, "elementcollection") Then

$I_LENGTH = $O_COL.length

Else

$I_LENGTH = 1

EndIf

EndIf

$I_INDEX = Number($I_INDEX)

If $I_INDEX = -1 Then

Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.elements.item ($S_NAME))

Else

If IsObj($O_OBJECT.elements.item ($S_NAME, $I_INDEX)) Then

Return SetError($_IESTATUS_SUCCESS, $I_LENGTH, $O_OBJECT.elements.item ($S_NAME, $I_INDEX))

Else

__IEERRORNOTIFY("Warning", "_IEFormElementGetObjByName", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 0, 0)

EndIf

EndIf

EndFunc

 

 

Func _IEFORMELEMENTGETVALUE(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementGetValue", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "forminputelement") Then

__IEERRORNOTIFY("Error", "_IEFormElementGetValue", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

SetError($_IESTATUS_SUCCESS)

If $O_OBJECT.value Then

Return $O_OBJECT.value

Else

Return ""

EndIf

EndFunc

 

 

Func _IEFORMELEMENTSETVALUE(ByRef $O_OBJECT, $S_NEWVALUE, $F_FIREEVENT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "forminputelement") Then

__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If String($O_OBJECT.type) = "file" Then

__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidObjectType", "Browser securuty prevents SetValue of TYPE=FILE")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.value = $S_NEWVALUE

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("OnChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndFunc

 

 

Func _IEFORMELEMENTOPTIONSELECT(ByRef $O_OBJECT, $S_STRING, $F_SELECT = 1, $S_MODE = "byValue", $F_FIREEVENT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "formselectelement") Then

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $OITEMS = $O_OBJECT.options, $INUMITEMS = $O_OBJECT.options.length, $F_ISMULTIPLE = $O_OBJECT.multiple

Switch $S_MODE

Case "byValue"

For $OITEM In $OITEMS

If $OITEM.value = $S_STRING Then

Switch $F_SELECT

Case - 1

Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.selected)

Case 0

If Not $F_ISMULTIPLE Then

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")

SetError($_IESTATUS_INVALIDVALUE, 3)

EndIf

If $OITEM.selected Then

$OITEM.selected = False

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("onChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case 1

If Not $OITEM.selected Then

$OITEM.selected = True

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("onChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSwitch

__IEERRORNOTIFY("Warning", "_IEFormElementOptionSelect", "$_IEStatus_NoMatch", "Value not matched")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

Next

Case "byText"

For $OITEM In $OITEMS

If String($OITEM.text) = $S_STRING Then

Switch $F_SELECT

Case - 1

Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.selected)

Case 0

If Not $F_ISMULTIPLE Then

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")

SetError($_IESTATUS_INVALIDVALUE, 3)

EndIf

If $OITEM.selected Then

$OITEM.selected = False

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("onChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case 1

If Not $OITEM.selected Then

$OITEM.selected = True

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("onChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSwitch

__IEERRORNOTIFY("Warning", "_IEFormElementOptionSelect", "$_IEStatus_NoMatch", "Text not matched")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

Next

Case "byIndex"

Local $I_INDEX = Number($S_STRING)

If $I_INDEX < 0 Or $I_INDEX >= $INUMITEMS Then

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid index value, " & $I_INDEX)

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

EndIf

$OITEM = $OITEMS.item ($I_INDEX)

Switch $F_SELECT

Case - 1

Return SetError($_IESTATUS_SUCCESS, 0, $OITEMS.item ($I_INDEX).selected)

Case 0

If Not $F_ISMULTIPLE Then

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "$f_select=0 only valid for type=select multiple")

SetError($_IESTATUS_INVALIDVALUE, 3)

EndIf

If $OITEM.selected Then

$OITEMS.item ($I_INDEX).selected = False

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("onChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case 1

If Not $OITEM.selected Then

$OITEMS.item ($I_INDEX).selected = True

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("onChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSwitch

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementOptionSelect", "$_IEStatus_InvalidValue", "Invalid Mode")

Return SetError($_IESTATUS_INVALIDVALUE, 4, 0)

EndSwitch

EndFunc

 

 

Func _IEFORMELEMENTCHECKBOXSELECT(ByRef $O_OBJECT, $S_STRING, $S_NAME = "", $F_SELECT = 1, $S_MODE = "byValue", $F_FIREEVENT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "form") Then

__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$S_STRING = String($S_STRING)

$S_NAME = String($S_NAME)

Local $OITEMS

If $S_NAME = "" Then

$OITEMS = _IETAGNAMEGETCOLLECTION($O_OBJECT, "input")

Else

$OITEMS = Execute("$o_object.elements('" & $S_NAME & "')")

EndIf

If Not IsObj($OITEMS) Then

__IEERRORNOTIFY("Warning", "_IEFormElementCheckboxSelect", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 3, 0)

EndIf

Local $OITEM, $F_FOUND = False

Switch $S_MODE

Case "byValue"

If __IEISOBJTYPE($OITEMS, "forminputelement") Then

$OITEM = $OITEMS

If String($OITEM.type) = "checkbox" And String($OITEM.value) = $S_STRING Then $F_FOUND = True

Else

For $OITEM In $OITEMS

If String($OITEM.type) = "checkbox" And String($OITEM.value) = $S_STRING Then

$F_FOUND = True

ExitLoop

EndIf

Next

EndIf

Case "byIndex"

If __IEISOBJTYPE($OITEMS, "forminputelement") Then

$OITEM = $OITEMS

If String($OITEM.type) = "checkbox" And Number($S_STRING) = 0 Then $F_FOUND = True

Else

Local $ICOUNT = 0

For $OITEM In $OITEMS

If String($OITEM.type) = "checkbox" And Number($S_STRING) = $ICOUNT Then

$F_FOUND = True

ExitLoop

Else

If String($OITEM.type) = "checkbox" Then $ICOUNT += 1

EndIf

Next

EndIf

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidValue", "Invalid Mode")

Return SetError($_IESTATUS_INVALIDVALUE, 5, 0)

EndSwitch

If Not $F_FOUND Then

__IEERRORNOTIFY("Warning", "_IEFormElementCheckboxSelect", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

Switch $F_SELECT

Case - 1

Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.checked)

Case 0

If $OITEM.checked Then

$OITEM.checked = False

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case 1

If Not $OITEM.checked Then

$OITEM.checked = True

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementCheckboxSelect", "$_IEStatus_InvalidValue", "Invalid $f_select value")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSwitch

EndFunc

 

 

Func _IEFORMELEMENTRADIOSELECT(ByRef $O_OBJECT, $S_STRING, $S_NAME, $F_SELECT = 1, $S_MODE = "byValue", $F_FIREEVENT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "form") Then

__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$S_STRING = String($S_STRING)

$S_NAME = String($S_NAME)

Local $OITEMS = Execute("$o_object.elements('" & $S_NAME & "')")

If Not IsObj($OITEMS) Then

__IEERRORNOTIFY("Warning", "_IEFormElementRadioSelect", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 3, 0)

EndIf

Local $OITEM, $F_FOUND = False

Switch $S_MODE

Case "byValue"

If __IEISOBJTYPE($OITEMS, "forminputelement") Then

$OITEM = $OITEMS

If String($OITEM.type) = "radio" And String($OITEM.value) = $S_STRING Then $F_FOUND = True

Else

For $OITEM In $OITEMS

If String($OITEM.type) = "radio" And String($OITEM.value) = $S_STRING Then

$F_FOUND = True

ExitLoop

EndIf

Next

EndIf

Case "byIndex"

If __IEISOBJTYPE($OITEMS, "forminputelement") Then

$OITEM = $OITEMS

If String($OITEM.type) = "radio" And Number($S_STRING) = 0 Then $F_FOUND = True

Else

Local $ICOUNT = 0

For $OITEM In $OITEMS

If String($OITEM.type) = "radio" And Number($S_STRING) = $ICOUNT Then

$F_FOUND = True

ExitLoop

Else

$ICOUNT += 1

EndIf

Next

EndIf

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidValue", "Invalid Mode")

Return SetError($_IESTATUS_INVALIDVALUE, 5, 0)

EndSwitch

If Not $F_FOUND Then

__IEERRORNOTIFY("Warning", "_IEFormElementRadioSelect", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

Switch $F_SELECT

Case - 1

Return SetError($_IESTATUS_SUCCESS, 0, $OITEM.checked)

Case 0

If $OITEM.checked Then

$OITEM.checked = False

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case 1

If Not $OITEM.checked Then

$OITEM.checked = True

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEFormElementRadioSelect", "$_IEStatus_InvalidValue", "$f_select value invalid")

Return SetError($_IESTATUS_INVALIDVALUE, 4, 0)

EndSwitch

EndFunc

 

 

Func _IEFORMIMAGECLICK(ByRef $O_OBJECT, $S_LINKTEXT, $S_MODE = "src", $I_INDEX = 0, $F_WAIT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormImageClick", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $LINKTEXT, $FOUND = 0

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

Local $IMGS = _IETAGNAMEGETCOLLECTION($OTEMP, "input")

$S_MODE = StringLower($S_MODE)

$I_INDEX = Number($I_INDEX)

For $IMG In $IMGS

If String($IMG.type) = "image" Then

Select

Case $S_MODE = "alt"

$LINKTEXT = $IMG.alt

Case $S_MODE = "name"

$LINKTEXT = $IMG.name

Case $S_MODE = "src"

$LINKTEXT = $IMG.src

Case Else

__IEERRORNOTIFY("Error", "_IEFormImageClick", "$_IEStatus_InvalidValue", "Invalid mode: " & $S_MODE)

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSelect

If StringInStr($LINKTEXT, $S_LINKTEXT) Then

If ($FOUND = $I_INDEX) Then

$IMG.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

Return SetError(@error, 0, -1)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, -1)

EndIf

$FOUND = $FOUND + 1

EndIf

EndIf

Next

__IEERRORNOTIFY("Warning", "_IEFormImageClick", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndFunc

 

 

Func _IEFORMSUBMIT(ByRef $O_OBJECT, $F_WAIT = 1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormSubmit", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "form") Then

__IEERRORNOTIFY("Error", "_IEFormSubmit", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $O_WINDOW = $O_OBJECT.document.parentWindow

$O_OBJECT.submit

If $F_WAIT Then

_IELOADWAIT($O_WINDOW)

Return SetError(@error, 0, -1)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, -1)

EndFunc

 

 

Func _IEFORMRESET(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEFormReset", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "form") Then

__IEERRORNOTIFY("Error", "_IEFormReset", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.reset

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndFunc

 

#EndRegion Form functions

#Region Table functions

 

Func _IETABLEGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IETableGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByTagName ("table" ).length, $O_OBJECT.document.GetElementsByTagName ("table"))

Case $I_INDEX > -1 And $I_INDEX < $O_OBJECT.document.GetElementsByTagName ("table" ).length

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByTagName ("table" ).length, $O_OBJECT.document.GetElementsByTagName ("table" ).item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IETableGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

__IEERRORNOTIFY("Warning", "_IETableGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndSelect

EndFunc

 

 

Func _IETABLEWRITETOARRAY(ByRef $O_OBJECT, $F_TRANSPOSE = False)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IETableWriteToArray", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "table") Then

__IEERRORNOTIFY("Error", "_IETableWriteToArray", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $I_COLS = 0, $TDS, $I_COL

Local $TRS = $O_OBJECT.rows

For $TR In $TRS

$TDS = $TR.cells

$I_COL = 0

For $TD In $TDS

$I_COL = $I_COL + $TD.colSpan

Next

If $I_COL > $I_COLS Then $I_COLS = $I_COL

Next

Local $I_ROWS = $TRS.length

Local $A_TABLECELLS[$I_COLS][$I_ROWS]

Local $COL, $ROW = 0

For $TR In $TRS

$TDS = $TR.cells

$COL = 0

For $TD In $TDS

$A_TABLECELLS[$COL][$ROW] = $TD.innerText

$COL = $COL + $TD.colSpan

Next

$ROW = $ROW + 1

Next

If $F_TRANSPOSE Then

Local $I_D1 = UBound($A_TABLECELLS, 1), $I_D2 = UBound($A_TABLECELLS, 2), $ATMP[$I_D2][$I_D1]

For $I = 0 To $I_D2 - 1

For $J = 0 To $I_D1 - 1

$ATMP[$I][$J] = $A_TABLECELLS[$J][$I]

Next

Next

$A_TABLECELLS = $ATMP

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $A_TABLECELLS)

EndFunc

 

#EndRegion Table functions

#Region Read/Write functions

 

Func _IEBODYREADHTML(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEBodyReadHTML", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.body.innerHTML)

EndFunc

 

 

Func _IEBODYREADTEXT(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEBodyReadText", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEBodyReadText", "$_IEStatus_InvalidObjectType", "Expected document element")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.body.innerText)

EndFunc

 

 

Func _IEBODYWRITEHTML(ByRef $O_OBJECT, $S_HTML)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEBodyWriteHTML", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEBodyWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.document.body.innerHTML = $S_HTML

Local $OTEMP = $O_OBJECT.document

_IELOADWAIT($OTEMP)

Return SetError(@error, 0, -1)

EndFunc

 

 

Func _IEDOCREADHTML(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEDocReadHTML", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEDocReadHTML", "$_IEStatus_InvalidObjectType", "Expected document element")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.documentElement.outerHTML)

EndFunc

 

 

Func _IEDOCWRITEHTML(ByRef $O_OBJECT, $S_HTML)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEDocWriteHTML", "$_IEStatus_InvalidObjectType", "Expected document element")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.document.Write ($S_HTML)

$O_OBJECT.document.close ()

Local $OTEMP = $O_OBJECT.document

_IELOADWAIT($OTEMP)

Return SetError(@error, 0, -1)

EndFunc

 

 

Func _IEDOCINSERTTEXT(ByRef $O_OBJECT, $S_STRING, $S_WHERE = "beforeend")

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEDocInsertText", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Or __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEDocInsertText", "$_IEStatus_InvalidObjectType", "Expected document element")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$S_WHERE = StringLower($S_WHERE)

Select

Case $S_WHERE = "beforebegin"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_WHERE = "afterbegin"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_WHERE = "beforeend"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_WHERE = "afterend"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEDocInsertText", "$_IEStatus_InvalidValue", "Invalid where value")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSelect

EndFunc

 

 

Func _IEDOCINSERTHTML(ByRef $O_OBJECT, $S_STRING, $S_WHERE = "beforeend")

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Or __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidObjectType", "Expected document element")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$S_WHERE = StringLower($S_WHERE)

Select

Case $S_WHERE = "beforebegin"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_WHERE = "afterbegin"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_WHERE = "beforeend"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_WHERE = "afterend"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEDocInsertHTML", "$_IEStatus_InvalidValue", "Invalid where value")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

EndSelect

EndFunc

 

 

Func _IEHEADINSERTEVENTSCRIPT(ByRef $O_OBJECT, $S_HTMLFOR, $S_EVENT, $S_SCRIPT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEHeadInsertEventScript", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $O_HEAD = $O_OBJECT.document.all.tags ("HEAD" ).Item (0)

Local $O_SCRIPT = $O_OBJECT.document.createElement ("script")

With $O_SCRIPT

.defer = True

.language = "jscript"

.type = "text/javascript"

.htmlFor = $S_HTMLFOR

.event = $S_EVENT

.text = $S_SCRIPT

EndWith

$O_HEAD.appendChild ($O_SCRIPT)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndFunc

 

#EndRegion Read/Write functions

#Region Utility functions

 

Func _IEDOCGETOBJ(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEDocGetObj", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Switch __IEISOBJTYPE($O_OBJECT, "document")

Case True

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)

Case False

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document)

EndSwitch

EndFunc

 

 

Func _IETAGNAMEGETCOLLECTION(ByRef $O_OBJECT, $S_TAGNAME, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $OTEMP

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Then

$OTEMP = _IEDOCGETOBJ($O_OBJECT)

Else

$OTEMP = $O_OBJECT

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $OTEMP.GetElementsByTagName ($S_TAGNAME).length, $OTEMP.GetElementsByTagName ($S_TAGNAME))

Case $I_INDEX > -1 And $I_INDEX < $OTEMP.GetElementsByTagName ($S_TAGNAME).length

Return SetError($_IESTATUS_SUCCESS, $OTEMP.GetElementsByTagName ($S_TAGNAME).length, $OTEMP.GetElementsByTagName ($S_TAGNAME).item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 3, 0)

Case Else

__IEERRORNOTIFY("Error", "_IETagNameGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 0, 0)

EndSelect

EndFunc

 

 

Func _IETAGNAMEALLGETCOLLECTION(ByRef $O_OBJECT, $I_INDEX = -1)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $OTEMP

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Then

$OTEMP = _IEDOCGETOBJ($O_OBJECT)

Else

$OTEMP = $O_OBJECT

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

Return SetError($_IESTATUS_SUCCESS, $OTEMP.all.length, $OTEMP.all)

Case $I_INDEX > -1 And $I_INDEX < $OTEMP.all.length

Return SetError($_IESTATUS_SUCCESS, $OTEMP.all.length, $OTEMP.all.item ($I_INDEX))

Case $I_INDEX < -1

__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_InvalidValue", "$i_index < -1")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

Case Else

__IEERRORNOTIFY("Error", "_IETagNameAllGetCollection", "$_IEStatus_NoMatch")

Return SetError($_IESTATUS_NOMATCH, 1, 0)

EndSelect

EndFunc

 

 

Func _IEGETOBJBYNAME(ByRef $O_OBJECT, $S_ID, $I_INDEX = 0)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEGetObjByName", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

$I_INDEX = Number($I_INDEX)

If $I_INDEX = -1 Then

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByName ($S_ID).length, $O_OBJECT.document.GetElementsByName ($S_ID))

Else

If IsObj($O_OBJECT.document.GetElementsByName ($S_ID).item ($I_INDEX)) Then

Return SetError($_IESTATUS_SUCCESS, $O_OBJECT.document.GetElementsByName ($S_ID).length, $O_OBJECT.document.GetElementsByName ($S_ID).item ($I_INDEX))

Else

__IEERRORNOTIFY("Warning", "_IEGetObjByName", "$_IEStatus_NoMatch", "Name: " & $S_ID & ", Index: " & $I_INDEX)

Return SetError($_IESTATUS_NOMATCH, 0, 0)

EndIf

EndIf

EndFunc

 

 

Func _IEGETOBJBYID(ByRef $O_OBJECT, $S_ID)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEGetObjById", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEGetObById", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If IsObj($O_OBJECT.document.getElementById ($S_ID)) Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.getElementById ($S_ID))

Else

__IEERRORNOTIFY("Warning", "_IEGetObjById", "$_IEStatus_NoMatch", $S_ID)

Return SetError($_IESTATUS_NOMATCH, 2, 0)

EndIf

EndFunc

 

 

Func _IEACTION(ByRef $O_OBJECT, $S_ACTION)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

$S_ACTION = StringLower($S_ACTION)

Select

Case $S_ACTION = "click"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Click ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "disable"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.disabled = True

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "enable"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.disabled = False

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "focus"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Focus ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "copy"

$O_OBJECT.document.execCommand ("Copy")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "cut"

$O_OBJECT.document.execCommand ("Cut")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "paste"

$O_OBJECT.document.execCommand ("Paste")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "delete"

$O_OBJECT.document.execCommand ("Delete")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "saveas"

$O_OBJECT.document.execCommand ("SaveAs")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "refresh"

$O_OBJECT.document.execCommand ("Refresh")

_IELOADWAIT($O_OBJECT)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "selectall"

$O_OBJECT.document.execCommand ("SelectAll")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "unselect"

$O_OBJECT.document.execCommand ("Unselect")

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "print"

$O_OBJECT.document.parentwindow.Print ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "printdefault"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.execWB (6, 2)

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "back"

If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.GoBack ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "blur"

$O_OBJECT.Blur ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "forward"

If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.GoForward ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "home"

If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.GoHome ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "invisible"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.visible = 0

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "visible"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.visible = 1

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "search"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.GoSearch ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "stop"

If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Stop ()

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_ACTION = "quit"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Quit ()

$O_OBJECT = 0

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case Else

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidValue", "Invalid Action")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

EndSelect

EndFunc

 

 

Func _IEPROPERTYGET(ByRef $O_OBJECT, $S_PROPERTY)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browserdom") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Local $OTEMP, $ITEMP

$S_PROPERTY = StringLower($S_PROPERTY)

Select

Case $S_PROPERTY = "browserx"

If __IEISOBJTYPE($O_OBJECT, "browsercontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetLeft

$OTEMP = $OTEMP.offsetParent

WEnd

Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP)

Case $S_PROPERTY = "browsery"

If __IEISOBJTYPE($O_OBJECT, "browsercontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetTop

$OTEMP = $OTEMP.offsetParent

WEnd

Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP)

Case $S_PROPERTY = "screenx"

If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.left ())

Else

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetLeft

$OTEMP = $OTEMP.offsetParent

WEnd

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP + $O_OBJECT.document.parentWindow.screenLeft)

Case $S_PROPERTY = "screeny"

If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.top ())

Else

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetTop

$OTEMP = $OTEMP.offsetParent

WEnd

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $ITEMP + $O_OBJECT.document.parentWindow.screenTop)

Case $S_PROPERTY = "height"

If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Height ())

Else

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.offsetHeight)

EndIf

Case $S_PROPERTY = "width"

If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "document") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Width ())

Else

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.offsetWidth)

EndIf

Case $S_PROPERTY = "isdisabled"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.isDisabled ())

Case $S_PROPERTY = "addressbar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.AddressBar ())

Case $S_PROPERTY = "busy"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Busy ())

Case $S_PROPERTY = "fullscreen"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.fullScreen ())

Case $S_PROPERTY = "hwnd"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, HWnd($O_OBJECT.HWnd()))

Case $S_PROPERTY = "left"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Left ())

Case $S_PROPERTY = "locationname"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.LocationName ())

Case $S_PROPERTY = "locationurl"

If __IEISOBJTYPE($O_OBJECT, "browser") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.locationURL ())

EndIf

If __IEISOBJTYPE($O_OBJECT, "window") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.location.href ())

EndIf

If __IEISOBJTYPE($O_OBJECT, "document") Then

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.parentwindow.location.href ())

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentwindow.location.href ())

Case $S_PROPERTY = "menubar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.MenuBar ())

Case $S_PROPERTY = "offline"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.OffLine ())

Case $S_PROPERTY = "readystate"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.ReadyState ())

Case $S_PROPERTY = "resizable"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Resizable ())

Case $S_PROPERTY = "silent"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Silent ())

Case $S_PROPERTY = "statusbar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.StatusBar ())

Case $S_PROPERTY = "statustext"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.StatusText ())

Case $S_PROPERTY = "top"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Top ())

Case $S_PROPERTY = "visible"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.Visible ())

Case $S_PROPERTY = "appcodename"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appCodeName ())

Case $S_PROPERTY = "appminorversion"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appMinorVersion ())

Case $S_PROPERTY = "appname"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appName ())

Case $S_PROPERTY = "appversion"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.appVersion ())

Case $S_PROPERTY = "browserlanguage"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.browserLanguage ())

Case $S_PROPERTY = "cookieenabled"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.cookieEnabled ())

Case $S_PROPERTY = "cpuclass"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.cpuClass ())

Case $S_PROPERTY = "javaenabled"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.javaEnabled ())

Case $S_PROPERTY = "online"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.onLine ())

Case $S_PROPERTY = "platform"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.platform ())

Case $S_PROPERTY = "systemlanguage"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.systemLanguage ())

Case $S_PROPERTY = "useragent"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.userAgent ())

Case $S_PROPERTY = "userlanguage"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.parentWindow.top.navigator.userLanguage ())

Case $S_PROPERTY = "vcard"

Local $AVCARD[1][29]

$AVCARD[0][0] = "Business.City"

$AVCARD[0][1] = "Business.Country"

$AVCARD[0][2] = "Business.Fax"

$AVCARD[0][3] = "Business.Phone"

$AVCARD[0][4] = "Business.State"

$AVCARD[0][5] = "Business.StreetAddress"

$AVCARD[0][6] = "Business.URL"

$AVCARD[0][7] = "Business.Zipcode"

$AVCARD[0][8] = "Cellular"

$AVCARD[0][9] = "Company"

$AVCARD[0][10] = "Department"

$AVCARD[0][11] = "DisplayName"

$AVCARD[0][12] = "Email"

$AVCARD[0][13] = "FirstName"

$AVCARD[0][14] = "Gender"

$AVCARD[0][15] = "Home.City"

$AVCARD[0][16] = "Home.Country"

$AVCARD[0][17] = "Home.Fax"

$AVCARD[0][18] = "Home.Phone"

$AVCARD[0][19] = "Home.State"

$AVCARD[0][20] = "Home.StreetAddress"

$AVCARD[0][21] = "Home.Zipcode"

$AVCARD[0][22] = "Homepage"

$AVCARD[0][23] = "JobTitle"

$AVCARD[0][24] = "LastName"

$AVCARD[0][25] = "MiddleName"

$AVCARD[0][26] = "Notes"

$AVCARD[0][27] = "Office"

$AVCARD[0][28] = "Pager"

For $I = 0 To 28

$AVCARD[1][$I] = Execute('$o_object.document.parentWindow.top.navigator.userProfile.getAttribute("' & $AVCARD[0][$I] & '")')

Next

Return SetError($_IESTATUS_SUCCESS, 0, $AVCARD)

Case $S_PROPERTY = "referrer"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.referrer)

Case $S_PROPERTY = "theatermode"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.TheaterMode)

Case $S_PROPERTY = "toolbar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.ToolBar)

Case $S_PROPERTY = "contenteditable"

If __IEISOBJTYPE($O_OBJECT, "browser") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.isContentEditable)

Case $S_PROPERTY = "innertext"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.innerText)

Case $S_PROPERTY = "outertext"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.outerText)

Case $S_PROPERTY = "innerhtml"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.innerHTML)

Case $S_PROPERTY = "outerhtml"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $OTEMP.outerHTML)

Case $S_PROPERTY = "title"

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.document.title)

Case $S_PROPERTY = "uniqueid"

If __IEISOBJTYPE($O_OBJECT, "window") Then

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

Else

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT.uniqueID)

EndIf

Case Else

__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidValue", "Invalid Property")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

EndSelect

EndFunc

 

 

Func _IEPROPERTYSET(ByRef $O_OBJECT, $S_PROPERTY, $NEWVALUE)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $OTEMP

#forceref $oTemp

$S_PROPERTY = StringLower($S_PROPERTY)

Select

Case $S_PROPERTY = "addressbar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.AddressBar = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "height"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Height = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "left"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Left = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "menubar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.MenuBar = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "offline"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.OffLine = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "resizable"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Resizable = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "statusbar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.StatusBar = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "statustext"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.StatusText = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "top"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Top = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "width"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.Width = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "theatermode"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If $NEWVALUE Then

$O_OBJECT.TheaterMode = True

Else

$O_OBJECT.TheaterMode = False

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "toolbar"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If $NEWVALUE Then

$O_OBJECT.ToolBar = True

Else

$O_OBJECT.ToolBar = False

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "contenteditable"

If __IEISOBJTYPE($O_OBJECT, "browser") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

If $NEWVALUE Then

$OTEMP.contentEditable = "true"

Else

$OTEMP.contentEditable = "false"

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "innertext"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

$OTEMP.innerText = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "outertext"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

$OTEMP.outerText = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "innerhtml"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

$OTEMP.innerHTML = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "outerhtml"

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Or __IEISOBJTYPE($O_OBJECT, "document") Then

$OTEMP = $O_OBJECT.document.body

Else

$OTEMP = $O_OBJECT

EndIf

$OTEMP.outerHTML = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "title"

$O_OBJECT.document.title = $NEWVALUE

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Case $S_PROPERTY = "silent"

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

If $NEWVALUE Then

$O_OBJECT.silent = True

Else

$O_OBJECT.silent = False

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 0)

Case Else

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_InvalidValue", "Invalid Property")

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

EndSelect

EndFunc

 

 

Func _IEERRORNOTIFY($F_NOTIFY = -1)

Switch Number($F_NOTIFY)

Case - 1

Return $_IEERRORNOTIFY

Case 0

$_IEERRORNOTIFY = False

Return 1

Case 1

$_IEERRORNOTIFY = True

Return 1

Case Else

__IEERRORNOTIFY("Error", "_IEErrorNotify", "$_IEStatus_InvalidValue")

Return 0

EndSwitch

EndFunc

 

 

Func _IEERRORHANDLERREGISTER($S_FUNCTIONNAME = "__IEInternalErrorHandler")

$SIEUSERERRORHANDLER = $S_FUNCTIONNAME

$OIEERRORHANDLER = ""

$OIEERRORHANDLER = ObjEvent("AutoIt.Error", $S_FUNCTIONNAME)

If IsObj($OIEERRORHANDLER) Then

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Else

__IEERRORNOTIFY("Error", "_IEPropertySet", "$_IEStatus_GeneralError", "Error Handler Not Registered - Check existance of error function")

Return SetError($_IESTATUS_GENERALERROR, 1, 0)

EndIf

EndFunc

 

 

Func _IEERRORHANDLERDEREGISTER()

$SIEUSERERRORHANDLER = ""

$OIEERRORHANDLER = ""

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndFunc

 

 

Func _IEQUIT(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "_IEQuit", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "browser") Then

__IEERRORNOTIFY("Error", "_IEAction", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.quit ()

$O_OBJECT = 0

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndFunc

 

#EndRegion Utility functions

#Region General

 

Func _IE_INTRODUCTION($S_MODULE = "basic")

Local $S_HTML = ""

Switch $S_MODULE

Case "basic"

$S_HTML &= "<HTML>" & @CR

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>_IE_Introduction ('basic')</TITLE>" & @CR

$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<BODY>" & @CR

$S_HTML &= "<table border=1 width=600 id='table1' cellspacing=6 cellpadding=6>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<h1>Welcome to IE.au3</h1>" & @CR

$S_HTML &= "IE.au3 is a UDF (User Defined Function) library for the " & @CR

$S_HTML &= "<a href='http://www.autoitscript.com'>AutoIt</a> scripting language." & @CR

$S_HTML &= "<p> " & @CR

$S_HTML &= "IE.au3 allows you to either create or attach to an Internet Explorer browser and do " & @CR

$S_HTML &= "just about anything you could do with it interactively with the mouse and " & @CR

$S_HTML &= "keyboard, but do it through script." & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "You can navigate to pages, click links, fill and submit forms etc. You can " & @CR

$S_HTML &= "also do things you cannot do interactively like change or rewrite page " & @CR

$S_HTML &= "content and JavaScripts, read, parse and save page content and monitor and act " & @CR

$S_HTML &= "upon browser 'events'.<p>" & @CR

$S_HTML &= "IE.au3 uses the COM interface in AutoIt to interact with the Internet Explorer " & @CR

$S_HTML &= "object model and the DOM (Document Object Model) supported by the browser." & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "Here are some links for more information and helpful tools:<p>" & @CR

$S_HTML &= "Reference Material: " & @CR

$S_HTML &= "<ul>" & @CR

$S_HTML &= "<li><a href='http://msdn1.microsoft.com/'>MSDN (Microsoft Developer Network)</a></li>" & @CR

$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/aa752084.aspx' target='_blank'>InternetExplorer Object</a></li>" & @CR

$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms531073.aspx' target='_blank'>Document Object</a></li>" & @CR

$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/ie/aa740473.aspx' target='_blank'>Overviews and Tutorials</a></li>" & @CR

$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms533029.aspx' target='_blank'>DHTML Objects</a></li>" & @CR

$S_HTML &= "<li><a href='http://msdn2.microsoft.com/en-us/library/ms533051.aspx' target='_blank'>DHTML Events</a></li>" & @CR

$S_HTML &= "</ul><p>" & @CR

$S_HTML &= "Helpful Tools: " & @CR

$S_HTML &= "<ul>" & @CR

$S_HTML &= "<úu><a hr?f=Nhtt—î?Ewww.gAtoit?cUiUtIcůIEforAIEiäN?x.—h—Ë?hoyto—ic=1Ĺ3Ô8N tarÝ?tĽN?búaäöO>ŁAWoItGI? łAiúN?U<Eaľ ňb|iúN I? ?criUt? iät?racti??ú?¨?Eúi>" & @CR

$S_HTML &= "?l???a3h?n§=?haaoß?A?ââ??nbµtbšr?L?©???ašrtnG=?_blšnk?ODnbµgBar??aO?D?¨???s?n?a1r?Há?ô??ns?nLa1r?Há¨Lv?l?daa?raŮd©1rn-?r?n§?r3o?rs1ŮaU?s?yRnL?©?nŮd?d?Al??" & @CR

$S_HTML &= "??ß?µGh?eT='h??j://ËËË??icóccfF?c ?/ ?nE ?e/?e?µie???x?Fµ?uŹi®=??Ĺc39I4_?o2Í???AbŢ3?Í2?eŢ9e­38?µ??Ou??yµŮg=eŮ'G?µó?e?=?Ö޵nE'ai÷ ®eve jeó U c޵ó?iµa Écc??ó?hťnive ®OMGµnµEyei ? c)?/?ß" & @CR

$S_HTML &= "KJ?>eUNâUe?=hâWt:®®?JU?erůÂÂi?eO?o?Ttůo?A??ůdu®©TNO®?ůdu?âe?Nâ???'NtUrtet='?×J˛n?'ľnoDIaTe®UľNI©?e?NWâťNńOnNoÂNUOwť×N˛gťN??O?o??i?gNUUo?nŤIe®Ji>" & @CR

$S_HTML &= "<li><a href='http://validator.w3.org/' target='_blank'>HTML Validator</a> (verify HTML follows format rules)</li>" & @CR

$S_HTML &= "<li><a href='http://www.fiddlertool.com/fiddler/' target='_blank'>Fiddler</a> (examine HTTP traffic)</li>" & @CR

$S_HTML &= "</ul>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "</table>" & @CR

$S_HTML &= "</BODY>" & @CR

$S_HTML &= "</HTML>"

Case Else

__IEERRORNOTIFY("Error", "_IE_Introduction", "$_IEStatus_InvalidValue")

Return SetError($_IESTATUS_INVALIDVALUE, 1, 0)

EndSwitch

Local $O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)

EndFunc

 

 

Func _IE_EXAMPLE($S_MODULE = "basic")

Local $S_HTML = "", $O_OBJECT

Switch $S_MODULE

Case "basic"

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>_IE_Example('basic')</TITLE>" & @CR

$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<BODY>" & @CR

$S_HTML &= "<a!hUóf['hF??:??wwwGšuFoA??EUÍ??GEoO'D?ÍOí!?UE['U?F?ĺ??wwwŇaw?ůÍ???rÍ?FGEo˘?ÍOší??Aaw?ůÍ?????40x10IGU?o'!ÔšO?['Au?oI?IOaíóh!a?F[hAw??I?!ňouó?a?ó?IOaoóhDl?šD" & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "<div id=line1>This is a simple HTML page with text, links and images.</div>" & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "<div id=line2><a href='http://www.autoitscript.com'>AutoIt</a> is a wonderful automation scripting language.</div>" & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "?div id]?inoÂ3?tGis sNF??EWod bi a voEi aWiYoGaŮdGsN?F?Eting ?a ?Eo?]'?WtFß?uwww.šNt?its?i?t.?mu??ENm?'?Nuo? ??ENm1ua3.1uŤiv3" & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "<div id=IEAu3Data></div>" & @CR

$S_HTML &= "</BODY>" & @CR

$S_HTML &= "</HTML>"

$O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

Case "table"

$S_HTML &= "<HTML>" & @CR

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>_IE_Example('table')</TITLE>" & @CR

$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<BODY>" & @CR

$S_HTML &= "$oTableOne = _IETableGetObjByName($oIE, "tableOne")<br>" & @CR

$S_HTML &= "<table border=1 id='tableOne'><p>" & @CR

$S_HTML &= "<table border=1 id='tableOne'>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>AutoIt</td>" & @CR

$S_HTML &= " <td>is</td>" & @CR

$S_HTML &= " <td>really</td>" & @CR

$S_HTML &= " <td>great</td>" & @CR

$S_HTML &= " <td>with</td>" & @CR

$S_HTML &= " <td>IE.au3</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>1</td>" & @CR

$S_HTML &= " <td>2</td>" & @CR

$S_HTML &= " <td>3</td>" & @CR

$S_HTML &= " <td>4</td>" & @CR

$S_HTML &= " <td>5</td>" & @CR

$S_HTML &= " <td>6</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>the</td>" & @CR

$S_HTML &= " <td>quick</td>" & @CR

$S_HTML &= " <td>red</td>" & @CR

$S_HTML &= " <td>fox</td>" & @CR

$S_HTML &= " <td>jumped</td>" & @CR

$S_HTML &= " <td>over</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>the</td>" & @CR

$S_HTML &= " <td>lazy</td>" & @CR

$S_HTML &= " <td>brown</td>" & @CR

$S_HTML &= " <td>dog</td>" & @CR

$S_HTML &= " <td>the</td>" & @CR

$S_HTML &= " <td>time</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>has</td>" & @CR

$S_HTML &= " <td>come</td>" & @CR

$S_HTML &= " <td>for</td>" & @CR

$S_HTML &= " <td>all</td>" & @CR

$S_HTML &= " <td>good</td>" & @CR

$S_HTML &= " <td>men</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>to</td>" & @CR

$S_HTML &= " <td>come</td>" & @CR

$S_HTML &= " <td>to</td>" & @CR

$S_HTML &= " <td>the</td>" & @CR

$S_HTML &= " <td>aid</td>" & @CR

$S_HTML &= " <td>of</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= "</table>" & @CR

$S_HTML &= "<p>" & @CR

$S_HTML &= "$oTableTwo = _IETableGetObjByName($oIE, "tableTwo")<br>" & @CR

$S_HTML &= "<table border="1" id='tableTwo'><p>" & @CR

$S_HTML &= "<table border=1 id='tableTwo'>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td colspan='4'>Table Top</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>One</td>" & @CR

$S_HTML &= " <td colspan='3'>Two</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>Three</td>" & @CR

$S_HTML &= " <td>Four</td>" & @CR

$S_HTML &= " <td colspan='2'>Five</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>Six</td>" & @CR

$S_HTML &= " <td colspan='3'>Seven</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= " <tr>" & @CR

$S_HTML &= " <td>Eight</td>" & @CR

$S_HTML &= " <td>Nine</td>" & @CR

$S_HTML &= " <td>Ten</td>" & @CR

$S_HTML &= " <td>Eleven</td>" & @CR

$S_HTML &= " </tr>" & @CR

$S_HTML &= "</table>" & @CR

$S_HTML &= "</BODY>" & @CR

$S_HTML &= "</HTML>"

$O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

Case "form"

$S_HTML &= "<HTML>" & @CR

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>_IE_Example('form')</TITLE>" & @CR

$S_HTML &= "<STYLE>body {font-family: Arial}</STYLE>" & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<BODY>" & @CR

$S_HTML &= "<form name='ExampleForm' onSubmit='javascript:alert(""ExampleFormSubmitted"");' method='post'>" & @CR

$S_HTML &= "<table cellspacing=6 cellpadding=6 border=1>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>ExampleForm</td>" & @CR

$S_HTML &= "<td><form name='ExampleForm' onSubmit='javascript:alert(""ExampleFormSubmitted"");' method='post'></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>Hidden Input Element<input type='hidden' name='hiddenExample' value='secret value'></td>" & @CR

$S_HTML &= "<td><input type='hidden' name='hiddenExample' value='secret value'></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input type='text' name='textExample' value='http://' size='20' maxlength='30'>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><input type='text' name='textExample' value='http://' size='20' maxlength='30'></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input type='password' name='passwordExample' size='10'>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><input type='password' name='passwordExample' size='10'></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input type='file' name='fileExample'>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><input type='file' name='fileExample'></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input type='image' name='imageExample' alt='AutoIt Homepage' src='http://www.autoitscript.com/images/autoit_6_240x100.jpg'>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<R?>HlR;i±úe? RAúeĽ'u?f?' ±??ť=hi??eEx???lť'G?lR='?eOo?RG?o?eú?e'GOG?Ľ'RRú:/iwyw??eRoiRO?äuúR??o?/i?fťO??eRoi?_V_?÷0xu00?Uú?'HR;</R?ľ" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<textarea name='textareaExample' rows='5' cols='15'>Hello!</textarea>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><textarea name='textareaExample' rows='5' cols='15'>Hello!</textarea></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG1Example' value='gameBasketball'>Basketball<br>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG1Example' value='gameFootball'>Football<br>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameTennis' checked>Tennis<br>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameBaseball'>Baseball" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><input type='checkbox' name='checkboxG1Example' value='gameBasketball'>Basketball<br><br>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG1Example' value='gameFootball'>Football<br><br>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameTennis' checked>Tennis<br><br>" & @CR

$S_HTML &= "<input type='checkbox' name='checkboxG2Example' value='gameBaseball'>Baseball</td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleAirplane'>Airplane<br>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleTrain' checked>Train<br>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleBoat'>Boat<br>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleCar'>Car</td>" & @CR

$S_HTML &= "<td><input type='radio' name='radioExample' value='vehicleAirplane'>Airplane<br><br>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleTrain' checked>Train<br><br>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleBoat'>Boat<br><br>" & @CR

$S_HTML &= "<input type='radio' name='radioExample' value='vehicleCar'>Car<br></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<select name='selectExample'>" & @CR

$S_HTML &= "<option value='homepage.html'>Homepage" & @CR

$S_HTML &= "<option value='midipage.html'>Midipage" & @CR

$S_HTML &= "<option value='freepage.html'>Freepage" & @CR

$S_HTML &= "</select>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><select name='selectExample'><br>" & @CR

$S_HTML &= "<option value='homepage.html'>Homepage<br>" & @CR

$S_HTML &= "<option value='midipage.html'>Midipage<br>" & @CR

$S_HTML &= "<option value='freepage.html'>Freepage<br>" & @CR

$S_HTML &= "</select></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<select name='multipleSelectExample' size='6' multiple>" & @CR

$S_HTML &= "<option value='Name1'>Aaron" & @CR

$S_HTML &= "<option value='Name2'>Bruce" & @CR

$S_HTML &= "<option value='Name3'>Carlos" & @CR

$S_HTML &= "<option value='Name4'>Denis" & @CR

$S_HTML &= "<option value='Name5'>Ed" & @CR

$S_HTML &= "<option value='Name6'>Freddy" & @CR

$S_HTML &= "</select>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><select name='multipleSelectExample' size='6' multiple><br>" & @CR

$S_HTML &= "<option value='Name1'>Aaron<br>" & @CR

$S_HTML &= "<option value='Name2'>Bruce<br>" & @CR

$S_HTML &= "<option value='Name3'>Carlos<br>" & @CR

$S_HTML &= "<option value='Name4'>Denis<br>" & @CR

$S_HTML &= "<option value='Name5'>Ed<br>" & @CR

$S_HTML &= "<option value='Name6'>Freddy<br>" & @CR

$S_HTML &= "</select></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td>" & @CR

$S_HTML &= "<input name='submitExample' type='submit' value='Submit'>" & @CR

$S_HTML &= "<input name='resetExample' type='reset' value='Reset'>" & @CR

$S_HTML &= "</td>" & @CR

$S_HTML &= "<td><input name='submitExample' type='submit' value='Submit'><br>" & @CR

$S_HTML &= "<input name='resetExample' type='reset' value='Reset'></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "</table>" & @CR

$S_HTML &= "<input type='hidden' name='hiddenExample' value='secret value'>" & @CR

$S_HTML &= "</FORM>" & @CR

$S_HTML &= "</BODY>" & @CR

$S_HTML &= "</HTML>"

$O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

Case "frameset"

$S_HTML &= "<HTML>" & @CR

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>_IE_Example('frameset')</TITLE>" & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<FRAMESET rows='25,200'>" & @CR

$S_HTML &= " <FRAME NAME=Top SRC=about:blank>" & @CR

$S_HTML &= " <FRAMESET cols='100,500'>" & @CR

$S_HTML &= " <FRAME NAME=Menu SRC=about:blank>" & @CR

$S_HTML &= " <FRAME NAME=Main SRC=about:blank>" & @CR

$S_HTML &= " </FRAMESET>" & @CR

$S_HTML &= "</FRAMESET>" & @CR

$S_HTML &= "</HTML>"

$O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

_IEACTION($O_OBJECT, "refresh")

Local $OFRAMETOP = _IEFRAMEGETOBJBYNAME($O_OBJECT, "Top")

Local $OFRAMEMENU = _IEFRAMEGETOBJBYNAME($O_OBJECT, "Menu")

Local $OFRAMEMAIN = _IEFRAMEGETOBJBYNAME($O_OBJECT, "Main")

_IEBODYWRITEHTML($OFRAMETOP, '$oFrameTop = _IEFrameGetObjByName($oIE, "Top")')

_IEBODYWRITEHTML($OFRAMEMENU, '$oFrameMenu = _IEFrameGetObjByName($oIE, "Menu")')

_IEBODYWRITEHTML($OFRAMEMAIN, '$oFrameMain = _IEFrameGetObjByName($oIE, "Main")')

Case "iframe"

$S_HTML &= "<HTML>" & @CR

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>_IE_Example('iframe')</TITLE>" & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<BODY>" & @CR

$S_HTML &= "<table cellspacing=6 cellpadding=6 border=1>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td><iframe name='iFrameOne' src='about:blank' title='iFrameOne'></iframe></td>" & @CR

$S_HTML &= "<td><iframe name="iFrameOne" src="about:blank" title="iFrameOne"></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "<tr>" & @CR

$S_HTML &= "<td><iframe name='iFrameTwo' src='about:blank' title='iFrameTwo'></iframe></td>" & @CR

$S_HTML &= "<td><iframe name="iFrameTwo" src="about:blank" title="iFrameTwo"></td>" & @CR

$S_HTML &= "</tr>" & @CR

$S_HTML &= "</table>" & @CR

$S_HTML &= "</BODY>" & @CR

$S_HTML &= "</HTML>"

$O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

_IEACTION($O_OBJECT, "refresh")

Local $OIFRAMEONE = _IEFRAMEGETOBJBYNAME($O_OBJECT, "iFrameOne")

Local $OIFRAMETWO = _IEFRAMEGETOBJBYNAME($O_OBJECT, "iFrameTwo")

_IEBODYWRITEHTML($OIFRAMEONE, '$oIFrameOne = _IEFrameGetObjByName($oIE, "iFrameOne")')

_IEBODYWRITEHTML($OIFRAMETWO, '$oIFrameTwo = _IEFrameGetObjByName($oIE, "iFrameTwo")')

Case Else

__IEERRORNOTIFY("Error", "_IE_Example", "$_IEStatus_InvalidValue")

Return SetError($_IESTATUS_INVALIDVALUE, 1, 0)

EndSwitch

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)

EndFunc

 

 

Func _IE_VERSIONINFO()

__IEERRORNOTIFY("Information", "_IE_VersionInfo", "version " & $IEAU3VERSIONINFO[0] & $IEAU3VERSIONINFO[1] & "." & $IEAU3VERSIONINFO[2] & "-" & $IEAU3VERSIONINFO[3], "Release date: " & $IEAU3VERSIONINFO[4])

Return SetError($_IESTATUS_SUCCESS, 0, $IEAU3VERSIONINFO)

EndFunc

 

#EndRegion General

#Region Internal functions

 

Func __IELOCKSETFOREGROUNDWINDOW($NLOCKCODE)

Local $ARET = DllCall("user32.dll", "bool", "LockSetForegroundWindow", "uint", $NLOCKCODE)

If @error Or $ARET[0] Then Return SetError(1, _WINAPI_GETLASTERROR(), 0)

Return $ARET[0]

EndFunc

 

 

Func __IECONTROLGETOBJFROMHWND(ByRef $HWIN)

DllCall("ole32.dll", "long", "CoInitialize", "ptr", 0)

If @error Then Return SetError(2, @error, 0)

Local Const $WM_HTML_GETOBJECT = __IEREGISTERWINDOWMESSAGE("WM_HTML_GETOBJECT")

Local Const $SMTO_ABORTIFHUNG = 2

Local $LRESULT

__IESENDMESSAGETIMEOUT($HWIN, $WM_HTML_GETOBJECT, 0, 0, $SMTO_ABORTIFHUNG, 1000, $LRESULT)

Local $TYPUUID = DllStructCreate("int;short;short;byte[8]")

DllStructSetData($TYPUUID, 1, 1651492128)

DllStructSetData($TYPUUID, 2, 42014)

DllStructSetData($TYPUUID, 3, 4559)

DllStructSetData($TYPUUID, 4, 167, 1)

DllStructSetData($TYPUUID, 4, 49, 2)

DllStructSetData($TYPUUID, 4, 0, 3)

DllStructSetData($TYPUUID, 4, 160, 4)

DllStructSetData($TYPUUID, 4, 201, 5)

DllStructSetData($TYPUUID, 4, 8, 6)

DllStructSetData($TYPUUID, 4, 38, 7)

DllStructSetData($TYPUUID, 4, 55, 8)

Local $ARET = DllCall("oleacc.dll", "long", "ObjectFromLresult", "lresult", $LRESULT, "ptr", DllStructGetPtr($TYPUUID), "wparam", 0, "idispatch*", 0)

If @error Then Return SetError(3, @error, 0)

If IsObj($ARET[4]) Then

Local $OIE = $ARET[4].Script ()

Return $OIE.Document.parentwindow

Else

Return SetError(1, $ARET[0], 0)

EndIf

EndFunc

 

 

Func __IEREGISTERWINDOWMESSAGE($SMSG)

Local $ARET = DllCall("user32.dll", "uint", "RegisterWindowMessageW", "wstr", $SMSG)

If @error Then Return SetError(@error, @extended, 0)

If $ARET[0] = 0 Then Return SetError(10, _WINAPI_GETLASTERROR(), 0)

Return $ARET[0]

EndFunc

 

 

Func __IESENDMESSAGETIMEOUT($HWND, $MSG, $WPARAM, $LPARAM, $NFLAGS, $NTIMEOUT, ByRef $VOUT, $R = 0, $T1 = "int", $T2 = "int")

Local $ARET = DllCall("user32.dll", "lresult", "SendMessageTimeout", "hwnd", $HWND, "uint", $MSG, $T1, $WPARAM, $T2, $LPARAM, "uint", $NFLAGS, "uint", $NTIMEOUT, "dword_ptr*", "")

If @error Or $ARET[0] = 0 Then

$VOUT = 0

Return SetError(1, _WINAPI_GETLASTERROR(), 0)

EndIf

$VOUT = $ARET[7]

If $R >= 0 And $R <= 4 Then Return $ARET[$R]

Return $ARET

EndFunc

 

 

Func __IEISOBJTYPE(ByRef $O_OBJECT, $S_TYPE)

If Not IsObj($O_OBJECT) Then

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

Local $STATUS = __IEINTERNALERRORHANDLERREGISTER()

If Not $STATUS Then __IEERRORNOTIFY("Warning", "internal function __IEIsObjType", "Cannot register internal error handler, cannot trap COM errors", "Use _IEErrorHandlerRegister() to register a user error handler")

Local $F_NOTIFYSTATUS = _IEERRORNOTIFY()

_IEERRORNOTIFY(False)

Local $S_NAME = String(ObjName($O_OBJECT)), $OBJECTOK = False

Switch $S_TYPE

Case "browserdom"

Local $OTEMP = $O_OBJECT.document

If __IEISOBJTYPE($O_OBJECT, "documentcontainer") Then

$OBJECTOK = True

ElseIf __IEISOBJTYPE($O_OBJECT, "document") Then

$OBJECTOK = True

ElseIf __IEISOBJTYPE($OTEMP, "document") Then

$OBJECTOK = True

EndIf

Case "browser"

If ($S_NAME = "IWebBrowser2") Or ($S_NAME = "IWebBrowser") Then $OBJECTOK = True

Case "window"

If $S_NAME = "DispHTMLWindow2" Then $OBJECTOK = True

Case "documentContainer"

If __IEISOBJTYPE($O_OBJECT, "window") Or __IEISOBJTYPE($O_OBJECT, "browser") Then $OBJECTOK = True

Case "document"

If $S_NAME = "DispHTMLDocument" Then $OBJECTOK = True

Case "table"

If $S_NAME = "DispHTMLTable" Then $OBJECTOK = True

Case "form"

If $S_NAME = "DispHTMLFormElement" Then $OBJECTOK = True

Case "forminputelement"

If ($S_NAME = "DispHTMLInputElement") Or ($S_NAME = "DispHTMLSelectElement") Or ($S_NAME = "DispHTMLTextAreaElement") Then $OBJECTOK = True

Case "elementcollection"

If ($S_NAME = "DispHTMLElementCollection") Then $OBJECTOK = True

Case "formselectelement"

If $S_NAME = "DispHTMLSelectElement" Then $OBJECTOK = True

Case Else

Return SetError($_IESTATUS_INVALIDVALUE, 2, 0)

EndSwitch

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

If $OBJECTOK Then

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Else

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

EndFunc

 

 

Func __IEERRORNOTIFY($S_SEVERITY, $S_FUNC, $S_STATUS = "", $S_MESSAGE = "")

If $_IEERRORNOTIFY Or $__IEAU3DEBUG Then

Local $SSTR = "--> IE.au3 " & $IEAU3VERSIONINFO[5] & " " & $S_SEVERITY & " from function " & $S_FUNC

If Not String($S_STATUS) = "" Then $SSTR &= ", " & $S_STATUS

If Not String($S_MESSAGE) = "" Then $SSTR &= " (" & $S_MESSAGE & ")"

ConsoleWrite($SSTR & @CRLF)

EndIf

Return 1

EndFunc

 

 

Func __IEINTERNALERRORHANDLERREGISTER()

Local $SCURRENTERRORHANDLER = ObjEvent("AutoIt.Error")

If $SCURRENTERRORHANDLER <> "" And Not IsObj($OIEERRORHANDLER) Then

Return SetError($_IESTATUS_GENERALERROR, 0, 0)

EndIf

$OIEERRORHANDLER = ""

$OIEERRORHANDLER = ObjEvent("AutoIt.Error", "__IEInternalErrorHandler")

If IsObj($OIEERRORHANDLER) Then

Return SetError($_IESTATUS_SUCCESS, 0, 1)

Else

Return SetError($_IESTATUS_GENERALERROR, 0, 0)

EndIf

EndFunc

 

 

Func __IEINTERNALERRORHANDLERDEREGISTER()

$OIEERRORHANDLER = ""

If $SIEUSERERRORHANDLER <> "" Then

$OIEERRORHANDLER = ObjEvent("AutoIt.Error", $SIEUSERERRORHANDLER)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, 1)

EndFunc

 

 

Func __IEINTERNALERRORHANDLER()

$IECOMERRORSCRIPTLINE = $OIEERRORHANDLER.scriptline

$IECOMERRORNUMBER = $OIEERRORHANDLER.number

$IECOMERRORNUMBERHEX = Hex($OIEERRORHANDLER.number, 8)

$IECOMERRORDESCRIPTION = StringStripWS($OIEERRORHANDLER.description, 2)

$IECOMERRORWINDESCRIPTION = StringStripWS($OIEERRORHANDLER.WinDescription, 2)

$IECOMERRORSOURCE = $OIEERRORHANDLER.Source

$IECOMERRORHELPFILE = $OIEERRORHANDLER.HelpFile

$IECOMERRORHELPCONTEXT = $OIEERRORHANDLER.HelpContext

$IECOMERRORLASTDLLERROR = $OIEERRORHANDLER.LastDllError

$IECOMERROROUTPUT = ""

$IECOMERROROUTPUT &= "--> COM Error Encountered in " & @ScriptName & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorScriptline = " & $IECOMERRORSCRIPTLINE & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorNumberHex = " & $IECOMERRORNUMBERHEX & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorNumber = " & $IECOMERRORNUMBER & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorWinDescription = " & $IECOMERRORWINDESCRIPTION & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorDescription = " & $IECOMERRORDESCRIPTION & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorSource = " & $IECOMERRORSOURCE & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorHelpFile = " & $IECOMERRORHELPFILE & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorHelpContext = " & $IECOMERRORHELPCONTEXT & @CRLF

$IECOMERROROUTPUT &= "----> $IEComErrorLastDllError = " & $IECOMERRORLASTDLLERROR & @CRLF

If $_IEERRORNOTIFY Or $__IEAU3DEBUG Then ConsoleWrite($IECOMERROROUTPUT & @CRLF)

SetError($_IESTATUS_COMERROR)

Return

EndFunc

 

 

Func __IECOMERRORUNRECOVERABLE()

Select

Case ($IECOMERRORNUMBER = -2147352567) Or (String($IECOMERRORDESCRIPTION) = "Access is denied.")

Return $_IESTATUS_ACCESSISDENIED

Case ($IECOMERRORNUMBER = -2147417848) Or (String($IECOMERRORWINDESCRIPTION) = "The object invoked has disconnected from its clients.")

Return $_IESTATUS_CLIENTDISCONNECTED

Case Else

Return $_IESTATUS_SUCCESS

EndSelect

EndFunc

 

#EndRegion Internal functions

#Region ProtoType Functions

 

Func __IENAVIGATE(ByRef $O_OBJECT, $S_URL, $F_WAIT = 1, $I_FLAGS = 0, $S_TARGET = "", $S_POSTDATA = "", $S_HEADERS = "")

__IEERRORNOTIFY("Warning", "__IENavigate", "Unsupported function called. Not fully tested.")

If Not IsObj($O_OBJECT) Then

__IEERRORNOTIFY("Error", "__IENavigate", "$_IEStatus_InvalidDataType")

Return SetError($_IESTATUS_INVALIDDATATYPE, 1, 0)

EndIf

If Not __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

__IEERRORNOTIFY("Error", "__IENavigate", "$_IEStatus_InvalidObjectType")

Return SetError($_IESTATUS_INVALIDOBJECTTYPE, 1, 0)

EndIf

$O_OBJECT.navigate ($S_URL, $I_FLAGS, $S_TARGET, $S_POSTDATA, $S_HEADERS)

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

Return SetError(@error, 0, $O_OBJECT)

EndIf

Return SetError($_IESTATUS_SUCCESS, 0, $O_OBJECT)

EndFunc

 

 

Func __IESTRINGTOBSTR($S_STRING, $S_CHARSET = "us-ascii")

Local Const $ADTYPEBINARY = 1, $ADTYPETEXT = 2

Local $O_STREAM = ObjCreate("ADODB.Stream")

$O_STREAM.Type = $ADTYPETEXT

$O_STREAM.CharSet = $S_CHARSET

$O_STREAM.Open

$O_STREAM.WriteText ($S_STRING)

$O_STREAM.Position = 0

$O_STREAM.Type = $ADTYPEBINARY

$O_STREAM.Position = 0

Return $O_STREAM.Read

EndFunc

 

 

Func __IEBSTRTOSTRING($O_BSTR, $S_CHARSET = "us-ascii")

Local Const $ADTYPEBINARY = 1, $ADTYPETEXT = 2

Local $O_STREAM = ObjCreate("ADODB.Stream")

$O_STREAM.Type = $ADTYPEBINARY

$O_STREAM.Open

$O_STREAM.Write ($O_BSTR)

$O_STREAM.Position = 0

$O_STREAM.Type = $ADTYPETEXT

$O_STREAM.CharSet = $S_CHARSET

$O_STREAM.Position = 0

Return $O_STREAM.ReadText

EndFunc

 

 

Func __IECREATENEWIE($S_TITLE, $S_HEAD = "", $S_BODY = "")

Local $S_TEMP = __IETEMPFILE("", "~IE~", ".htm")

If @error Then

__IEERRORNOTIFY("Error", "_IECreateHTA", "", "Error creating temporary file in @TempDir or @ScriptDir")

Return SetError($_IESTATUS_GENERALERROR, 1, 0)

EndIf

Local $S_HTML = ""

$S_HTML &= "<HTML>" & @CR

$S_HTML &= "<HEAD>" & @CR

$S_HTML &= "<TITLE>" & $S_TEMP & "</TITLE>" & @CR & $S_HEAD & @CR

$S_HTML &= "</HEAD>" & @CR

$S_HTML &= "<BODY>" & @CR & $S_BODY & @CR

$S_HTML &= "</BODY>" & @CR

$S_HTML &= "</HTML>"

Local $H_FILE = FileOpen($S_TEMP, 2)

FileWrite($H_FILE, $S_HTML)

FileClose($H_FILE)

If @error Then

__IEERRORNOTIFY("Error", "_IECreateNewIE", "", "Error creating temporary file in @TempDir or @ScriptDir")

Return SetError($_IESTATUS_GENERALERROR, 2, 0)

EndIf

Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & $S_TEMP)

Local $S_PID

If WinWait($S_TEMP, "", 60) Then

$S_PID = WinGetProcess($S_TEMP)

Else

__IEERRORNOTIFY("Error", "_IECreateNewIE", "", "Timeout waiting for new IE window creation")

Return SetError($_IESTATUS_GENERALERROR, 3, 0)

EndIf

If Not FileDelete($S_TEMP) Then

__IEERRORNOTIFY("Warning", "_IECreateNewIE", "", "Could not delete temporary file " & FileGetLongName($S_TEMP))

EndIf

Local $O_OBJECT = _IEATTACH($S_TEMP)

_IELOADWAIT($O_OBJECT)

_IEPROPERTYSET($O_OBJECT, "title", $S_TITLE)

Return SetError($_IESTATUS_SUCCESS, $S_PID, $O_OBJECT)

EndFunc

 

 

Func __IETEMPFILE($S_DIRECTORYNAME = @TempDir, $S_FILEPREFIX = "~", $S_FILEEXTENSION = ".tmp", $I_RANDOMLENGTH = 7)

Local $S_TEMPNAME, $I_TMP = 0

If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @TempDir

If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @ScriptDir

If StringRight($S_DIRECTORYNAME, 1) <> "\" Then $S_DIRECTORYNAME = $S_DIRECTORYNAME & "\"

Do

$S_TEMPNAME = ""

While StringLen($S_TEMPNAME) < $I_RANDOMLENGTH

$S_TEMPNAME = $S_TEMPNAME & Chr(Random(97, 122, 1))

WEnd

$S_TEMPNAME = $S_DIRECTORYNAME & $S_FILEPREFIX & $S_TEMPNAME & $S_FILEEXTENSION

$I_TMP += 1

If $I_TMP > 200 Then

Return SetError($_IESTATUS_GENERALERROR, 1, 0)

EndIf

Until Not FileExists($S_TEMPNAME)

Return $S_TEMPNAME

EndFunc

 

#EndRegion ProtoType Functions

Global Const $WS_TILED = 0

Global Const $WS_OVERLAPPED = 0

Global Const $WS_MAXIMIZEBOX = 65536

Global Const $WS_MINIMIZEBOX = 131072

Global Const $WS_TABSTOP = 65536

Global Const $WS_GROUP = 131072

Global Const $WS_SIZEBOX = 262144

Global Const $WS_THICKFRAME = 262144

Global Const $WS_SYSMENU = 524288

Global Const $WS_HSCROLL = 1048576

Global Const $WS_VSCROLL = 2097152

Global Const $WS_DLGFRAME = 4194304

Global Const $WS_BORDER = 8388608

Global Const $WS_CAPTION = 12582912

Global Const $WS_OVERLAPPEDWINDOW = 13565952

Global Const $WS_TILEDWINDOW = 13565952

Global Const $WS_MAXIMIZE = 16777216

Global Const $WS_CLIPCHILDREN = 33554432

Global Const $WS_CLIPSIBLINGS = 67108864

Global Const $WS_DISABLED = 134217728

Global Const $WS_VISIBLE = 268435456

Global Const $WS_MINIMIZE = 536870912

Global Const $WS_CHILD = 1073741824

Global Const $WS_POPUP = -2147483648

Global Const $WS_POPUPWINDOW = -2138570752

Global Const $DS_MODALFRAME = 128

Global Const $DS_SETFOREGROUND = 512

Global Const $DS_CONTEXTHELP = 8192

Global Const $WS_EX_ACCEPTFILES = 16

Global Const $WS_EX_MDICHILD = 64

Global Const $WS_EX_APPWINDOW = 262144

Global Const $WS_EX_COMPOSITED = 33554432

Global Const $WS_EX_CLIENTEDGE = 512

Global Const $WS_EX_CONTEXTHELP = 1024

Global Const $WS_EX_DLGMODALFRAME = 1

Global Const $WS_EX_LEFTSCROLLBAR = 16384

Global Const $WS_EX_OVERLAPPEDWINDOW = 768

Global Const $WS_EX_RIGHT = 4096

Global Const $WS_EX_STATICEDGE = 131072

Global Const $WS_EX_TOOLWINDOW = 128

Global Const $WS_EX_TOPMOST = 8

Global Const $WS_EX_TRANSPARENT = 32

Global Const $WS_EX_WINDOWEDGE = 256

Global Const $WS_EX_LAYERED = 524288

Global Const $WS_EX_CONTROLPARENT = 65536

Global Const $WS_EX_LAYOUTRTL = 4194304

Global Const $WS_EX_RTLREADING = 8192

Global Const $WM_GETTEXTLENGTH = 14

Global Const $WM_GETTEXT = 13

Global Const $WM_SIZE = 5

Global Const $WM_SIZING = 532

Global Const $WM_USER = 1024

Global Const $WM_CREATE = 1

Global Const $WM_DESTROY = 2

Global Const $WM_MOVE = 3

Global Const $WM_ACTIVATE = 6

Global Const $WM_SETFOCUS = 7

Global Const $WM_KILLFOCUS = 8

Global Const $WM_ENABLE = 10

Global Const $WM_SETREDRAW = 11

Global Const $WM_SETTEXT = 12

Global Const $WM_PAINT = 15

Global Const $WM_CLOSE = 16

Global Const $WM_QUIT = 18

Global Const $WM_ERASEBKGND = 20

Global Const $WM_SYSCOLORCHANGE = 21

Global Const $WM_SHOWWINDOW = 24

Global Const $WM_WININICHANGE = 26

Global Const $WM_DEVMODECHANGE = 27

Global Const $WM_ACTIVATEAPP = 28

Global Const $WM_FONTCHANGE = 29

Global Const $WM_TIMECHANGE = 30

Global Const $WM_CANCELMODE = 31

Global Const $WM_SETCURSOR = 32

Global Const $WM_MOUSEACTIVATE = 33

Global Const $WM_CHILDACTIVATE = 34

Global Const $WM_QUEUESYNC = 35

Global Const $WM_GETMINMAXINFO = 36

Global Const $WM_PAINTICON = 38

Global Const $WM_ICONERASEBKGND = 39

Global Const $WM_NEXTDLGCTL = 40

Global Const $WM_SPOOLERSTATUS = 42

Global Const $WM_DRAWITEM = 43

Global Const $WM_MEASUREITEM = 44

Global Const $WM_DELETEITEM = 45

Global Const $WM_VKEYTOITEM = 46

Global Const $WM_CHARTOITEM = 47

Global Const $WM_SETFONT = 48

Global Const $WM_GETFONT = 49

Global Const $WM_SETHOTKEY = 50

Global Const $WM_GETHOTKEY = 51

Global Const $WM_QUERYDRAGICON = 55

Global Const $WM_COMPAREITEM = 57

Global Const $WM_GETOBJECT = 61

Global Const $WM_COMPACTING = 65

Global Const $WM_COMMNOTIFY = 68

Global Const $WM_WINDOWPOSCHANGING = 70

Global Const $WM_WINDOWPOSCHANGED = 71

Global Const $WM_POWER = 72

Global Const $WM_NOTIFY = 78

Global Const $WM_COPYDATA = 74

Global Const $WM_CANCELJOURNAL = 75

Global Const $WM_INPUTLANGCHANGEREQUEST = 80

Global Const $WM_INPUTLANGCHANGE = 81

Global Const $WM_TCARD = 82

Global Const $WM_HELP = 83

Global Const $WM_USERCHANGED = 84

Global Const $WM_NOTIFYFORMAT = 85

Global Const $WM_CUT = 768

Global Const $WM_COPY = 769

Global Const $WM_PASTE = 770

Global Const $WM_CLEAR = 771

Global Const $WM_UNDO = 772

Global Const $WM_CONTEXTMENU = 123

Global Const $WM_STYLECHANGING = 124

Global Const $WM_STYLECHANGED = 125

Global Const $WM_DISPLAYCHANGE = 126

Global Const $WM_GETICON = 127

Global Const $WM_SETICON = 128

Global Const $WM_NCCREATE = 129

Global Const $WM_NCDESTROY = 130

Global Const $WM_NCCALCSIZE = 131

Global Const $WM_NCHITTEST = 132

Global Const $WM_NCPAINT = 133

Global Const $WM_NCACTIVATE = 134

Global Const $WM_GETDLGCODE = 135

Global Const $WM_SYNCPAINT = 136

Global Const $WM_NCMOUSEMOVE = 160

Global Const $WM_NCLBUTTONDOWN = 161

Global Const $WM_NCLBUTTONUP = 162

Global Const $WM_NCLBUTTONDBLCLK = 163

Global Const $WM_NCRBUTTONDOWN = 164

Global Const $WM_NCRBUTTONUP = 165

Global Const $WM_NCRBUTTONDBLCLK = 166

Global Const $WM_NCMBUTTONDOWN = 167

Global Const $WM_NCMBUTTONUP = 168

Global Const $WM_NCMBUTTONDBLCLK = 169

Global Const $WM_KEYDOWN = 256

Global Const $WM_KEYUP = 257

Global Const $WM_CHAR = 258

Global Const $WM_DEADCHAR = 259

Global Const $WM_SYSKEYDOWN = 260

Global Const $WM_SYSKEYUP = 261

Global Const $WM_SYSCHAR = 262

Global Const $WM_SYSDEADCHAR = 263

Global Const $WM_INITDIALOG = 272

Global Const $WM_COMMAND = 273

Global Const $WM_SYSCOMMAND = 274

Global Const $WM_TIMER = 275

Global Const $WM_HSCROLL = 276

Global Const $WM_VSCROLL = 277

Global Const $WM_INITMENU = 278

Global Const $WM_INITMENUPOPUP = 279

Global Const $WM_MENUSELECT = 287

Global Const $WM_MENUCHAR = 288

Global Const $WM_ENTERIDLE = 289

Global Const $WM_MENURBUTTONUP = 290

Global Const $WM_MENUDRAG = 291

Global Const $WM_MENUGETOBJECT = 292

Global Const $WM_UNINITMENUPOPUP = 293

Global Const $WM_MENUCOMMAND = 294

Global Const $WM_CHANGEUISTATE = 295

Global Const $WM_UPDATEUISTATE = 296

Global Const $WM_QUERYUISTATE = 297

Global Const $WM_CTLCOLORMSGBOX = 306

Global Const $WM_CTLCOLOREDIT = 307

Global Const $WM_CTLCOLORLISTBOX = 308

Global Const $WM_CTLCOLORBTN = 309

Global Const $WM_CTLCOLORDLG = 310

Global Const $WM_CTLCOLORSCROLLBAR = 311

Global Const $WM_CTLCOLORSTATIC = 312

Global Const $WM_CTLCOLOR = 25

Global Const $MN_GETHMENU = 481

Global Const $NM_FIRST = 0

Global Const $NM_OUTOFMEMORY = $NM_FIRST - 1

Global Const $NM_CLICK = $NM_FIRST - 2

Global Const $NM_DBLCLK = $NM_FIRST - 3

Global Const $NM_RETURN = $NM_FIRST - 4

Global Const $NM_RCLICK = $NM_FIRST - 5

Global Const $NM_RDBLCLK = $NM_FIRST - 6

Global Const $NM_SETFOCUS = $NM_FIRST - 7

Global Const $NM_KILLFOCUS = $NM_FIRST - 8

Global Const $NM_CUSTOMDRAW = $NM_FIRST - 12

Global Const $NM_HOVER = $NM_FIRST - 13

Global Const $NM_NCHITTEST = $NM_FIRST - 14

Global Const $NM_KEYDOWN = $NM_FIRST - 15

Global Const $NM_RELEASEDCAPTURE = $NM_FIRST - 16

Global Const $NM_SETCURSOR = $NM_FIRST - 17

Global Const $NM_CHAR = $NM_FIRST - 18

Global Const $NM_TOOLTIPSCREATED = $NM_FIRST - 19

Global Const $NM_LDOWN = $NM_FIRST - 20

Global Const $NM_RDOWN = $NM_FIRST - 21

Global Const $NM_THEMECHANGED = $NM_FIRST - 22

Global Const $WM_MOUSEMOVE = 512

Global Const $WM_LBUTTONDOWN = 513

Global Const $WM_LBUTTONUP = 514

Global Const $WM_LBUTTONDBLCLK = 515

Global Const $WM_RBUTTONDOWN = 516

Global Const $WM_RBUTTONUP = 517

Global Const $WM_RBUTTONDBLCK = 518

Global Const $WM_MBUTTONDOWN = 519

Global Const $WM_MBUTTONUP = 520

Global Const $WM_MBUTTONDBLCK = 521

Global Const $WM_MOUSEWHEEL = 522

Global Const $WM_XBUTTONDOWN = 523

Global Const $WM_XBUTTONUP = 524

Global Const $WM_XBUTTONDBLCLK = 525

Global Const $WM_MOUSEHWHEEL = 526

Global Const $PS_SOLID = 0

Global Const $PS_DASH = 1

Global Const $PS_DOT = 2

Global Const $PS_DASHDOT = 3

Global Const $PS_DASHDOTDOT = 4

Global Const $PS_NULL = 5

Global Const $PS_INSIDEFRAME = 6

Global Const $LWA_ALPHA = 2

Global Const $LWA_COLORKEY = 1

Global Const $RGN_AND = 1

Global Const $RGN_OR = 2

Global Const $RGN_XOR = 3

Global Const $RGN_DIFF = 4

Global Const $RGN_COPY = 5

Global Const $ERRORREGION = 0

Global Const $NULLREGION = 1

Global Const $SIMPLEREGION = 2

Global Const $COMPLEXREGION = 3

Global Const $TRANSPARENT = 1

Global Const $OPAQUE = 2

Global Const $CCM_FIRST = 8192

Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)

Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)

Global Const $CCM_SETBKCOLOR = $CCM_FIRST + 1

Global Const $CCM_SETCOLORSCHEME = $CCM_FIRST + 2

Global Const $CCM_GETCOLORSCHEME = $CCM_FIRST + 3

Global Const $CCM_GETDROPTARGET = $CCM_FIRST + 4

Global Const $CCM_SETWINDOWTHEME = $CCM_FIRST + 11

Global Const $GA_PARENT = 1

Global Const $GA_ROOT = 2

Global Const $GA_ROOTOWNER = 3

Global Const $SM_CXSCREEN = 0

Global Const $SM_CYSCREEN = 1

Global Const $SM_CXVSCROLL = 2

Global Const $SM_CYHSCROLL = 3

Global Const $SM_CYCAPTION = 4

Global Const $SM_CXBORDER = 5

Global Const $SM_CYBORDER = 6

Global Const $SM_CXDLGFRAME = 7

Global Const $SM_CYDLGFRAME = 8

Global Const $SM_CYVTHUMB = 9

Global Const $SM_CXHTHUMB = 10

Global Const $SM_CXICON = 11

Global Const $SM_CYICON = 12

Global Const $SM_CXCURSOR = 13

Global Const $SM_CYCURSOR = 14

Global Const $SM_CYMENU = 15

Global Const $SM_CXFULLSCREEN = 16

Global Const $SM_CYFULLSCREEN = 17

Global Const $SM_CYKANJIWINDOW = 18

Global Const $SM_MOUSEPRESENT = 19

Global Const $SM_CYVSCROLL = 20

Global Const $SM_CXHSCROLL = 21

Global Const $SM_DEBUG = 22

Global Const $SM_SWAPBUTTON = 23

Global Const $SM_RESERVED1 = 24

Global Const $SM_RESERVED2 = 25

Global Const $SM_RESERVED3 = 26

Global Const $SM_RESERVED4 = 27

Global Const $SM_CXMIN = 28

Global Const $SM_CYMIN = 29

Global Const $SM_CXSIZE = 30

Global Const $SM_CYSIZE = 31

Global Const $SM_CXFRAME = 32

Global Const $SM_CYFRAME = 33

Global Const $SM_CXMINTRACK = 34

Global Const $SM_CYMINTRACK = 35

Global Const $SM_CXDOUBLECLK = 36

Global Const $SM_CYDOUBLECLK = 37

Global Const $SM_CXICONSPACING = 38

Global Const $SM_CYICONSPACING = 39

Global Const $SM_MENUDROPALIGNMENT = 40

Global Const $SM_PENWINDOWS = 41

Global Const $SM_DBCSENABLED = 42

Global Const $SM_CMOUSEBUTTONS = 43

Global Const $SM_SECURE = 44

Global Const $SM_CXEDGE = 45

Global Const $SM_CYEDGE = 46

Global Const $SM_CXMINSPACING = 47

Global Const $SM_CYMINSPACING = 48

Global Const $SM_CXSMICON = 49

Global Const $SM_CYSMICON = 50

Global Const $SM_CYSMCAPTION = 51

Global Const $SM_CXSMSIZE = 52

Global Const $SM_CYSMSIZE = 53

Global Const $SM_CXMENUSIZE = 54

Global Const $SM_CYMENUSIZE = 55

Global Const $SM_ARRANGE = 56

Global Const $SM_CXMINIMIZED = 57

Global Const $SM_CYMINIMIZED = 58

Global Const $SM_CXMAXTRACK = 59

Global Const $SM_CYMAXTRACK = 60

Global Const $SM_CXMAXIMIZED = 61

Global Const $SM_CYMAXIMIZED = 62

Global Const $SM_NETWORK = 63

Global Const $SM_CLEANBOOT = 67

Global Const $SM_CXDRAG = 68

Global Const $SM_CYDRAG = 69

Global Const $SM_SHOWSOUNDS = 70

Global Const $SM_CXMENUCHECK = 71

Global Const $SM_CYMENUCHECK = 72

Global Const $SM_SLOWMACHINE = 73

Global Const $SM_MIDEASTENABLED = 74

Global Const $SM_MOUSEWHEELPRESENT = 75

Global Const $SM_XVIRTUALSCREEN = 76

Global Const $SM_YVIRTUALSCREEN = 77

Global Const $SM_CXVIRTUALSCREEN = 78

Global Const $SM_CYVIRTUALSCREEN = 79

Global Const $SM_CMONITORS = 80

Global Const $SM_SAMEDISPLAYFORMAT = 81

Global Const $SM_IMMENABLED = 82

Global Const $SM_CXFOCUSBORDER = 83

Global Const $SM_CYFOCUSBORDER = 84

Global Const $SM_TABLETPC = 86

Global Const $SM_MEDIACENTER = 87

Global Const $SM_STARTER = 88

Global Const $SM_SERVERR2 = 89

Global Const $SM_CMETRICS = 90

Global Const $SM_REMOTESESSION = 4096

Global Const $SM_SHUTTINGDOWN = 8192

Global Const $SM_REMOTECONTROL = 8193

Global Const $SM_CARETBLINKINGENABLED = 8194

Global Const $BLACKNESS = 66

Global Const $CAPTUREBLT = 1073741824

Global Const $DSTINVERT = 5570569

Global Const $MERGECOPY = 12583114

Global Const $MERGEPAINT = 12255782

Global Const $NOMIRRORBITMAP = -2147483648

Global Const $NOTSRCCOPY = 3342344

Global Const $NOTSRCERASE = 1114278

Global Const $PATCOPY = 15728673

Global Const $PATINVERT = 5898313

Global Const $PATPAINT = 16452105

Global Const $SRCAND = 8913094

Global Const $SRCCOPY = 13369376

Global Const $SRCERASE = 4457256

Global Const $SRCINVERT = 6684742

Global Const $SRCPAINT = 15597702

Global Const $WHITENESS = 16711778

Global Const $DT_BOTTOM = 8

Global Const $DT_CALCRECT = 1024

Global Const $DT_CENTER = 1

Global Const $DT_EDITCONTROL = 8192

Global Const $DT_END_ELLIPSIS = 32768

Global Const $DT_EXPANDTABS = 64

Global Const $DT_EXTERNALLEADING = 512

Global Const $DT_HIDEPREFIX = 1048576

Global Const $DT_INTERNAL = 4096

Global Const $DT_LEFT = 0

Global Const $DT_MODIFYSTRING = 65536

Global Const $DT_NOCLIP = 256

Global Const $DT_NOFULLWIDTHCHARBREAK = 524288

Global Const $DT_NOPREFIX = 2048

Global Const $DT_PATH_ELLIPSIS = 16384

Global Const $DT_PREFIXONLY = 2097152

Global Const $DT_RIGHT = 2

Global Const $DT_RTLREADING = 131072

Global Const $DT_SINGLELINE = 32

Global Const $DT_TABSTOP = 128

Global Const $DT_TOP = 0

Global Const $DT_VCENTER = 4

Global Const $DT_WORDBREAK = 16

Global Const $DT_WORD_ELLIPSIS = 262144

Global Const $RDW_ERASE = 4

Global Const $RDW_FRAME = 1024

Global Const $RDW_INTERNALPAINT = 2

Global Const $RDW_INVALIDATE = 1

Global Const $RDW_NOERASE = 32

Global Const $RDW_NOFRAME = 2048

Global Const $RDW_NOINTERNALPAINT = 16

Global Const $RDW_VALIDATE = 8

Global Const $RDW_ERASENOW = 512

Global Const $RDW_UPDATENOW = 256

Global Const $RDW_ALLCHILDREN = 128

Global Const $RDW_NOCHILDREN = 64

Global Const $WM_RENDERFORMAT = 773

Global Const $WM_RENDERALLFORMATS = 774

Global Const $WM_DESTROYCLIPBOARD = 775

Global Const $WM_DRAWCLIPBOARD = 776

Global Const $WM_PAINTCLIPBOARD = 777

Global Const $WM_VSCROLLCLIPBOARD = 778

Global Const $WM_SIZECLIPBOARD = 779

Global Const $WM_ASKCBFORMATNAME = 780

Global Const $WM_CHANGECBCHAIN = 781

Global Const $WM_HSCROLLCLIPBOARD = 782

Global Const $HTERROR = -2

Global Const $HTTRANSPARENT = -1

Global Const $HTNOWHERE = 0

Global Const $HTCLIENT = 1

Global Const $HTCAPTION = 2

Global Const $HTSYSMENU = 3

Global Const $HTGROWBOX = 4

Global Const $HTSIZE = $HTGROWBOX

Global Const $HTMENU = 5

Global Const $HTHSCROLL = 6

Global Const $HTVSCROLL = 7

Global Const $HTMINBUTTON = 8

Global Const $HTMAXBUTTON = 9

Global Const $HTLEFT = 10

Global Const $HTRIGHT = 11

Global Const $HTTOP = 12

Global Const $HTTOPLEFT = 13

Global Const $HTTOPRIGHT = 14

Global Const $HTBOTTOM = 15

Global Const $HTBOTTOMLEFT = 16

Global Const $HTBOTTOMRIGHT = 17

Global Const $HTBORDER = 18

Global Const $HTREDUCE = $HTMINBUTTON

Global Const $HTZOOM = $HTMAXBUTTON

Global Const $HTSIZEFIRST = $HTLEFT

Global Const $HTSIZELAST = $HTBOTTOMRIGHT

Global Const $HTOBJECT = 19

Global Const $HTCLOSE = 20

Global Const $HTHELP = 21

Global Const $COLOR_SCROLLBAR = 0

Global Const $COLOR_BACKGROUND = 1

Global Const $COLOR_ACTIVECAPTION = 2

Global Const $COLOR_INACTIVECAPTION = 3

Global Const $COLOR_MENU = 4

Global Const $COLOR_WINDOW = 5

Global Const $COLOR_WINDOWFRAME = 6

Global Const $COLOR_MENUTEXT = 7

Global Const $COLOR_WINDOWTEXT = 8

Global Const $COLOR_CAPTIONTEXT = 9

Global Const $COLOR_ACTIVEBORDER = 10

Global Const $COLOR_INACTIVEBORDER = 11

Global Const $COLOR_APPWORKSPACE = 12

Global Const $COLOR_HIGHLIGHT = 13

Global Const $COLOR_HIGHLIGHTTEXT = 14

Global Const $COLOR_BTNFACE = 15

Global Const $COLOR_BTNSHADOW = 16

Global Const $COLOR_GRAYTEXT = 17

Global Const $COLOR_BTNTEXT = 18

Global Const $COLOR_INACTIVECAPTIONTEXT = 19

Global Const $COLOR_BTNHIGHLIGHT = 20

Global Const $COLOR_3DDKSHADOW = 21

Global Const $COLOR_3DLIGHT = 22

Global Const $COLOR_INFOTEXT = 23

Global Const $COLOR_INFOBK = 24

Global Const $COLOR_HOTLIGHT = 26

Global Const $COLOR_GRADIENTACTIVECAPTION = 27

Global Const $COLOR_GRADIENTINACTIVECAPTION = 28

Global Const $COLOR_MENUHILIGHT = 29

Global Const $COLOR_MENUBAR = 30

Global Const $COLOR_DESKTOP = 1

Global Const $COLOR_3DFACE = 15

Global Const $COLOR_3DSHADOW = 16

Global Const $COLOR_3DHIGHLIGHT = 20

Global Const $COLOR_3DHILIGHT = 20

Global Const $COLOR_BTNHILIGHT = 20

Global Const $HINST_COMMCTRL = -1

Global Const $IDB_STD_SMALL_COLOR = 0

Global Const $IDB_STD_LARGE_COLOR = 1

Global Const $IDB_VIEW_SMALL_COLOR = 4

Global Const $IDB_VIEW_LARGE_COLOR = 5

Global Const $IDB_HIST_SMALL_COLOR = 8

Global Const $IDB_HIST_LARGE_COLOR = 9

Global Const $STARTF_FORCEOFFFEEDBACK = 128

Global Const $STARTF_FORCEONFEEDBACK = 64

Global Const $STARTF_RUNFULLSCREEN = 32

Global Const $STARTF_USECOUNTCHARS = 8

Global Const $STARTF_USEFILLATTRIBUTE = 16

Global Const $STARTF_USEHOTKEY = 512

Global Const $STARTF_USEPOSITION = 4

Global Const $STARTF_USESHOWWINDOW = 1

Global Const $STARTF_USESIZE = 2

Global Const $STARTF_USESTDHANDLES = 256

Global Const $CDDS_PREPAINT = 1

Global Const $CDDS_POSTPAINT = 2

Global Const $CDDS_PREERASE = 3

Global Const $CDDS_POSTERASE = 4

Global Const $CDDS_ITEM = 65536

Global Const $CDDS_ITEMPREPAINT = 65537

Global Const $CDDS_ITEMPOSTPAINT = 65538

Global Const $CDDS_ITEMPREERASE = 65539

Global Const $CDDS_ITEMPOSTERASE = 65540

Global Const $CDDS_SUBITEM = 131072

Global Const $CDIS_SELECTED = 1

Global Const $CDIS_GRAYED = 2

Global Const $CDIS_DISABLED = 4

Global Const $CDIS_CHECKED = 8

Global Const $CDIS_FOCUS = 16

Global Const $CDIS_DEFAULT = 32

Global Const $CDIS_HOT = 64

Global Const $CDIS_MARKED = 128

Global Const $CDIS_INDETERMINATE = 256

Global Const $CDIS_SHOWKEYBOARDCUES = 512

Global Const $CDIS_NEARHOT = 1024

Global Const $CDIS_OTHERSIDEHOT = 2048

Global Const $CDIS_DROPHILITED = 4096

Global Const $CDRF_DODEFAULT = 0

Global Const $CDRF_NEWFONT = 2

Global Const $CDRF_SKIPDEFAULT = 4

Global Const $CDRF_NOTIFYPOSTPAINT = 16

Global Const $CDRF_NOTIFYITEMDRAW = 32

Global Const $CDRF_NOTIFYSUBITEMDRAW = 32

Global Const $CDRF_NOTIFYPOSTERASE = 64

Global Const $CDRF_DOERASE = 8

Global Const $CDRF_SKIPPOSTPAINT = 256

Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)

Global Const $BS_GROUPBOX = 7

Global Const $BS_BOTTOM = 2048

Global Const $BS_CENTER = 768

Global Const $BS_DEFPUSHBUTTON = 1

Global Const $BS_LEFT = 256

Global Const $BS_MULTILINE = 8192

Global Const $BS_PUSHBOX = 10

Global Const $BS_PUSHLIKE = 4096

Global Const $BS_RIGHT = 512

Global Const $BS_RIGHTBUTTON = 32

Global Const $BS_TOP = 1024

Global Const $BS_VCENTER = 3072

Global Const $BS_FLAT = 32768

Global Const $BS_ICON = 64

Global Const $BS_BITMAP = 128

Global Const $BS_NOTIFY = 16384

Global Const $BS_SPLITBUTTON = 12

Global Const $BS_DEFSPLITBUTTON = 13

Global Const $BS_COMMANDLINK = 14

Global Const $BS_DEFCOMMANDLINK = 15

Global Const $BCSIF_GLYPH = 1

Global Const $BCSIF_IMAGE = 2

Global Const $BCSIF_STYLE = 4

Global Const $BCSIF_SIZE = 8

Global Const $BCSS_NOSPLIT = 1

Global Const $BCSS_STRETCH = 2

Global Const $BCSS_ALIGNLEFT = 4

Global Const $BCSS_IMAGE = 8

Global Const $BUTTON_IMAGELIST_ALIGN_LEFT = 0

Global Const $BUTTON_IMAGELIST_ALIGN_RIGHT = 1

Global Const $BUTTON_IMAGELIST_ALIGN_TOP = 2

Global Const $BUTTON_IMAGELIST_ALIGN_BOTTOM = 3

Global Const $BUTTON_IMAGELIST_ALIGN_CENTER = 4

Global Const $BS_3STATE = 5

Global Const $BS_AUTO3STATE = 6

Global Const $BS_AUTOCHECKBOX = 3

Global Const $BS_CHECKBOX = 2

Global Const $BS_RADIOBUTTON = 4

Global Const $BS_AUTORADIOBUTTON = 9

Global Const $BS_OWNERDRAW = 11

Global Const $GUI_SS_DEFAULT_BUTTON = 0

Global Const $GUI_SS_DEFAULT_CHECKBOX = 0

Global Const $GUI_SS_DEFAULT_GROUP = 0

Global Const $GUI_SS_DEFAULT_RADIO = 0

Global Const $BCM_FIRST = 5632

Global Const $BCM_GETIDEALSIZE = ($BCM_FIRST + 1)

Global Const $BCM_GETIMAGELIST = ($BCM_FIRST + 3)

Global Const $BCM_GETNOTE = ($BCM_FIRST + 10)

Global Const $BCM_GETNOTELENGTH = ($BCM_FIRST + 11)

Global Const $BCM_GETSPLITINFO = ($BCM_FIRST + 8)

Global Const $BCM_GETTEXTMARGIN = ($BCM_FIRST + 5)

Global Const $BCM_SETDROPDOWNSTATE = ($BCM_FIRST + 6)

Global Const $BCM_SETIMAGELIST = ($BCM_FIRST + 2)

Global Const $BCM_SETNOTE = ($BCM_FIRST + 9)

Global Const $BCM_SETSHIELD = ($BCM_FIRST + 12)

Global Const $BCM_SETSPLITINFO = ($BCM_FIRST + 7)

Global Const $BCM_SETTEXTMARGIN = ($BCM_FIRST + 4)

Global Const $BM_CLICK = 245

Global Const $BM_GETCHECK = 240

Global Const $BM_GETIMAGE = 246

Global Const $BM_GETSTATE = 242

Global Const $BM_SETCHECK = 241

Global Const $BM_SETDONTCLICK = 248

Global Const $BM_SETIMAGE = 247

Global Const $BM_SETSTATE = 243

Global Const $BM_SETSTYLE = 244

Global Const $BCN_FIRST = -1250

Global Const $BCN_DROPDOWN = ($BCN_FIRST + 2)

Global Const $BCN_HOTITEMCHANGE = ($BCN_FIRST + 1)

Global Const $BN_CLICKED = 0

Global Const $BN_PAINT = 1

Global Const $BN_HILITE = 2

Global Const $BN_UNHILITE = 3

Global Const $BN_DISABLE = 4

Global Const $BN_DOUBLECLICKED = 5

Global Const $BN_SETFOCUS = 6

Global Const $BN_KILLFOCUS = 7

Global Const $BN_PUSHED = $BN_HILITE

Global Const $BN_UNPUSHED = $BN_UNHILITE

Global Const $BN_DBLCLK = $BN_DOUBLECLICKED

Global Const $BST_CHECKED = 1

Global Const $BST_INDETERMINATE = 2

Global Const $BST_UNCHECKED = 0

Global Const $BST_FOCUS = 8

Global Const $BST_PUSHED = 4

Global Const $BST_DONTCLICK = 128

#NoTrayIcon

Global $M2ORDNER = @ScriptDir

Global $SCRIPTDIR = @ScriptDir

Global $TEMPDIR = @TempDir

Global $CREATED = FileReadLine($SCRIPTDIR & "\patch.ini", 1)

Global $URL = FileReadLine($SCRIPTDIR & "\patch.ini", 2)

Global $ADURL = FileReadLine($SCRIPTDIR & "\patch.ini", 3)

Global $FENSTERURL = FileReadLine($SCRIPTDIR & "\patch.ini", 4)

Global $BUTTONURL = FileReadLine($SCRIPTDIR & "\patch.ini", 4)

FileInstall("E:\Nowy folder (3)\main.bmp", @TempDir & "\main.bmp", 1)

FileInstall("E:\Nowy folder (3)\btn_startgame_up.bmp", @TempDir & "\btn_startgame_up.bmp", 1)

FileInstall("E:\Nowy folder (3)\btn_settings_up.bmp", @TempDir & "\btn_settings_up.bmp", 1)

FileInstall("E:\Nowy folder (3)\btn_newaccount_up.bmp", @TempDir & "\btn_newaccount_up.bmp", 1)

FileInstall("E:\Nowy folder (3)\btn_idpwd_up.bmp", @TempDir & "\btn_idpwd_up.bmp", 1)

FileInstall("E:\Nowy folder (3)\btn_quit_up.bmp", @TempDir & "\btn_quit_up.bmp", 1)

Opt("GUIOnEventMode", 1)

$FORM1 = GUICreate("Patcher [ by srulian96 ]", 373, 541, 193, 125)

GUISetOnEvent($GUI_EVENT_CLOSE, "_close")

$STAT = GUICtrlCreateEdit("", 16, 8, 337, 281)

GUICtrlSetData(-1, "[ Patcher by srulian96 ]" & @CRLF & "Rozpoczynanie patchowania...")

$CANCEL = GUICtrlCreateButton("Anuluj", 288, 496, 75, 25, 0)

GUICtrlSetOnEvent($CANCEL, "_close")

$PROGRESS1 = GUICtrlCreateProgress(16, 464, 334, 17)

$OIE = _IECREATEEMBEDDED()

$OIE_CTRL = GUICtrlCreateObj($OIE, 16, 312, 336, 136)

GUISetState(@SW_SHOW)

_IENAVIGATE($OIE, $ADURL)

$FORM2 = GUICreate("Patcher [ by srulian96 ]", 595, 385, 328, 160)

GUISetOnEvent($GUI_EVENT_CLOSE, "_close")

$PIC1 = GUICtrlCreatePic(@TempDir & "\main.bmp", 0, 0, 593, 382, $BS_BITMAP)

$START = GUICtrlCreateButton("(Not allowed)", 464, 40, 127, 41, $BS_BITMAP)

GUICtrlSetImage(-1, @TempDir & "\btn_startgame_up.bmp", 1)

GUICtrlSetOnEvent($START, "start")

$CONFIG = GUICtrlCreateButton("(Not allowed)", 464, 96, 127, 25, $BS_BITMAP)

GUICtrlSetOnEvent($CONFIG, "config")

GUICtrlSetImage(-1, @TempDir & "\btn_settings_up.bmp", 1)

$SEITE1 = GUICtrlCreateButton("(Not allowed)", 464, 184, 127, 25, $BS_BITMAP)

GUICtrlSetImage(-1, @TempDir & "\btn_newaccount_up.bmp", 1)

GUICtrlSetOnEvent($SEITE1, "seite")

$SEITE2 = GUICtrlCreateButton("(Not allowed)", 464, 160, 129, 25, $BS_BITMAP)

GUICtrlSetImage(-1, @TempDir & "\btn_idpwd_up.bmp", 1)

GUICtrlSetOnEvent($SEITE2, "seite")

$ENDE = GUICtrlCreateButton("(Not allowed)", 464, 352, 127, 25, $BS_BITMAP)

GUICtrlSetImage(-1, @TempDir & "\btn_quit_up.bmp", 1)

GUICtrlSetOnEvent($ENDE, "_close")

$OIE1 = _IECREATEEMBEDDED()

$OIE_CTRL1 = GUICtrlCreateObj($OIE1, 8, 8, 456, 376)

_IENAVIGATE($OIE1, $FENSTERURL)

GUISetState(@SW_HIDE)

 

Func SEITE()

_IECREATE($BUTTONURL)

EndFunc

 

 

Func START()

Run($SCRIPTDIR & "\metin2.bin")

Exit

EndFunc

 

 

Func CONFIG()

Run($SCRIPTDIR & "\config.exe")

EndFunc

 

 

Func _CLOSE()

Exit

EndFunc

 

Sleep(500)

PATCH()

 

Func PATCH()

If $CREATED = "<<: Created by srulian96 :>>" Then

$FILE = @TempDir & "\pliki.txt"

InetGet($URL & "\pliki.txt", $FILE)

$LINES = _FILECOUNTLINES($FILE)

Else

MsgBox(16, "BBd", "Tw,rţa jest srulian96!", @error)

EndIf

If $LINES = 0 Then

MsgBox(48, "Uwaga!", "Niewykryto downloadu na serwerze!")

Exit

EndIf

DirCreate("pack")

DirCreate("BGM")

DirCreate("lib")

DirCreate("mark")

DirCreate("miles")

DirCreate("screenshot")

DirCreate("upload")

While ($LINES >= 1)

$DATEI = FileReadLine($FILE, $LINES)

GUICtrlSetData($STAT, "Sprawdzanie pliku: " & $DATEI & @CRLF & GUICtrlRead($STAT))

$SIZE_INET = InetGetSize($URL & "\" & $DATEI)

If FileExists($SCRIPTDIR & "\" & $DATEI) Then

If @error Then

MsgBox(16, "BBd", @error)

EndIf

$SIZE_ORDNER = FileGetSize($SCRIPTDIR & "\" & $DATEI)

If $SIZE_INET <> $SIZE_ORDNER Then

GUICtrlSetData($STAT, "Pobieranie pliku: " & $DATEI & @CRLF & GUICtrlRead($STAT))

InetGet($URL & $DATEI, $SCRIPTDIR & "\" & $DATEI, 1, 1)

While 1

$HFILESIZE = FileGetSize($SCRIPTDIR & "\" & $DATEI)

$IPERCENT = 50

GUICtrlSetData($PROGRESS1, $IPERCENT)

If $HFILESIZE = $SIZE_INET Then

GUICtrlSetData($PROGRESS1, 100)

ExitLoop

EndIf

Sleep(50)

WEnd

Else

GUICtrlSetData($STAT, "Sprawdzono plik: " & $DATEI & @CRLF & GUICtrlRead($STAT))

EndIf

Else

InetGet($URL & $DATEI, $SCRIPTDIR & "\" & $DATEI, 1, 1)

GUICtrlSetData($STAT, "Pobieranie pliku: " & $DATEI & @CRLF & GUICtrlRead($STAT))

While 1

$HFILESIZE = FileGetSize($SCRIPTDIR & "\" & $DATEI)

$IPERCENT = 50

GUICtrlSetData($PROGRESS1, $IPERCENT)

If $HFILESIZE = $SIZE_INET Then

GUICtrlSetData($PROGRESS1, 100)

ExitLoop

EndIf

Sleep(50)

WEnd

EndIf

Sleep(500)

$LINES = $LINES - 1

WEnd

FileDelete($TEMPDIR & "pliki.txt")

GUISetState(@SW_HIDE, $FORM1)

GUISetState(@SW_SHOW, $FORM2)

While 1

Sleep(100)

WEnd

EndFunc

 

Bardzo łatwe jeżeli chcesz zmienic ino autora

Opublikowano

VB jest płatny 30dni darmowych i nie do końca działa ten patcher.

Ten przynajmniej łatwy w użytku i tam nie zmienisz już tak łatwo download u innych ludzi bo w pliku trzeba zmieniać a w tym patcherze tylko podmienisz pliki np. założysz stronę na www.yoyo.pl pobierasz FileZilla i sie logujesz do bazy ftp i tam w sadzasz pliki.txt i resztę a pózniej dajesz w patch.ini np www.naszastrona.yoyo.pl/pliki.txt

i tyle wszystko działa sprawdziłem

tu masz link do AutoIT v3 bardzo łatwy w użyciu:http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe lub Klik

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Zaloguj się poniżej.

Zaloguj się
×
×
  • Dodaj nową pozycję...