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

[Tut] Launcher + Autoupdater - Wersja Ogólna


TraDeus

Rekomendowane odpowiedzi

Opublikowano

I tutaj TraDeus sie mylisz... :P

Patcher dziala na modzie od kamera :)

Czy ja powiedziałem że nie działa?

Napisałem "AutoUpdater był tworzony pod zwykłe spolszczenie, więc nie przewidze jak to bedzie działać z modem kamera"

 

Czytanie ze zrozumieniem się kłania -.-

 

Pozdrawiam, TraDeus.

  • Odpowiedzi 50
  • Dodano
  • Ostatniej odpowiedzi
Opublikowano

Się zobaczy, napisałem w spisie tutków, teraz czekać.

 

Co do tematu, może (po części już nad nią pracuje) wypuszczę jeszcze ulepszoną wersje updatera, szczegółów nie zdradzam.

 

Pozdrawiam, TraDeus.

  • 2 tygodnie później...
  • 2 tygodnie później...
Opublikowano

Mam prośbę do autora, mógłbyś dopisać linijkę że zamiast wyswietlania się boxu "Aktualizacja zakończona" to żeby włączał metin2.bin?

Za poprawkę dam 3x+

Opublikowano

Ja mam problem z tym Patcherem, bo nie patchuje mi metina tzn konfiguracje mam chyba dobrze.

A jak dałoby rade to prosiłbym o wstawienie w {code}###{/code} przykładowy config lsetting.

Szukam grafików, questerów Metin2, koderów www, skrypterów, programistów visual c++, c++.
Techników od bazy danych, systemów linuksowych( głównie FreeBSD).

[email protected] - > Pisać - > Rozpatrzę propozycje :)

Opublikowano

Hahaha to nie jest twoj skrypt ^^

 

Znalazlem ten sam skrypt na innej stronie,

Jest on Napisany w AutoIT

narazie nie dam, bo musze go przetestowac ;p

Opublikowano

ej tradeus wiesz jak dodać szatę graficzna do launchera?

Edit:

Sory ale to nie twój launcher to co znalazłem w nim :

WinClose($LAUNCHERTITLE & "AutoUpdater by Przemek L.")

Else

If @error Then

$MASALAH = GUICtrlCreateLabel("Salah Folder !", 304, 416, 89, 17)

Else

If ($GMERUN = "0") Then

$GMERUN = 1

Run("metin2.bin")

WinClose($LAUNCHERTITLE & "AutoUpdater by Przemek L.")

Else

MsgBox(0, $LAUNCHERTITLE & " Ostrze|enie!", "Gra EvoniS jest ju| otwarta!")

EndIf

EndIf

EndIf

sygnaturaq.png
Opublikowano

Tak bo tak mam na imię ;) i początkowa litera nazwiska :P

 

Szate graficzną dodasz w prosty sposób

 

GUICtrlCreatePic

 

bądz

 

GUICtrlCreateGraphic

Opublikowano

Treduś prosze bardzo dziś udostępnie wersje ogólną na AutoIT ^^

PS

Ma te same pliki ^^ i ten sam kod

Zdekomplikowałem twoj pliczek w AutoIT, Pozdro

Opublikowano

@Jak widzisz nie blef-owalem

@Porównajcie sobie skrypty

 

Dobra znalazlem wkoncu u siebie ten skrypt ^^(zapodział sie gdzieś :P)

Orginalna nazwa to RanAutoupdater

 

Linki w załączniku.

Skrypt Ran-a

Nazwa pliku: Skrypcik.rar

 

Podobno twój wytwór

Nazwa pliku: client.rar

Po ściągnięciu odrazu zkompilowałem skrypt ;p

 

Skanik:

http://www.virustotal.com/pl/analisis/4a742e03062b4012171f4803dd4af6cdd4ee7b145f319b010c07f05dd6ea32c7-1267936498

 

Dam tu dla porównania:

Skrypt Ran-a

 

#region Header

#endregion

#region Global Variables and Constants

Global Const $IEAU3VERSIONINFO[6] = ["V", 2, 3, 1, "20070813", "V2.3-1"]

Global Const $LSFW_LOCK = 1, $LSFW_UNLOCK = 2

Global $__IELOADWAITTIMEOUT = 300000

Global $__IEAU3DEBUG = False

Global $__IEAU3V1COMPATIBILITY

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)

Local $RESULT, $F_MUSTUNLOCK = 0

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))

SetError($_IESTATUS_SUCCESS)

SetExtended(1)

Return $ORESULT

EndIf

EndIf

If Not $F_VISIBLE Then

$RESULT = __IELOCKSETFOREGROUNDWINDOW($LSFW_LOCK)

If $RESULT Then $F_MUSTUNLOCK = 1

EndIf

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

$O_OBJECT.visible = $F_VISIBLE

If $F_MUSTUNLOCK Then

$RESULT = __IELOCKSETFOREGROUNDWINDOW($LSFW_UNLOCK)

If Not $RESULT Then __IEERRORNOTIFY("Warning", "_IECreate", "", "Foreground Window Unlock Failed!")

EndIf

_IENAVIGATE($O_OBJECT, $S_URL, $F_WAIT)

SetError(@error)

Return $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")

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.navigate($S_URL)

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndFunc

 

 

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

$S_MODE = StringLower($S_MODE)

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

Local $O_SHELLWINDOWS = $O_SHELL.Windows()

Local $H_CONTROL, $ORESULT, $F_ISBROWSER, $S_TMP

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

Local $IWINTITLEMATCHMODE = Opt("WinTitleMatchMode")

Opt("WinTitleMatchMode", 2)

$H_CONTROL = ControlGetHandle($S_STRING, "", "Internet Explorer_Server1")

$ORESULT = __IECONTROLGETOBJFROMHWND($H_CONTROL)

Opt("WinTitleMatchMode", $IWINTITLEMATCHMODE)

If IsObj($ORESULT) Then

SetError($_IESTATUS_SUCCESS)

Return $ORESULT

Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndIf

EndIf

For $O_WINDOW In $O_SHELLWINDOWS

$F_ISBROWSER = True

Local $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")

Local $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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "windowtitle"

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

If StringInStr($O_WINDOW.document.title & " - " & $S_TMP, $S_STRING) > 0 Then

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "url"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "text"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "html"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "hwnd"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSwitch

EndIf

Next

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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"

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Case "DispHTMLWindow2"

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Case "DispHTMLDocument"

$OTEMP = $O_OBJECT.parentWindow

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Case Else

$OTEMP = $O_OBJECT.document.parentWindow

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

EndSwitch

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

Switch $I_ERRORSTATUSCODE

Case $_IESTATUS_SUCCESS

SetError($_IESTATUS_SUCCESS)

Return 1

Case $_IESTATUS_LOADWAITTIMEOUT

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

SetError($_IESTATUS_LOADWAITTIMEOUT, 3)

Return 0

Case $_IESTATUS_ACCESSISDENIED

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

SetError($_IESTATUS_ACCESSISDENIED)

Return 0

Case $_IESTATUS_CLIENTDISCONNECTED

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

SetError($_IESTATUS_CLIENTDISCONNECTED)

Return 0

Case Else

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

SetError($_IESTATUS_GENERALERROR)

Return 0

EndSwitch

EndFunc

 

 

Func _IELOADWAITTIMEOUT($I_TIMEOUT = -1)

If $I_TIMEOUT = -1 Then

SetError($_IESTATUS_SUCCESS)

Return $__IELOADWAITTIMEOUT

Else

$__IELOADWAITTIMEOUT = $I_TIMEOUT

SetError($_IESTATUS_SUCCESS)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

SetError($_IESTATUS_SUCCESS)

Return 1

Else

SetError($_IESTATUS_SUCCESS)

Return 0

EndIf

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.parentwindow.frames.length)

Return $O_OBJECT.document.parentwindow.frames

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.parentwindow.frames.length)

Return $O_OBJECT.document.parentwindow.frames.item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndSelect

EndFunc

 

 

Func _IEFRAMEGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $OTEMP, $OFRAMES, $OFRAME

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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

SetError($_IESTATUS_SUCCESS)

Return $OTEMP.frames($S_NAME)

EndIf

Next

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $FOUND = 0, $LINK, $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)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndIf

$FOUND = $FOUND + 1

EndIf

Next

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.links.length)

Return $O_OBJECT.document.links

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.links.length)

Return $O_OBJECT.document.links.item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $LINKTEXT, $FOUND = 0, $IMG, $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)

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSelect

If StringInStr($LINKTEXT, $S_LINKTEXT) Then

If ($FOUND = $I_INDEX) Then

$IMG.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndIf

$FOUND = $FOUND + 1

EndIf

Next

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.images.length)

Return $OTEMP.images

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.images.length)

Return $OTEMP.images.item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.forms.length)

Return $OTEMP.forms

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.forms.length)

Return $OTEMP.forms.item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $O_COL, $I_LENGTH = 0

$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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

Return $O_OBJECT.document.forms.item($S_NAME)

Else

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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

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

Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndIf

EndIf

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.elements.length)

Return $O_OBJECT.elements

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.elements.length)

Return $O_OBJECT.elements.item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $O_COL, $I_LENGTH = 0

$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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

Return $O_OBJECT.elements.item($S_NAME)

Else

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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

Return $O_OBJECT.elements.item($S_NAME, $I_INDEX)

Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndIf

EndIf

EndFunc

 

 

Func _IEFORMELEMENTGETVALUE(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.value

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.value = $S_NEWVALUE

If $F_FIREEVENT Then

$O_OBJECT.fireEvent("OnChange")

$O_OBJECT.fireEvent("OnClick")

EndIf

SetError($_IESTATUS_SUCCESS)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $OITEM, $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)

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSwitch

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

Next

Case "byText"

For $OITEM In $OITEMS

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

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSwitch

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

SetError($_IESTATUS_NOMATCH, 2)

Return 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)

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndIf

$OITEM = $OITEMS.item($I_INDEX)

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSwitch

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 4)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $ICOUNT, $OITEM, $OITEMS, $F_FOUND = False

$S_STRING = String($S_STRING)

$S_NAME = String($S_NAME)

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")

SetError($_IESTATUS_NOMATCH, 3)

Return 0

EndIf

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

$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")

SetError($_IESTATUS_INVALIDVALUE, 5)

Return 0

EndSwitch

If Not $F_FOUND Then

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $OITEM.checked

Case 0

If $OITEM.checked Then

$OITEM.checked = False

If $F_FIREEVENT Then

$OITEM.fireEvent("onChange")

$OITEM.fireEvent("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case 1

If Not $OITEM.checked Then

$OITEM.checked = True

If $F_FIREEVENT Then

$OITEM.fireEvent("onChange")

$OITEM.fireEvent("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $ICOUNT = 0, $OITEM, $OITEMS, $F_FOUND = False

$S_STRING = String($S_STRING)

$S_NAME = String($S_NAME)

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

If Not IsObj($OITEMS) Then

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

SetError($_IESTATUS_NOMATCH, 3)

Return 0

EndIf

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

$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")

SetError($_IESTATUS_INVALIDVALUE, 5)

Return 0

EndSwitch

If Not $F_FOUND Then

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $OITEM.checked

Case 0

If $OITEM.checked Then

$OITEM.checked = False

If $F_FIREEVENT Then

$OITEM.fireEvent("onChange")

$OITEM.fireEvent("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case 1

If Not $OITEM.checked Then

$OITEM.checked = True

If $F_FIREEVENT Then

$OITEM.fireEvent("onChange")

$OITEM.fireEvent("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 4)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $LINKTEXT, $FOUND = 0, $IMG, $IMGS

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$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)

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSelect

If StringInStr($LINKTEXT, $S_LINKTEXT) Then

If ($FOUND = $I_INDEX) Then

$IMG.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndIf

$FOUND = $FOUND + 1

EndIf

EndIf

Next

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Local $O_WINDOW = $O_OBJECT.document.parentWindow

$O_OBJECT.submit

If $F_WAIT Then

_IELOADWAIT($O_WINDOW)

SetError(@error)

Return -1

EndIf

Return -1

EndFunc

 

 

Func _IEFORMRESET(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

$O_OBJECT.reset

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByTagName("table" ).length)

Return $O_OBJECT.document.GetElementsByTagName("table")

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByTagName("table" ).length)

Return $O_OBJECT.document.GetElementsByTagName("table" ).item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $I_COLS = 0, $TRS, $TR, $TDS, $I_COL, $I_ROWS, $COL, $ROW

$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

$I_ROWS = $TRS.length

Local $A_TABLECELLS[$I_COLS][$I_ROWS]

$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

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.body.innerHTML

EndFunc

 

 

Func _IEBODYREADTEXT(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.body.innerText

EndFunc

 

 

Func _IEBODYWRITEHTML(ByRef $O_OBJECT, $S_HTML)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.document.body.innerHTML = $S_HTML

Local $OTEMP = $O_OBJECT.document

_IELOADWAIT($OTEMP)

SetError(@error)

Return -1

EndFunc

 

 

Func _IEDOCREADHTML(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.documentElement.outerHTML

EndFunc

 

 

Func _IEDOCWRITEHTML(ByRef $O_OBJECT, $S_HTML)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.document.Write($S_HTML)

$O_OBJECT.document.close()

Local $OTEMP = $O_OBJECT.document

_IELOADWAIT($OTEMP)

SetError(@error)

Return -1

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$S_WHERE = StringLower($S_WHERE)

Select

Case $S_WHERE = "beforebegin"

$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterbegin"

$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "beforeend"

$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterend"

$O_OBJECT.insertAdjacentText($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$S_WHERE = StringLower($S_WHERE)

Select

Case $S_WHERE = "beforebegin"

$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterbegin"

$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "beforeend"

$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterend"

$O_OBJECT.insertAdjacentHTML($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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)

SetError($_IESTATUS_SUCCESS)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Switch __IEISOBJTYPE($O_OBJECT, "document")

Case True

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT

Case False

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.GetElementsByTagName($S_TAGNAME).length)

Return $OTEMP.GetElementsByTagName($S_TAGNAME)

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.GetElementsByTagName($S_TAGNAME).length)

Return $OTEMP.GetElementsByTagName($S_TAGNAME).item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.all.length)

Return $OTEMP.all

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.all.length)

Return $OTEMP.all.item($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

If $I_INDEX = -1 Then

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByName($S_ID).length)

Return $O_OBJECT.document.GetElementsByName($S_ID)

Else

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByName($S_ID).length)

Return $O_OBJECT.document.GetElementsByName($S_ID).item($I_INDEX)

Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndIf

EndIf

EndFunc

 

 

Func _IEGETOBJBYID(ByRef $O_OBJECT, $S_ID)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

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

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.getElementById($S_ID)

Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

EndFunc

 

 

Func _IEACTION(ByRef $O_OBJECT, $S_ACTION)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$S_ACTION = StringLower($S_ACTION)

Select

Case $S_ACTION = "click"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Click()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "disable"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.disabled = True

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "enable"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.disabled = False

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "focus"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Focus()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "copy"

$O_OBJECT.document.execCommand("Copy")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "cut"

$O_OBJECT.document.execCommand("Cut")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "paste"

$O_OBJECT.document.execCommand("Paste")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "delete"

$O_OBJECT.document.execCommand("Delete")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "saveas"

$O_OBJECT.document.execCommand("SaveAs")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "refresh"

$O_OBJECT.document.execCommand("Refresh")

_IELOADWAIT($O_OBJECT)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "selectall"

$O_OBJECT.document.execCommand("SelectAll")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "unselect"

$O_OBJECT.document.execCommand("Unselect")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "print"

$O_OBJECT.document.parentwindow.Print()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "printdefault"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.execWB(6, 2)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "back"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoBack()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "blur"

$O_OBJECT.Blur()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "forward"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoForward()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "home"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoHome()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "invisible"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.visible = 0

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "visible"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.visible = 1

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "search"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoSearch()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "stop"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Stop()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "quit"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Quit()

$O_OBJECT = 0

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSelect

EndFunc

 

 

Func _IEPROPERTYGET(ByRef $O_OBJECT, $S_PROPERTY)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetLeft

$OTEMP = $OTEMP.offsetParent

WEnd

SetError($_IESTATUS_SUCCESS)

Return $ITEMP

Case $S_PROPERTY = "browsery"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetTop

$OTEMP = $OTEMP.offsetParent

WEnd

SetError($_IESTATUS_SUCCESS)

Return $ITEMP

Case $S_PROPERTY = "screenx"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.left()

Else

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetLeft

$OTEMP = $OTEMP.offsetParent

WEnd

EndIf

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.top()

Else

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetTop

$OTEMP = $OTEMP.offsetParent

WEnd

EndIf

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Height()

Else

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.offsetHeight

EndIf

Case $S_PROPERTY = "width"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Width()

Else

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.offsetWidth

EndIf

Case $S_PROPERTY = "isdisabled"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.isDisabled()

Case $S_PROPERTY = "addressbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.AddressBar()

Case $S_PROPERTY = "busy"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Busy()

Case $S_PROPERTY = "fullscreen"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.fullScreen()

Case $S_PROPERTY = "hwnd"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return HWnd($O_OBJECT.HWnd())

Case $S_PROPERTY = "left"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Left()

Case $S_PROPERTY = "locationname"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.LocationName()

Case $S_PROPERTY = "locationurl"

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.locationURL()

EndIf

If __IEISOBJTYPE($O_OBJECT, "window") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.location.href()

EndIf

If __IEISOBJTYPE($O_OBJECT, "document") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.parentwindow.location.href()

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentwindow.location.href()

Case $S_PROPERTY = "menubar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.MenuBar()

Case $S_PROPERTY = "offline"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.OffLine()

Case $S_PROPERTY = "readystate"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.ReadyState()

Case $S_PROPERTY = "resizable"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Resizable()

Case $S_PROPERTY = "silent"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Silent()

Case $S_PROPERTY = "statusbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.StatusBar()

Case $S_PROPERTY = "statustext"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.StatusText()

Case $S_PROPERTY = "top"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Top()

Case $S_PROPERTY = "visible"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Visible()

Case $S_PROPERTY = "appcodename"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appCodeName()

Case $S_PROPERTY = "appminorversion"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appMinorVersion()

Case $S_PROPERTY = "appname"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appName()

Case $S_PROPERTY = "appversion"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appVersion()

Case $S_PROPERTY = "browserlanguage"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.browserLanguage()

Case $S_PROPERTY = "cookieenabled"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.cookieEnabled()

Case $S_PROPERTY = "cpuclass"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.cpuClass()

Case $S_PROPERTY = "javaenabled"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.javaEnabled()

Case $S_PROPERTY = "online"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.onLine()

Case $S_PROPERTY = "platform"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.platform()

Case $S_PROPERTY = "systemlanguage"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.systemLanguage()

Case $S_PROPERTY = "useragent"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.userAgent()

Case $S_PROPERTY = "userlanguage"

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $AVCARD

Case $S_PROPERTY = "referrer"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.referrer

Case $S_PROPERTY = "theatermode"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.TheaterMode

Case $S_PROPERTY = "toolbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $OTEMP.outerHTML

Case $S_PROPERTY = "title"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.title

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.AddressBar = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "height"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Height = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "left"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Left = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "menubar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.MenuBar = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "offline"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.OffLine = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "resizable"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Resizable = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "statusbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.StatusBar = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "statustext"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.StatusText = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "top"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Top = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "width"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Width = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "theatermode"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If $NEWVALUE Then

$O_OBJECT.TheaterMode = True

Else

$O_OBJECT.TheaterMode = False

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "toolbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If $NEWVALUE Then

$O_OBJECT.ToolBar = True

Else

$O_OBJECT.ToolBar = False

EndIf

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "title"

$O_OBJECT.document.title = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "silent"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If $NEWVALUE Then

$O_OBJECT.silent = True

Else

$O_OBJECT.silent = False

EndIf

SetError($_IESTATUS_SUCCESS)

Return 0

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Else

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

SetError($_IESTATUS_GENERALERROR, 1)

Return 0

EndIf

EndFunc

 

 

Func _IEERRORHANDLERDEREGISTER()

$SIEUSERERRORHANDLER = ""

$OIEERRORHANDLER = ""

SetError($_IESTATUS_SUCCESS)

Return 1

EndFunc

 

 

Func _IEQUIT(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

$O_OBJECT.quit()

$O_OBJECT = 0

Return 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 &= "<li><a href='http://www.autoitscript.com/forum/index.php?showtopic=19368' target='_blank'>AutoIt IE Builder</a> (build IE scripts interactively)</li>" & @CR

$S_HTML &= "<li><a href='http://www.debugbar.com/' target='_blank'>DebugBar</a> (DOM inspector, HTTP inspector, HTML validator and more - free for personal use) Recommended</li>" & @CR

$S_HTML &= "<li><a href='http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&displaylang=en' target='_blank'>IE Developer Toolbar</a> (comprehensive DOM analysis tool)</li>" & @CR

$S_HTML &= "<li><a href='http://slayeroffice.com/tools/modi/v2.0/modi_help.html' target='_blank'>MODIV2</a> (view the DOM of a web page by mousing around)</li>" & @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")

SetError($_IESTATUS_INVALIDVALUE, 1)

Return 0

EndSwitch

Local $O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

SetError($_IESTATUS_SUCCESS)

Return $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 href='http://www.autoitscript.com'><img src='http://www.autoitscript.com/images/autoit_6_240x100.jpg' name='AutoItImage' alt='AutoIt Homepage Image'></a>" & @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=line3>It is supported by a very active and supporting <a href='http://www.autoitscript.com/forum/'>user forum</a>.</div>" & @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 &= "<td><input type='image' name='imageExample' alt='AutoIt Homepage' src='http://www.autoitscript.com/images/autoit_6_240x100.jpg'></td>" & @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")

SetError($_IESTATUS_INVALIDVALUE, 1)

Return 0

EndSwitch

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT

EndFunc

 

 

Func _IE_VERSIONINFO()

__IEERRORNOTIFY("Information", "_IE_VersionInfo", "version " & $IEAU3VERSIONINFO[0] & $IEAU3VERSIONINFO[1] & "." & $IEAU3VERSIONINFO[2] & "-" & $IEAU3VERSIONINFO[3], "Release date: " & $IEAU3VERSIONINFO[4])

SetError($_IESTATUS_SUCCESS)

Return $IEAU3VERSIONINFO

EndFunc

 

#endregion General

#region Internal functions

 

Func __IELOCKSETFOREGROUNDWINDOW($NLOCKCODE)

Local $ARET = DllCall("user32.dll", "int", "LockSetForegroundWindow", "int", $NLOCKCODE)

If @error Then

SetError(@error, @extended)

Return False

EndIf

Return $ARET[0]

EndFunc

 

 

Func __IECONTROLGETOBJFROMHWND(ByRef $HWIN)

DllCall("ole32.dll", "int", "CoInitialize", "ptr", 0)

Local Const $WM_HTML_GETOBJECT = __IEREGISTERWINDOWMESSAGE("WM_HTML_GETOBJECT")

Local Const $SMTO_ABORTIFHUNG = 2

Local $LRESULT, $TYPUUID, $ARET, $OIE

__IESENDMESSAGETIMEOUT($HWIN, $WM_HTML_GETOBJECT, 0, 0, $SMTO_ABORTIFHUNG, 1000, $LRESULT)

$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)

$ARET = DllCall("oleacc.dll", "int", "ObjectFromLresult", "int", $LRESULT, "ptr", DllStructGetPtr($TYPUUID), "int", 0, "idispatch_ptr", "")

If IsObj($ARET[4]) Then

$OIE = $ARET[4] .Script()

Return $OIE.Document.parentwindow

Else

SetError(1)

Return 0

EndIf

EndFunc

 

 

Func __IEREGISTERWINDOWMESSAGE($SMSG)

Local $ARET = DllCall("user32.dll", "int", "RegisterWindowMessage", "str", $SMSG)

If @error Then Return SetError(@error, @extended, 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", "long", "SendMessageTimeout", "hwnd", $HWND, "int", $MSG, $T1, $WPARAM, $T2, $LPARAM, "int", $NFLAGS, "int", $NTIMEOUT, "int_ptr", "")

If @error Then

$VOUT = 0

Return SetError(@error, @extended, 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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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, $OTEMP

Switch $S_TYPE

Case "browserdom"

$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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSwitch

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

If $OBJECTOK Then

SetError($_IESTATUS_SUCCESS)

Return 1

Else

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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 & @CR)

EndIf

Return 1

EndFunc

 

 

Func __IEINTERNALERRORHANDLERREGISTER()

Local $SCURRENTERRORHANDLER = ObjEvent("AutoIt.Error")

If $SCURRENTERRORHANDLER <> "" And Not IsObj($OIEERRORHANDLER) Then

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

$OIEERRORHANDLER = ""

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

If IsObj($OIEERRORHANDLER) Then

SetError($_IESTATUS_SUCCESS)

Return 1

Else

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

EndFunc

 

 

Func __IEINTERNALERRORHANDLERDEREGISTER()

$OIEERRORHANDLER = ""

If $SIEUSERERRORHANDLER <> "" Then

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

EndIf

SetError($_IESTATUS_SUCCESS)

Return 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 & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorScriptline = " & $IECOMERRORSCRIPTLINE & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorNumberHex = " & $IECOMERRORNUMBERHEX & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorNumber = " & $IECOMERRORNUMBER & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorWinDescription = " & $IECOMERRORWINDESCRIPTION & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorDescription = " & $IECOMERRORDESCRIPTION & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorSource = " & $IECOMERRORSOURCE & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorHelpFile = " & $IECOMERRORHELPFILE & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorHelpContext = " & $IECOMERRORHELPCONTEXT & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorLastDllError = " & $IECOMERRORLASTDLLERROR & @CR

If $_IEERRORNOTIFY Or $__IEAU3DEBUG Then ConsoleWrite($IECOMERROROUTPUT & @CR)

SetError($_IESTATUS_COMERROR)

Return

EndFunc

 

 

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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.navigate($S_URL, $I_FLAGS, $S_TARGET, $S_POSTDATA, $S_HEADERS)

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

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

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_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 $WM_SIZE = 5

Global Const $WM_SIZING = 532

Global Const $WM_USER = 1024

Global Const $WM_GETTEXTLENGTH = 14

Global Const $WM_GETTEXT = 13

Global Const $ACS_CENTER = 1

Global Const $ACS_TRANSPARENT = 2

Global Const $ACS_AUTOPLAY = 4

Global Const $ACS_TIMER = 8

Global Const $ACS_NONTRANSPARENT = 16

Global Const $CBS_SIMPLE = 1

Global Const $CBS_DROPDOWN = 2

Global Const $CBS_DROPDOWNLIST = 3

Global Const $CBS_AUTOHSCROLL = 64

Global Const $CBS_OEMCONVERT = 128

Global Const $CBS_SORT = 256

Global Const $CBS_NOINTEGRALHEIGHT = 1024

Global Const $CBS_DISABLENOSCROLL = 2048

Global Const $CBS_UPPERCASE = 8192

Global Const $CBS_LOWERCASE = 16384

Global Const $CB_ERR = -1

Global Const $CB_ERRATTRIBUTE = -3

Global Const $CB_ERRREQUIRED = -4

Global Const $CB_ERRSPACE = -2

Global Const $CB_OKAY = 0

Global Const $CB_ADDSTRING = 323

Global Const $CB_DELETESTRING = 324

Global Const $CB_DIR = 325

Global Const $CB_FINDSTRING = 332

Global Const $CB_FINDSTRINGEXACT = 344

Global Const $CB_GETCOUNT = 326

Global Const $CB_GETCURSEL = 327

Global Const $CB_GETDROPPEDCONTROLRECT = 338

Global Const $CB_GETDROPPEDSTATE = 343

Global Const $CB_GETDROPPEDWIDTH = 351

Global Const $CB_GETEDITSEL = 320

Global Const $CB_GETEXTENDEDUI = 342

Global Const $CB_GETHORIZONTALEXTENT = 349

Global Const $CB_GETITEMDATA = 336

Global Const $CB_GETITEMHEIGHT = 340

Global Const $CB_GETLBTEXT = 328

Global Const $CB_GETLBTEXTLEN = 329

Global Const $CB_GETLOCALE = 346

Global Const $CB_GETMINVISIBLE = 5890

Global Const $CB_GETTOPINDEX = 347

Global Const $CB_INITSTORAGE = 353

Global Const $CB_LIMITTEXT = 321

Global Const $CB_RESETCONTENT = 331

Global Const $CB_INSERTSTRING = 330

Global Const $CB_SELECTSTRING = 333

Global Const $CB_SETCURSEL = 334

Global Const $CB_SETDROPPEDWIDTH = 352

Global Const $CB_SETEDITSEL = 322

Global Const $CB_SETEXTENDEDUI = 341

Global Const $CB_SETHORIZONTALEXTENT = 350

Global Const $CB_SETITEMDATA = 337

Global Const $CB_SETITEMHEIGHT = 339

Global Const $CB_SETLOCALE = 21

Global Const $CB_SETMINVISIBLE = 5889

Global Const $CB_SETTOPINDEX = 348

Global Const $CB_SHOWDROPDOWN = 335

Global Const $CB_DDL_ARCHIVE = 32

Global Const $CB_DDL_DIRECTORY = 16

Global Const $CB_DDL_DRIVES = 16384

Global Const $CB_DDL_EXCLUSIVE = 32768

Global Const $CB_DDL_HIDDEN = 2

Global Const $CB_DDL_READONLY = 1

Global Const $CB_DDL_READWRITE = 0

Global Const $CB_DDL_SYSTEM = 4

Global Const $DTS_SHORTDATEFORMAT = 0

Global Const $DTS_UPDOWN = 1

Global Const $DTS_SHOWNONE = 2

Global Const $DTS_LONGDATEFORMAT = 4

Global Const $DTS_TIMEFORMAT = 9

Global Const $DTS_RIGHTALIGN = 32

Global Const $MCS_NOTODAY = 16

Global Const $MCS_NOTODAYCIRCLE = 8

Global Const $MCS_WEEKNUMBERS = 4

Global Const $MCM_FIRST = 4096

Global Const $MCM_GETCOLOR = ($MCM_FIRST + 11)

Global Const $MCM_GETFIRSTDAYOFWEEK = ($MCM_FIRST + 16)

Global Const $MCM_GETMAXSELCOUNT = ($MCM_FIRST + 3)

Global Const $MCM_GETMAXTODAYWIDTH = ($MCM_FIRST + 21)

Global Const $MCM_GETMINREQRECT = ($MCM_FIRST + 9)

Global Const $MCM_GETMONTHDELTA = ($MCM_FIRST + 19)

Global Const $MCS_MULTISELECT = 2

Global Const $MCM_SETCOLOR = ($MCM_FIRST + 10)

Global Const $MCM_SETFIRSTDAYOFWEEK = ($MCM_FIRST + 15)

Global Const $MCM_SETMAXSELCOUNT = ($MCM_FIRST + 4)

Global Const $MCM_SETMONTHDELTA = ($MCM_FIRST + 20)

Global Const $MCSC_BACKGROUND = 0

Global Const $MCSC_MONTHBK = 4

Global Const $MCSC_TEXT = 1

Global Const $MCSC_TITLEBK = 2

Global Const $MCSC_TITLETEXT = 3

Global Const $MCSC_TRAILINGTEXT = 5

Global Const $ES_LEFT = 0

Global Const $ES_CENTER = 1

Global Const $ES_RIGHT = 2

Global Const $ES_MULTILINE = 4

Global Const $ES_UPPERCASE = 8

Global Const $ES_LOWERCASE = 16

Global Const $ES_PASSWORD = 32

Global Const $ES_AUTOVSCROLL = 64

Global Const $ES_AUTOHSCROLL = 128

Global Const $ES_NOHIDESEL = 256

Global Const $ES_OEMCONVERT = 1024

Global Const $ES_READONLY = 2048

Global Const $ES_WANTRETURN = 4096

Global Const $ES_NUMBER = 8192

Global Const $EC_ERR = -1

Global Const $ECM_FIRST = 5376

Global Const $EM_CANUNDO = 198

Global Const $EM_EMPTYUNDOBUFFER = 205

Global Const $EM_GETFIRSTVISIBLELINE = 206

Global Const $EM_GETLINE = 196

Global Const $EM_GETLINECOUNT = 186

Global Const $EM_GETMODIFY = 184

Global Const $EM_GETRECT = 178

Global Const $EM_GETSEL = 176

Global Const $EM_LINEFROMCHAR = 201

Global Const $EM_LINEINDEX = 187

Global Const $EM_LINELENGTH = 193

Global Const $EM_LINESCROLL = 182

Global Const $EM_REPLACESEL = 194

Global Const $EM_SCROLL = 181

Global Const $EM_SCROLLCARET = 183

Global Const $EM_SETMODIFY = 185

Global Const $EM_SETSEL = 177

Global Const $EM_UNDO = 199

Global Const $EM_SETREADONLY = 207

Global Const $EM_SETTABSTOPS = 203

Global Const $SS_LEFT = 0

Global Const $SS_CENTER = 1

Global Const $SS_RIGHT = 2

Global Const $SS_ICON = 3

Global Const $SS_BLACKRECT = 4

Global Const $SS_GRAYRECT = 5

Global Const $SS_WHITERECT = 6

Global Const $SS_BLACKFRAME = 7

Global Const $SS_GRAYFRAME = 8

Global Const $SS_WHITEFRAME = 9

Global Const $SS_SIMPLE = 11

Global Const $SS_LEFTNOWORDWRAP = 12

Global Const $SS_BITMAP = 15

Global Const $SS_ETCHEDHORZ = 16

Global Const $SS_ETCHEDVERT = 17

Global Const $SS_ETCHEDFRAME = 18

Global Const $SS_NOPREFIX = 128

Global Const $SS_NOTIFY = 256

Global Const $SS_CENTERIMAGE = 512

Global Const $SS_RIGHTJUST = 1024

Global Const $SS_SUNKEN = 4096

Global Const $LBS_NOTIFY = 1

Global Const $LBS_SORT = 2

Global Const $LBS_USETABSTOPS = 128

Global Const $LBS_NOINTEGRALHEIGHT = 256

Global Const $LBS_DISABLENOSCROLL = 4096

Global Const $LBS_NOSEL = 16384

Global Const $LBS_STANDARD = 10485763

Global Const $LB_ERR = -1

Global Const $LB_ERRATTRIBUTE = -3

Global Const $LB_ERRREQUIRED = -4

Global Const $LB_ERRSPACE = -2

Global Const $LB_ADDSTRING = 384

Global Const $LB_DELETESTRING = 386

Global Const $LB_DIR = 397

Global Const $LB_FINDSTRING = 399

Global Const $LB_FINDSTRINGEXACT = 418

Global Const $LB_GETANCHORINDEX = 413

Global Const $LB_GETCARETINDEX = 415

Global Const $LB_GETCOUNT = 395

Global Const $LB_GETCURSEL = 392

Global Const $LB_GETHORIZONTALEXTENT = 403

Global Const $LB_GETITEMRECT = 408

Global Const $LB_GETLISTBOXINFO = 434

Global Const $LB_GETLOCALE = 422

Global Const $LB_GETSEL = 391

Global Const $LB_GETSELCOUNT = 400

Global Const $LB_GETSELITEMS = 401

Global Const $LB_GETTEXT = 393

Global Const $LB_GETTEXTLEN = 394

Global Const $LB_GETTOPINDEX = 398

Global Const $LB_INSERTSTRING = 385

Global Const $LB_RESETCONTENT = 388

Global Const $LB_SELECTSTRING = 396

Global Const $LB_SETITEMHEIGHT = 416

Global Const $LB_SELITEMRANGE = 411

Global Const $LB_SELITEMRANGEEX = 387

Global Const $LB_SETANCHORINDEX = 412

Global Const $LB_SETCARETINDEX = 414

Global Const $LB_SETCURSEL = 390

Global Const $LB_SETHORIZONTALEXTENT = 404

Global Const $LB_SETLOCALE = 421

Global Const $LB_SETSEL = 389

Global Const $LB_SETTOPINDEX = 407

Global Const $LBS_MULTIPLESEL = 8

Global Const $DDL_ARCHIVE = 32

Global Const $DDL_DIRECTORY = 16

Global Const $DDL_DRIVES = 16384

Global Const $DDL_EXCLUSIVE = 32768

Global Const $DDL_HIDDEN = 2

Global Const $DDL_READONLY = 1

Global Const $DDL_READWRITE = 0

Global Const $DDL_SYSTEM = 4

Global Const $LVS_ICON = 0

Global Const $LVS_REPORT = 1

Global Const $LVS_SMALLICON = 2

Global Const $LVS_LIST = 3

Global Const $LVS_EDITLABELS = 512

Global Const $LVS_NOCOLUMNHEADER = 16384

Global Const $LVS_NOSORTHEADER = 32768

Global Const $LVS_SINGLESEL = 4

Global Const $LVS_SHOWSELALWAYS = 8

Global Const $LVS_SORTASCENDING = 16

Global Const $LVS_SORTDESCENDING = 32

Global Const $LVS_NOLABELWRAP = 128

Global Const $LVS_EX_FULLROWSELECT = 32

Global Const $LVS_EX_GRIDLINES = 1

Global Const $LVS_EX_SUBITEMIMAGES = 2

Global Const $LVS_EX_CHECKBOXES = 4

Global Const $LVS_EX_TRACKSELECT = 8

Global Const $LVS_EX_HEADERDRAGDROP = 16

Global Const $LVS_EX_FLATSB = 256

Global Const $LVS_EX_BORDERSELECT = 32768

Global Const $LVS_EX_HIDELABELS = 131072

Global Const $LVS_EX_INFOTIP = 1024

Global Const $LVS_EX_LABELTIP = 16384

Global Const $LVS_EX_ONECLICKACTIVATE = 64

Global Const $LVS_EX_REGIONAL = 512

Global Const $LVS_EX_SINGLEROW = 262144

Global Const $LVS_EX_TWOCLICKACTIVATE = 128

Global Const $LVS_EX_UNDERLINEHOT = 2048

Global Const $LVS_EX_UNDERLINECOLD = 4096

Global Const $LV_ERR = -1

Global Const $CCM_FIRST = 8192

Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)

Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)

Global Const $CLR_NONE = -1

Global Const $LVM_FIRST = 4096

Global Const $LV_VIEW_DETAILS = 1

Global Const $LV_VIEW_ICON = 0

Global Const $LV_VIEW_LIST = 3

Global Const $LV_VIEW_SMALLICON = 2

Global Const $LV_VIEW_TILE = 4

Global Const $LVCF_FMT = 1

Global Const $LVCF_WIDTH = 2

Global Const $LVCF_TEXT = 4

Global Const $LVCFMT_CENTER = 2

Global Const $LVCFMT_LEFT = 0

Global Const $LVCFMT_RIGHT = 1

Global Const $LVA_ALIGNLEFT = 1

Global Const $LVA_ALIGNTOP = 2

Global Const $LVA_DEFAULT = 0

Global Const $LVA_SNAPTOGRID = 5

Global Const $LVIF_STATE = 8

Global Const $LVIF_TEXT = 1

Global Const $LVFI_PARAM = 1

Global Const $LVFI_PARTIAL = 8

Global Const $LVFI_STRING = 2

Global Const $LVFI_WRAP = 32

Global Const $VK_LEFT = 37

Global Const $VK_RIGHT = 39

Global Const $VK_UP = 38

Global Const $VK_DOWN = 40

Global Const $VK_END = 35

Global Const $VK_PRIOR = 33

Global Const $VK_NEXT = 34

Global Const $LVIR_BOUNDS = 0

Global Const $LVIS_CUT = 4

Global Const $LVIS_DROPHILITED = 8

Global Const $LVIS_FOCUSED = 1

Global Const $LVIS_OVERLAYMASK = 3840

Global Const $LVIS_SELECTED = 2

Global Const $LVIS_STATEIMAGEMASK = 61440

Global Const $LVM_ARRANGE = ($LVM_FIRST + 22)

Global Const $LVM_CANCELEDITLABEL = ($LVM_FIRST + 179)

Global Const $LVM_DELETECOLUMN = 4124

Global Const $LVM_DELETEITEM = 4104

Global Const $LVM_DELETEALLITEMS = 4105

Global Const $LVM_EDITLABELA = ($LVM_FIRST + 23)

Global Const $LVM_EDITLABEL = $LVM_EDITLABELA

Global Const $LVM_ENABLEGROUPVIEW = ($LVM_FIRST + 157)

Global Const $LVM_ENSUREVISIBLE = ($LVM_FIRST + 19)

Global Const $LVM_FINDITEM = ($LVM_FIRST + 13)

Global Const $LVM_GETBKCOLOR = ($LVM_FIRST + 0)

Global Const $LVM_GETCALLBACKMASK = ($LVM_FIRST + 10)

Global Const $LVM_GETCOLUMNORDERARRAY = ($LVM_FIRST + 59)

Global Const $LVM_GETCOLUMNWIDTH = ($LVM_FIRST + 29)

Global Const $LVM_GETCOUNTPERPAGE = ($LVM_FIRST + 40)

Global Const $LVM_GETEDITCONTROL = ($LVM_FIRST + 24)

Global Const $LVM_GETEXTENDEDLISTVIEWSTYLE = ($LVM_FIRST + 55)

Global Const $LVM_GETHEADER = ($LVM_FIRST + 31)

Global Const $LVM_GETHOTCURSOR = ($LVM_FIRST + 63)

Global Const $LVM_GETHOTITEM = ($LVM_FIRST + 61)

Global Const $LVM_GETHOVERTIME = ($LVM_FIRST + 72)

Global Const $LVM_GETIMAGELIST = ($LVM_FIRST + 2)

Global Const $LVM_GETITEMA = ($LVM_FIRST + 5)

Global Const $LVM_GETITEMCOUNT = 4100

Global Const $LVM_GETITEMSTATE = ($LVM_FIRST + 44)

Global Const $LVM_GETITEMTEXTA = ($LVM_FIRST + 45)

Global Const $LVM_GETNEXTITEM = 4108

Global Const $LVM_GETSELECTEDCOLUMN = ($LVM_FIRST + 174)

Global Const $LVM_GETSELECTEDCOUNT = ($LVM_FIRST + 50)

Global Const $LVM_GETSUBITEMRECT = ($LVM_FIRST + 56)

Global Const $LVM_GETTOPINDEX = ($LVM_FIRST + 39)

Global Const $LVM_GETUNICODEFORMAT = $CCM_GETUNICODEFORMAT

Global Const $LVM_GETVIEW = ($LVM_FIRST + 143)

Global Const $LVM_GETVIEWRECT = ($LVM_FIRST + 34)

Global Const $LVM_INSERTCOLUMNA = ($LVM_FIRST + 27)

Global Const $LVM_INSERTITEMA = ($LVM_FIRST + 7)

Global Const $LVM_REDRAWITEMS = ($LVM_FIRST + 21)

Global Const $LVM_SETUNICODEFORMAT = $CCM_SETUNICODEFORMAT

Global Const $LVM_SCROLL = ($LVM_FIRST + 20)

Global Const $LVM_SETBKCOLOR = 4097

Global Const $LVM_SETCALLBACKMASK = ($LVM_FIRST + 11)

Global Const $LVM_SETCOLUMNA = ($LVM_FIRST + 26)

Global Const $LVM_SETCOLUMNORDERARRAY = ($LVM_FIRST + 58)

Global Const $LVM_SETCOLUMNWIDTH = 4126

Global Const $LVM_SETEXTENDEDLISTVIEWSTYLE = 4150

Global Const $LVM_SETHOTITEM = ($LVM_FIRST + 60)

Global Const $LVM_SETHOVERTIME = ($LVM_FIRST + 71)

Global Const $LVM_SETICONSPACING = ($LVM_FIRST + 53)

Global Const $LVM_SETITEMCOUNT = ($LVM_FIRST + 47)

Global Const $LVM_SETITEMPOSITION = ($LVM_FIRST + 15)

Global Const $LVM_SETITEMSTATE = ($LVM_FIRST + 43)

Global Const $LVM_SETITEMTEXTA = ($LVM_FIRST + 46)

Global Const $LVM_SETSELECTEDCOLUMN = ($LVM_FIRST + 140)

Global Const $LVM_SETTEXTCOLOR = ($LVM_FIRST + 36)

Global Const $LVM_SETTEXTBKCOLOR = ($LVM_FIRST + 38)

Global Const $LVM_SETVIEW = ($LVM_FIRST + 142)

Global Const $LVM_UPDATE = ($LVM_FIRST + 42)

Global Const $LVNI_ABOVE = 256

Global Const $LVNI_BELOW = 512

Global Const $LVNI_TOLEFT = 1024

Global Const $LVNI_TORIGHT = 2048

Global Const $LVNI_ALL = 0

Global Const $LVNI_CUT = 4

Global Const $LVNI_DROPHILITED = 8

Global Const $LVNI_FOCUSED = 1

Global Const $LVNI_SELECTED = 2

Global Const $LVSCW_AUTOSIZE = -1

Global Const $LVSCW_AUTOSIZE_USEHEADER = -2

Global Const $LVSICF_NOINVALIDATEALL = 1

Global Const $LVSICF_NOSCROLL = 2

Global Const $LVSIL_NORMAL = 0

Global Const $LVSIL_SMALL = 1

Global Const $LVSIL_STATE = 2

Global Const $TBS_AUTOTICKS = 1

Global Const $TBS_VERT = 2

Global Const $TBS_HORZ = 0

Global Const $TBS_TOP = 4

Global Const $TBS_BOTTOM = 0

Global Const $TBS_LEFT = 4

Global Const $TBS_RIGHT = 0

Global Const $TBS_BOTH = 8

Global Const $TBS_NOTICKS = 16

Global Const $TBS_NOTHUMB = 128

Global Const $TWM_USER = 1024

Global Const $TBM_CLEARTICS = ($TWM_USER + 9)

Global Const $TBM_GETLINESIZE = ($TWM_USER + 24)

Global Const $TBM_GETPAGESIZE = ($TWM_USER + 22)

Global Const $TBM_GETNUMTICS = ($TWM_USER + 16)

Global Const $TBM_GETPOS = $TWM_USER

Global Const $TBM_GETRANGEMAX = ($TWM_USER + 2)

Global Const $TBM_GETRANGEMIN = ($TWM_USER + 1)

Global Const $TBM_SETLINESIZE = ($TWM_USER + 23)

Global Const $TBM_SETPAGESIZE = ($TWM_USER + 21)

Global Const $TBM_SETPOS = ($TWM_USER + 5)

Global Const $TBM_SETTICFREQ = ($TWM_USER + 20)

Global Const $TVS_HASBUTTONS = 1

Global Const $TVS_HASLINES = 2

Global Const $TVS_LINESATROOT = 4

Global Const $TVS_DISABLEDRAGDROP = 16

Global Const $TVS_SHOWSELALWAYS = 32

Global Const $TVS_NOTOOLTIPS = 128

Global Const $TVS_CHECKBOXES = 256

Global Const $TVS_TRACKSELECT = 512

Global Const $TVS_SINGLEEXPAND = 1024

Global Const $TVS_FULLROWSELECT = 4096

Global Const $TVS_NOSCROLL = 8192

Global Const $TVS_NONEVENHEIGHT = 16384

Global Const $TVE_COLLAPSE = 1

Global Const $TVE_EXPAND = 2

Global Const $TVE_TOGGLE = 3

Global Const $TVE_EXPANDPARTIAL = 16384

Global Const $TVE_COLLAPSERESET = 32768

Global Const $TVGN_ROOT = 0

Global Const $TVGN_NEXT = 1

Global Const $TVGN_PARENT = 3

Global Const $TVGN_CHILD = 4

Global Const $TVGN_CARET = 9

Global Const $TVI_ROOT = -65536

Global Const $TVI_FIRST = -65535

Global Const $TVI_LAST = -65534

Global Const $TVI_SORT = -65533

Global Const $TVIF_TEXT = 1

Global Const $TVIF_IMAGE = 2

Global Const $TVIF_PARAM = 4

Global Const $TVIF_STATE = 8

Global Const $TVIF_HANDLE = 16

Global Const $TVIF_SELECTEDIMAGE = 32

Global Const $TVIF_CHILDREN = 64

Global Const $TVIS_SELECTED = 2

Global Const $TVIS_CUT = 4

Global Const $TVIS_DROPHILITED = 8

Global Const $TVIS_BOLD = 16

Global Const $TVIS_EXPANDED = 32

Global Const $TVIS_EXPANDEDONCE = 64

Global Const $TVIS_EXPANDPARTIAL = 128

Global Const $TVIS_OVERLAYMASK = 3840

Global Const $TVIS_STATEIMAGEMASK = 61440

Global Const $TV_FIRST = 4352

Global Const $TVM_INSERTITEM = $TV_FIRST + 0

Global Const $TVM_DELETEITEM = $TV_FIRST + 1

Global Const $TVM_EXPAND = $TV_FIRST + 2

Global Const $TVM_GETCOUNT = $TV_FIRST + 5

Global Const $TVM_GETINDENT = $TV_FIRST + 6

Global Const $TVM_SETINDENT = $TV_FIRST + 7

Global Const $TVM_GETIMAGELIST = $TV_FIRST + 8

Global Const $TVM_SETIMAGELIST = $TV_FIRST + 9

Global Const $TVM_GETNEXTITEM = $TV_FIRST + 10

Global Const $TVM_SELECTITEM = $TV_FIRST + 11

Global Const $TVM_GETITEM = $TV_FIRST + 12

Global Const $TVM_SETITEM = $TV_FIRST + 13

Global Const $TVM_SORTCHILDREN = $TV_FIRST + 19

Global Const $TVM_ENSUREVISIBLE = $TV_FIRST + 20

Global Const $TVM_SETBKCOLOR = $TV_FIRST + 29

Global Const $TVM_SETTEXTCOLOR = $TV_FIRST + 30

Global Const $TVM_GETBKCOLOR = $TV_FIRST + 31

Global Const $TVM_GETTEXTCOLOR = $TV_FIRST + 32

Global Const $TVM_SETLINECOLOR = $TV_FIRST + 40

Global Const $TVM_GETLINECOLOR = $TV_FIRST + 41

Global Const $UDS_WRAP = 1

Global Const $UDS_SETBUDDYINT = 2

Global Const $UDS_ALIGNRIGHT = 4

Global Const $UDS_ALIGNLEFT = 8

Global Const $UDS_ARROWKEYS = 32

Global Const $UDS_HORZ = 64

Global Const $UDS_NOTHOUSANDS = 128

Global Const $GUI_SS_DEFAULT_AVI = $ACS_TRANSPARENT

Global Const $GUI_SS_DEFAULT_BUTTON = 0

Global Const $GUI_SS_DEFAULT_CHECKBOX = 0

Global Const $GUI_SS_DEFAULT_COMBO = BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL)

Global Const $GUI_SS_DEFAULT_DATE = $DTS_LONGDATEFORMAT

Global Const $GUI_SS_DEFAULT_EDIT = BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)

Global Const $GUI_SS_DEFAULT_GRAPHIC = 0

Global Const $GUI_SS_DEFAULT_GROUP = 0

Global Const $GUI_SS_DEFAULT_ICON = $SS_NOTIFY

Global Const $GUI_SS_DEFAULT_INPUT = BitOR($ES_LEFT, $ES_AUTOHSCROLL)

Global Const $GUI_SS_DEFAULT_LABEL = 0

Global Const $GUI_SS_DEFAULT_LIST = BitOR($LBS_SORT, $WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY)

Global Const $GUI_SS_DEFAULT_LISTVIEW = BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL)

Global Const $GUI_SS_DEFAULT_MONTHCAL = 0

Global Const $GUI_SS_DEFAULT_PIC = $SS_NOTIFY

Global Const $GUI_SS_DEFAULT_PROGRESS = 0

Global Const $GUI_SS_DEFAULT_RADIO = 0

Global Const $GUI_SS_DEFAULT_SLIDER = $TBS_AUTOTICKS

Global Const $GUI_SS_DEFAULT_TAB = 0

Global Const $GUI_SS_DEFAULT_TREEVIEW = BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)

Global Const $GUI_SS_DEFAULT_UPDOWN = $UDS_ALIGNRIGHT

Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)

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

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_3STATE = 5

Global Const $BS_AUTO3STATE = 6

Global Const $BS_AUTOCHECKBOX = 3

Global Const $BS_CHECKBOX = 2

Global Const $BS_AUTORADIOBUTTON = 9

Global Const $TCS_SCROLLOPPOSITE = 1

Global Const $TCS_BOTTOM = 2

Global Const $TCS_RIGHT = 2

Global Const $TCS_MULTISELECT = 4

Global Const $TCS_FLATBUTTONS = 8

Global Const $TCS_FORCEICONLEFT = 16

Global Const $TCS_FORCELABELLEFT = 32

Global Const $TCS_HOTTRACK = 64

Global Const $TCS_VERTICAL = 128

Global Const $TCS_TABS = 0

Global Const $TCS_BUTTONS = 256

Global Const $TCS_SINGLELINE = 0

Global Const $TCS_MULTILINE = 512

Global Const $TCS_RIGHTJUSTIFY = 0

Global Const $TCS_FIXEDWIDTH = 1024

Global Const $TCS_RAGGEDRIGHT = 2048

Global Const $TCS_FOCUSONBUTTONDOWN = 4096

Global Const $TCS_OWNERDRAWFIXED = 8192

Global Const $TCS_TOOLTIPS = 16384

Global Const $TCS_FOCUSNEVER = 32768

Global Const $TCS_EX_FLATSEPARATORS = 1

Global Const $TC_ERR = -1

Global Const $TCIS_BUTTONPRESSED = 1

Global Const $TCS_EX_REGISTERDROP = 2

Global Const $TCM_FIRST = 4864

Global Const $TCM_DELETEALLITEMS = ($TCM_FIRST + 9)

Global Const $TCM_DELETEITEM = ($TCM_FIRST + 8)

Global Const $TCM_DESELECTALL = ($TCM_FIRST + 50)

Global Const $TCM_GETCURFOCUS = ($TCM_FIRST + 47)

Global Const $TCM_GETCURSEL = ($TCM_FIRST + 11)

Global Const $TCM_GETEXTENDEDSTYLE = ($TCM_FIRST + 53)

Global Const $TCM_GETITEMCOUNT = ($TCM_FIRST + 4)

Global Const $TCM_GETITEMRECT = ($TCM_FIRST + 10)

Global Const $TCM_GETROWCOUNT = ($TCM_FIRST + 44)

Global Const $TCM_SETITEMSIZE = $TCM_FIRST + 41

Global Const $TCCM_FIRST = 8192

Global Const $TCCM_GETUNICODEFORMAT = ($TCCM_FIRST + 6)

Global Const $TCM_GETUNICODEFORMAT = $TCCM_GETUNICODEFORMAT

Global Const $TCM_HIGHLIGHTITEM = ($TCM_FIRST + 51)

Global Const $TCM_SETCURFOCUS = ($TCM_FIRST + 48)

Global Const $TCM_SETCURSEL = ($TCM_FIRST + 12)

Global Const $TCM_SETMINTABWIDTH = ($TCM_FIRST + 49)

Global Const $TCM_SETPADDING = ($TCM_FIRST + 43)

Global Const $TCCM_SETUNICODEFORMAT = ($TCCM_FIRST + 5)

Global Const $TCM_SETUNICODEFORMAT = $TCCM_SETUNICODEFORMAT

Global Const $TCN_FIRST = -550

Global Const $TCN_SELCHANGE = ($TCN_FIRST - 1)

Global Const $TCN_SELCHANGING = ($TCN_FIRST - 2)

Global Const $PBS_SMOOTH = 1

Global Const $PBS_VERTICAL = 4

 

Func _HEXTOSTRING($STRHEX)

Local $STRCHAR, $ARYHEX, $I, $IDEC, $CHAR, $IONE, $ITWO

$ARYHEX = StringSplit($STRHEX, "")

If Mod($ARYHEX[0], 2) <> 0 Then

SetError(1)

Return -1

EndIf

For $I = 1 To $ARYHEX[0]

$IONE = $ARYHEX[$I]

$I = $I + 1

$ITWO = $ARYHEX[$I]

$IDEC = Dec($IONE & $ITWO)

If @error <> 0 Then

SetError(1)

Return -1

EndIf

$CHAR = Chr($IDEC)

$STRCHAR &= $CHAR

Next

Return $STRCHAR

EndFunc

 

 

Func _STRINGADDCOMMA($SSTR, $SSEPARATOR = -1, $SEND = -1)

If $SSEPARATOR = -1 Or $SSEPARATOR = Default Then $SSEPARATOR = ","

If $SEND = -1 Or $SEND = Default Then $SEND = "."

Local $ANUM = StringSplit($SSTR, $SEND), $SHOLD = "", $ASRE, $BUB = False

If UBound($ANUM) > 2 Then

$ASRE = StringRegExp($ANUM[1], "(\d+)(\d{3})", 1)

$BUB = True

Else

$ASRE = StringRegExp($SSTR, "(\d+)(\d{3})", 3)

EndIf

If UBound($ASRE) = 2 Then

While IsArray($ASRE)

$SHOLD = $SSEPARATOR & $ASRE[1] & $SHOLD

$ASRE = StringRegExp($ASRE[0], "(\d+)(\d{3})", 3)

WEnd

EndIf

Local $NSTRLEN = StringLen(StringReplace($SHOLD, $SSEPARATOR, ""))

If $BUB And $SHOLD Then

Return StringTrimRight($ANUM[1], $NSTRLEN) & $SHOLD & $SEND & $ANUM[2]

ElseIf $SHOLD Then

Return StringTrimRight($SSTR, $NSTRLEN) & $SHOLD

EndIf

Return SetError(1, 0, $SSTR)

EndFunc

 

 

Func _STRINGBETWEEN($SSTRING, $SSTART, $SEND, $VCASE = -1, $ISRE = -1)

If $ISRE = -1 Or $ISRE = Default Then

If $VCASE = -1 Or $VCASE = Default Then

$VCASE = 0

Else

$VCASE = 1

EndIf

Local $SHOLD = "", $SSNSSTART = "", $SSNSEND = ""

While StringLen($SSTRING) > 0

$SSNSSTART = StringInStr($SSTRING, $SSTART, $VCASE)

If Not $SSNSSTART Then ExitLoop

$SSTRING = StringTrimLeft($SSTRING, ($SSNSSTART + StringLen($SSTART)) - 1)

$SSNSEND = StringInStr($SSTRING, $SEND, $VCASE)

If Not $SSNSEND Then ExitLoop

$SHOLD &= StringLeft($SSTRING, $SSNSEND - 1) & Chr(1)

$SSTRING = StringTrimLeft($SSTRING, $SSNSEND)

WEnd

If Not $SHOLD Then Return SetError(1, 0, 0)

$SHOLD = StringSplit(StringTrimRight($SHOLD, 1), Chr(1))

Local $AVARRAY[uBound($SHOLD) - 1]

For $ICC = 1 To UBound($SHOLD) - 1

$AVARRAY[$ICC - 1] = $SHOLD[$ICC]

Next

Return $AVARRAY

Else

If $VCASE = Default Or $VCASE = -1 Then

$VCASE = "(?i)"

Else

$VCASE = ""

EndIf

Local $AARRAY = StringRegExp($SSTRING, "(?s)" & $VCASE & $SSTART & "(.*?)" & $SEND, 3)

If IsArray($AARRAY) Then Return $AARRAY

Return SetError(1, 0, 0)

EndIf

EndFunc

 

 

Func _STRINGENCRYPT($I_ENCRYPT, $S_ENCRYPTTEXT, $S_ENCRYPTPASSWORD, $I_ENCRYPTLEVEL = 1)

If $I_ENCRYPT <> 0 And $I_ENCRYPT <> 1 Then

SetError(1)

Return ""

ElseIf $S_ENCRYPTTEXT = "" Or $S_ENCRYPTPASSWORD = "" Then

SetError(1)

Return ""

Else

If Number($I_ENCRYPTLEVEL) <= 0 Or Int($I_ENCRYPTLEVEL) <> $I_ENCRYPTLEVEL Then $I_ENCRYPTLEVEL = 1

Local $V_ENCRYPTMODIFIED

Local $I_ENCRYPTCOUNTH

Local $I_ENCRYPTCOUNTG

Local $V_ENCRYPTSWAP

Local $AV_ENCRYPTBOX[256][2]

Local $I_ENCRYPTCOUNTA

Local $I_ENCRYPTCOUNTB

Local $I_ENCRYPTCOUNTC

Local $I_ENCRYPTCOUNTD

Local $I_ENCRYPTCOUNTE

Local $V_ENCRYPTCIPHER

Local $V_ENCRYPTCIPHERBY

If $I_ENCRYPT = 1 Then

For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1

$I_ENCRYPTCOUNTG = ""

$I_ENCRYPTCOUNTH = ""

$V_ENCRYPTMODIFIED = ""

For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)

If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then

$I_ENCRYPTCOUNTH = 1

Else

$I_ENCRYPTCOUNTH += 1

EndIf

$V_ENCRYPTMODIFIED = $V_ENCRYPTMODIFIED & Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))

Next

$S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED

$I_ENCRYPTCOUNTA = ""

$I_ENCRYPTCOUNTB = 0

$I_ENCRYPTCOUNTC = ""

$I_ENCRYPTCOUNTD = ""

$I_ENCRYPTCOUNTE = ""

$V_ENCRYPTCIPHERBY = ""

$V_ENCRYPTCIPHER = ""

$V_ENCRYPTSWAP = ""

$AV_ENCRYPTBOX = ""

Local $AV_ENCRYPTBOX[256][2]

For $I_ENCRYPTCOUNTA = 0 To 255

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA

Next

For $I_ENCRYPTCOUNTA = 0 To 255

$I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)

$V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP

Next

For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT)

$I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)

$I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)

$I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256)][0]

$V_ENCRYPTCIPHERBY = BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 1)), $I_ENCRYPTCOUNTE)

$V_ENCRYPTCIPHER &= Hex($V_ENCRYPTCIPHERBY, 2)

Next

$S_ENCRYPTTEXT = $V_ENCRYPTCIPHER

Next

Else

For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1

$I_ENCRYPTCOUNTB = 0

$I_ENCRYPTCOUNTC = ""

$I_ENCRYPTCOUNTD = ""

$I_ENCRYPTCOUNTE = ""

$V_ENCRYPTCIPHERBY = ""

$V_ENCRYPTCIPHER = ""

$V_ENCRYPTSWAP = ""

$AV_ENCRYPTBOX = ""

Local $AV_ENCRYPTBOX[256][2]

For $I_ENCRYPTCOUNTA = 0 To 255

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA

Next

For $I_ENCRYPTCOUNTA = 0 To 255

$I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)

$V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP

Next

For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT) Step 2

$I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)

$I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)

$I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256)][0]

$V_ENCRYPTCIPHERBY = BitXOR(Dec(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 2)), $I_ENCRYPTCOUNTE)

$V_ENCRYPTCIPHER = $V_ENCRYPTCIPHER & Chr($V_ENCRYPTCIPHERBY)

Next

$S_ENCRYPTTEXT = $V_ENCRYPTCIPHER

$I_ENCRYPTCOUNTG = ""

$I_ENCRYPTCOUNTH = ""

$V_ENCRYPTMODIFIED = ""

For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)

If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then

$I_ENCRYPTCOUNTH = 1

Else

$I_ENCRYPTCOUNTH += 1

EndIf

$V_ENCRYPTMODIFIED &= Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))

Next

$S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED

Next

EndIf

Return $S_ENCRYPTTEXT

EndIf

EndFunc

 

 

Func _STRINGINSERT($S_STRING, $S_INSERTSTRING, $I_POSITION)

Local $I_LENGTH, $S_START, $S_END

If $S_STRING = "" Or (Not IsString($S_STRING)) Then

SetError(1)

Return $S_STRING

ElseIf $S_INSERTSTRING = "" Or (Not IsString($S_STRING)) Then

SetError(2)

Return $S_STRING

Else

$I_LENGTH = StringLen($S_STRING)

If (Abs($I_POSITION) > $I_LENGTH) Or (Not IsInt($I_POSITION)) Then

SetError(3)

Return $S_STRING

EndIf

EndIf

If $I_POSITION = 0 Then

Return $S_INSERTSTRING & $S_STRING

ElseIf $I_POSITION > 0 Then

$S_START = StringLeft($S_STRING, $I_POSITION)

$S_END = StringRight($S_STRING, $I_LENGTH - $I_POSITION)

Return $S_START & $S_INSERTSTRING & $S_END

ElseIf $I_POSITION < 0 Then

$S_START = StringLeft($S_STRING, Abs($I_LENGTH + $I_POSITION))

$S_END = StringRight($S_STRING, Abs($I_POSITION))

Return $S_START & $S_INSERTSTRING & $S_END

EndIf

EndFunc

 

 

Func _STRINGPROPER($S_STR)

Local $IX = 0

Local $CAPNEXT = 1

Local $S_NSTR = ""

Local $S_CURCHAR

For $IX = 1 To StringLen($S_STR)

$S_CURCHAR = StringMid($S_STR, $IX, 1)

Select

Case $CAPNEXT = 1

If __CHARACTERISAPHA($S_CURCHAR) Then

$S_CURCHAR = StringUpper($S_CURCHAR)

$CAPNEXT = 0

EndIf

Case Not __CHARACTERISAPHA($S_CURCHAR)

$CAPNEXT = 1

Case Else

$S_CURCHAR = StringLower($S_CURCHAR)

EndSelect

$S_NSTR &= $S_CURCHAR

Next

Return ($S_NSTR)

EndFunc

 

 

Func _STRINGREPEAT($SSTRING, $IREPEATCOUNT)

Local $SRESULT

Select

Case Not StringIsInt($IREPEATCOUNT)

SetError(1)

Return ""

Case StringLen($SSTRING) < 1

SetError(1)

Return ""

Case $IREPEATCOUNT <= 0

SetError(1)

Return ""

Case Else

For $ICOUNT = 1 To $IREPEATCOUNT

$SRESULT &= $SSTRING

Next

Return $SRESULT

EndSelect

EndFunc

 

 

Func _STRINGREVERSE($SSTRING)

Local $SREVERSE

Local $ICOUNT

If StringLen($SSTRING) >= 1 Then

For $ICOUNT = 1 To StringLen($SSTRING)

$SREVERSE = StringMid($SSTRING, $ICOUNT, 1) & $SREVERSE

Next

Return $SREVERSE

Else

SetError(1)

Return ""

EndIf

EndFunc

 

 

Func _STRINGTOHEX($STRCHAR)

Local $ARYCHAR, $I, $IDEC, $HCHAR, $STRHEX

$ARYCHAR = StringSplit($STRCHAR, "")

For $I = 1 To $ARYCHAR[0]

$IDEC = Asc($ARYCHAR[$I])

$HCHAR = Hex($IDEC, 2)

$STRHEX &= $HCHAR

Next

Return $STRHEX

EndFunc

 

 

Func __CHARACTERISAPHA($S_STR)

Local $A_ALPHA = "abcdefghijklmnopqrstuvwxyz"

Return (StringInStr($A_ALPHA, $S_STR))

EndFunc

 

Global Const $CC_ANYCOLOR = 256

Global Const $CC_FULLOPEN = 2

Global Const $CC_RGBINIT = 1

Global Const $CF_EFFECTS = 256

Global Const $CF_PRINTERFONTS = 2

Global Const $CF_SCREENFONTS = 1

Global Const $CF_NOSCRIPTSEL = 8388608

Global Const $CF_INITTOLOGFONTSTRUCT = 64

Global Const $DEFAULT_PITCH = 0

Global Const $FF_DONTCARE = 0

Global Const $LOGPIXELSX = 88

 

Func _CHOOSECOLOR($I_RETURNTYPE = 0, $I_COLORREF = 0, $I_REFTYPE = 0, $H_WND_OWNER = 0)

Local $CUSTCOLORS = "int[16]"

Local $STRUCT = "dword;int;int;int;ptr;dword;int;ptr;ptr"

Local $P = DllStructCreate($STRUCT)

If @error Then

SetError(-1)

Return -1

EndIf

Local $CC = DllStructCreate($CUSTCOLORS)

If @error Then

SetError(-2)

Return -1

EndIf

If ($I_REFTYPE == 1) Then

$I_COLORREF = Int($I_COLORREF)

ElseIf ($I_REFTYPE == 2) Then

$I_COLORREF = Hex(String($I_COLORREF), 6)

$I_COLORREF = "0x" & StringMid($I_COLORREF, 5, 2) & StringMid($I_COLORREF, 3, 2) & StringMid($I_COLORREF, 1, 2)

EndIf

DllStructSetData($P, 1, DllStructGetSize($P))

DllStructSetData($P, 2, $H_WND_OWNER)

DllStructSetData($P, 4, $I_COLORREF)

DllStructSetData($P, 5, DllStructGetPtr($CC))

DllStructSetData($P, 6, BitOR($CC_ANYCOLOR, $CC_FULLOPEN, $CC_RGBINIT))

Local $RET = DllCall("comdlg32.dll", "long", "ChooseColor", "ptr", DllStructGetPtr($P))

If ($RET[0] == 0) Then

SetError(-3)

Return -1

EndIf

Local $COLOR_PICKED = DllStructGetData($P, 4)

If ($I_RETURNTYPE == 1) Then

Return "0x" & Hex(String($COLOR_PICKED), 6)

ElseIf ($I_RETURNTYPE == 2) Then

$COLOR_PICKED = Hex(String($COLOR_PICKED), 6)

Return "0x" & StringMid($COLOR_PICKED, 5, 2) & StringMid($COLOR_PICKED, 3, 2) & StringMid($COLOR_PICKED, 1, 2)

ElseIf ($I_RETURNTYPE == 0) Then

Return $COLOR_PICKED

Else

SetError(-4)

Return -1

EndIf

EndFunc

 

 

Func _CHOOSEFONT($S_FONTNAME = "Courier New", $I_SIZE = 10, $I_COLORREF = 0, $I_FONTWEIGHT = 0, $I_ITALIC = 0, $I_UNDERLINE = 0, $I_STRIKETHRU = 0, $H_WND_OWNER = 0)

Local $RET = DllCall("gdi32.dll", "long", "GetDeviceCaps", "long", 0, "long", $LOGPIXELSX)

If ($RET[0] == -1) Then

SetError(-3)

Return -1

EndIf

Local $LFHEIGHT = Round(($I_SIZE * $RET[2]) / 72, 0)

Local $LOGFONT = "int;int;int;int;int;byte;byte;byte;byte;byte;byte;byte;byte;char[32]"

Local $STRUCT = "dword;int;int;ptr;int;dword;int;int;ptr;ptr;int;ptr;dword;int;int"

Local $P = DllStructCreate($STRUCT)

If @error Then

SetError(-1)

Return -1

EndIf

Local $LF = DllStructCreate($LOGFONT)

If @error Then

SetError(-2)

Return -1

EndIf

DllStructSetData($P, 1, DllStructGetSize($P))

DllStructSetData($P, 2, $H_WND_OWNER)

DllStructSetData($P, 4, DllStructGetPtr($LF))

DllStructSetData($P, 5, $I_SIZE)

DllStructSetData($P, 6, BitOR($CF_SCREENFONTS, $CF_PRINTERFONTS, $CF_EFFECTS, $CF_INITTOLOGFONTSTRUCT, $CF_NOSCRIPTSEL))

DllStructSetData($P, 7, $I_COLORREF)

DllStructSetData($P, 13, 0)

DllStructSetData($LF, 1, $LFHEIGHT + 1)

DllStructSetData($LF, 5, $I_FONTWEIGHT)

DllStructSetData($LF, 6, $I_ITALIC)

DllStructSetData($LF, 7, $I_UNDERLINE)

DllStructSetData($LF, 8, $I_STRIKETHRU)

DllStructSetData($LF, 14, $S_FONTNAME)

$RET = DllCall("comdlg32.dll", "long", "ChooseFont", "ptr", DllStructGetPtr($P))

If ($RET[0] == 0) Then

SetError(-3)

Return -1

EndIf

Local $FONTNAME = DllStructGetData($LF, 14)

If (StringLen($FONTNAME) == 0 And StringLen($S_FONTNAME) > 0) Then

$FONTNAME = $S_FONTNAME

EndIf

Local $ITALIC = 0

Local $UNDERLINE = 0

Local $STRIKEOUT = 0

If (DllStructGetData($LF, 6)) Then

$ITALIC = 2

EndIf

If (DllStructGetData($LF, 7)) Then

$UNDERLINE = 4

EndIf

If (DllStructGetData($LF, 8)) Then

$STRIKEOUT = 8

EndIf

Local $ATTRIBUTES = BitOR($ITALIC, $UNDERLINE, $STRIKEOUT)

Local $SIZE = DllStructGetData($P, 5) / 10

Local $WEIGHT = DllStructGetData($LF, 5)

Local $COLORREF = DllStructGetData($P, 7)

Local $COLOR_PICKED = Hex(String($COLORREF), 6)

Return StringSplit($ATTRIBUTES & "," & $FONTNAME & "," & $SIZE & "," & $WEIGHT & "," & $COLORREF & "," & "0x" & $COLOR_PICKED & "," & "0x" & StringMid($COLOR_PICKED, 5, 2) & StringMid($COLOR_PICKED, 3, 2) & StringMid($COLOR_PICKED, 1, 2), ",")

EndFunc

 

 

Func _CLIPPUTFILE($SFILE, $SSEPERATOR = "|")

Local $VDLLCALLTMP, $NGLOBMEMSIZE, $HGLOBAL, $DROPFILES, $I, $HLOCK

Local $GMEM_MOVEABLE = 2, $CF_HDROP = 15

$SFILE = $SFILE & $SSEPERATOR & $SSEPERATOR

$NGLOBMEMSIZE = StringLen($SFILE) + 20

$VDLLCALLTMP = DllCall("user32.dll", "int", "OpenClipboard", "hwnd", 0)

If @error Or $VDLLCALLTMP[0] = 0 Then

SetError(1)

Return False

EndIf

$VDLLCALLTMP = DllCall("user32.dll", "int", "EmptyClipboard")

If @error Or $VDLLCALLTMP[0] = 0 Then

SetError(2)

Return False

EndIf

$VDLLCALLTMP = DllCall("kernel32.dll", "long", "GlobalAlloc", "int", $GMEM_MOVEABLE, "int", $NGLOBMEMSIZE)

If @error Or $VDLLCALLTMP[0] < 1 Then

SetError(3)

Return False

EndIf

$HGLOBAL = $VDLLCALLTMP[0]

$VDLLCALLTMP = DllCall("kernel32.dll", "long", "GlobalLock", "long", $HGLOBAL)

If @error Or $VDLLCALLTMP[0] < 1 Then

SetError(4)

Return False

EndIf

$HLOCK = $VDLLCALLTMP[0]

$DROPFILES = DllStructCreate("dword;ptr;int;int;int;char[" & StringLen($SFILE) & "]", $HLOCK)

If @error Then

SetError(5)

Return False

EndIf

DllStructSetData($DROPFILES, 1, DllStructGetSize($DROPFILES) - StringLen($SFILE))

DllStructSetData($DROPFILES, 2, 0)

DllStructSetData($DROPFILES, 3, 0)

DllStructSetData($DROPFILES, 4, 0)

DllStructSetData($DROPFILES, 5, 0)

DllStructSetData($DROPFILES, 6, $SFILE)

For $I = 1 To StringLen($SFILE)

If DllStructGetData($DROPFILES, 6, $I) = Asc($SSEPERATOR) Then DllStructSetData($DROPFILES, 6, 0, $I)

Next

$VDLLCALLTMP = DllCall("user32.dll", "long", "SetClipboardData", "int", $CF_HDROP, "long", $HGLOBAL)

If @error Or $VDLLCALLTMP[0] < 1 Then

SetError(6)

$DROPFILES = 0

Return False

EndIf

$VDLLCALLTMP = DllCall("user32.dll", "int", "CloseClipboard")

If @error Or $VDLLCALLTMP[0] = 0 Then

SetError(7)

$DROPFILES = 0

Return False

EndIf

$VDLLCALLTMP = DllCall("kernel32.dll", "int", "GlobalUnlock", "long", $HGLOBAL)

If @error Then

SetError(8)

$DROPFILES = 0

Return False

EndIf

$VDLLCALLTMP = DllCall("kernel32.dll", "int", "GetLastError")

If $VDLLCALLTMP = 0 Then

$DROPFILES = 0

SetError(8)

Return False

Else

$DROPFILES = 0

Return True

EndIf

EndFunc

 

 

Func _IIF($F_TEST, $V_TRUEVAL, $V_FALSEVAL)

If $F_TEST Then

Return $V_TRUEVAL

Else

Return $V_FALSEVAL

EndIf

EndFunc

 

 

Func _MOUSETRAP($I_LEFT = 0, $I_TOP = 0, $I_RIGHT = 0, $I_BOTTOM = 0)

Local $AV_RET

If @NumParams == 0 Then

$AV_RET = DllCall("user32.dll", "int", "ClipCursor", "int", 0)

Else

If @NumParams == 2 Then

$I_RIGHT = $I_LEFT + 1

$I_BOTTOM = $I_TOP + 1

EndIf

Local $RECT = DllStructCreate("int;int;int;int")

If @error Then Return 0

DllStructSetData($RECT, 1, $I_LEFT)

DllStructSetData($RECT, 2, $I_TOP)

DllStructSetData($RECT, 3, $I_RIGHT)

DllStructSetData($RECT, 4, $I_BOTTOM)

$AV_RET = DllCall("user32.dll", "int", "ClipCursor", "ptr", DllStructGetPtr($RECT))

EndIf

Return $AV_RET[0]

EndFunc

 

 

Func _SINGLETON($OCCURENCENAME, $FLAG = 0)

Local $ERROR_ALREADY_EXISTS = 183

$OCCURENCENAME = StringReplace($OCCURENCENAME, "\", "")

Local $HANDLE = DllCall("kernel32.dll", "int", "CreateMutex", "int", 0, "long", 1, "str", $OCCURENCENAME)

Local $LASTERROR = DllCall("kernel32.dll", "int", "GetLastError")

If $LASTERROR[0] = $ERROR_ALREADY_EXISTS Then

If $FLAG = 0 Then

Exit -1

Else

SetError($LASTERROR[0])

Return 0

EndIf

EndIf

Return $HANDLE[0]

EndFunc

 

 

Func _ISPRESSED($S_HEXKEY, $V_DLL = "user32.dll")

Local $A_R = DllCall($V_DLL, "int", "GetAsyncKeyState", "int", "0x" & $S_HEXKEY)

If Not @error And BitAND($A_R[0], 32768) = 32768 Then Return 1

Return 0

EndFunc

 

 

Func _SENDMESSAGE($H_HWND, $I_MSG, $WPARAM = 0, $LPARAM = 0, $I_R = 0, $S_T1 = "int", $S_T2 = "int")

Local $A_RET = DllCall("user32.dll", "long", "SendMessage", "hwnd", $H_HWND, "int", $I_MSG, $S_T1, $WPARAM, $S_T2, $LPARAM)

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

If $I_R >= 0 And $I_R <= 4 Then Return $A_RET[$I_R]

Return $A_RET

EndFunc

 

 

Func _ISCLASSNAME($H_HWND, $S_CLASSNAME)

If Not IsHWnd($H_HWND) Then $H_HWND = GUICtrlGetHandle($H_HWND)

Local $ARESULT = DllCall("user32.dll", "int", "GetClassNameA", "hwnd", $H_HWND, "str", "", "int", 256)

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

If IsArray($ARESULT) Then

If StringUpper(StringMid($ARESULT[2], 1, StringLen($S_CLASSNAME))) = StringUpper($S_CLASSNAME) Then

Return 1

Else

Return 0

EndIf

Else

Return SetError(-1, -1, 0)

EndIf

EndFunc

 

 

Func _VERSIONCOMPARE($SVERSION1, $SVERSION2)

If $SVERSION1 = $SVERSION2 Then Return 0

Local $SEP = "."

If StringInStr($SVERSION1, $SEP) = 0 Then $SEP = ","

Local $AVERSION1 = StringSplit($SVERSION1, $SEP)

Local $AVERSION2 = StringSplit($SVERSION2, $SEP)

If UBound($AVERSION1) <> UBound($AVERSION2) Or UBound($AVERSION1) = 0 Then

SetExtended(1)

If $SVERSION1 > $SVERSION2 Then

Return 1

ElseIf $SVERSION1 < $SVERSION2 Then

Return -1

EndIf

Else

For $I = 1 To UBound($AVERSION1) - 1

If StringIsDigit($AVERSION1[$I]) And StringIsDigit($AVERSION2[$I]) Then

If Number($AVERSION1[$I]) > Number($AVERSION2[$I]) Then

Return 1

ElseIf Number($AVERSION1[$I]) < Number($AVERSION2[$I]) Then

Return -1

EndIf

Else

SetExtended(1)

If $AVERSION1[$I] > $AVERSION2[$I] Then

Return 1

ElseIf $AVERSION1[$I] < $AVERSION2[$I] Then

Return -1

EndIf

EndIf

Next

EndIf

SetError(2)

Return 0

EndFunc

 

 

Func _GUICTRLCOMBOADDDIR($H_COMBOBOX, $S_ATTRIBUTES, $S_FILE = "")

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $I, $V_ATTRIBUTES = "", $I_DRIVES = 0, $NO_BRACKETS = 0

Local $V_RET, $A_ATTRIBUTES = StringSplit($S_ATTRIBUTES, ",")

For $I = 1 To $A_ATTRIBUTES[0]

Select

Case StringUpper($A_ATTRIBUTES[$I]) = "A"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_ARCHIVE

Else

$V_ATTRIBUTES = $CB_DDL_ARCHIVE

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "D"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_DIRECTORY

Else

$V_ATTRIBUTES = $CB_DDL_DIRECTORY

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "H"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_HIDDEN

Else

$V_ATTRIBUTES = $CB_DDL_HIDDEN

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "RO"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_READONLY

Else

$V_ATTRIBUTES = $CB_DDL_READONLY

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "RW"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_READWRITE

Else

$V_ATTRIBUTES = $CB_DDL_READWRITE

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "S"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_SYSTEM

Else

$V_ATTRIBUTES = $CB_DDL_SYSTEM

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "DRIVES"

$I_DRIVES = 1

$S_FILE = ""

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_DRIVES

Else

$V_ATTRIBUTES = $CB_DDL_DRIVES

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "E"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_EXCLUSIVE

Else

$V_ATTRIBUTES = $CB_DDL_EXCLUSIVE

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "NB"

If (StringLen($V_ATTRIBUTES) > 0) And StringInStr($S_ATTRIBUTES, "DRIVES") Then

$NO_BRACKETS = 1

Else

$NO_BRACKETS = 0

EndIf

Case Else

Return $CB_ERRATTRIBUTE

EndSelect

Next

If (Not $I_DRIVES And StringLen($S_FILE) == 0) Then Return $CB_ERRREQUIRED

If $I_DRIVES And $NO_BRACKETS Then

Local $S_TEXT

Local $GUI_NO_BRACKETS = GUICreate("no brackets")

Local $COMBO_NO_BRACKETS = GUICtrlCreateCombo("", 70, 10, 270, 100, $CBS_SIMPLE)

$V_RET = GUICtrlSendMsg($COMBO_NO_BRACKETS, $CB_DIR, $V_ATTRIBUTES, $S_FILE)

For $I = 0 To _GUICTRLCOMBOGETCOUNT($COMBO_NO_BRACKETS) - 1

_GUICTRLCOMBOGETLBTEXT($COMBO_NO_BRACKETS, $I, $S_TEXT)

$S_TEXT = StringReplace(StringReplace(StringReplace($S_TEXT, "[", ""), "]", ":"), "-", "")

_GUICTRLCOMBOINSERTSTRING($H_COMBOBOX, -1, $S_TEXT)

Next

GUIDelete($GUI_NO_BRACKETS)

Return $V_RET

Else

If IsHWnd($H_COMBOBOX) Then

$V_RET = DllCall("user32.dll", "int", "SendMessage", "hwnd", $H_COMBOBOX, "int", $CB_DIR, "int", $V_ATTRIBUTES, "str", $S_FILE)

Return $V_RET[0]

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_DIR, $V_ATTRIBUTES, $S_FILE)

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOADDSTRING($H_COMBOBOX, $S_TEXT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_ADDSTRING, 0, $S_TEXT, 0, "int", "str")

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_ADDSTRING, 0, String($S_TEXT))

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOAUTOCOMPLETE($H_COMBOBOX, ByRef $S_TEXT, $S_WTITLE = "", $S_WTEXT = "")

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

Local $RET, $S_INPUTTEXT, $S_DATA

If _ISPRESSED("08") Then

$S_TEXT = GUICtrlRead($H_COMBOBOX)

Else

If IsHWnd($H_COMBOBOX) Then

If $S_TEXT <> ControlGetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX) Then

$S_DATA = ControlGetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX)

$RET = _GUICTRLCOMBOFINDSTRING($H_COMBOBOX, $S_DATA)

If ($RET <> $CB_ERR) Then

_GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $RET, $S_INPUTTEXT)

ControlSetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX, $S_INPUTTEXT)

_GUICTRLCOMBOSETEDITSEL($H_COMBOBOX, StringLen($S_DATA), StringLen(ControlGetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX)))

EndIf

$S_TEXT = ControlGetText(WinGetTitle(""), "", $H_COMBOBOX)

EndIf

Else

If $S_TEXT <> GUICtrlRead($H_COMBOBOX) Then

$S_DATA = GUICtrlRead($H_COMBOBOX)

$RET = _GUICTRLCOMBOFINDSTRING($H_COMBOBOX, $S_DATA)

If ($RET <> $CB_ERR) Then

_GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $RET, $S_INPUTTEXT)

GUICtrlSetData($H_COMBOBOX, $S_INPUTTEXT)

_GUICTRLCOMBOSETEDITSEL($H_COMBOBOX, StringLen($S_DATA), StringLen(GUICtrlRead($H_COMBOBOX)))

EndIf

$S_TEXT = GUICtrlRead($H_COMBOBOX)

EndIf

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLCOMBODELETESTRING($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_DELETESTRING, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_DELETESTRING, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOFINDSTRING($H_COMBOBOX, $S_SEARCH, $I_EXACT = 0)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

If ($I_EXACT) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_FINDSTRINGEXACT, -1, $S_SEARCH, 0, "int", "str")

Else

Return _SENDMESSAGE($H_COMBOBOX, $CB_FINDSTRING, -1, $S_SEARCH, 0, "int", "str")

EndIf

Else

If ($I_EXACT) Then

Return GUICtrlSendMsg($H_COMBOBOX, $CB_FINDSTRINGEXACT, -1, String($S_SEARCH))

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_FINDSTRING, -1, String($S_SEARCH))

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETCOUNT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETCOUNT)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETCOUNT, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETCURSEL($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETCURSEL)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETCURSEL, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETDROPPEDCONTROLRECT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $RECT = "int;int;int;int"

Local $LEFT = 1

Local $TOP = 2

Local $RIGHT = 3

Local $BOTTOM = 4

Local $STRUCT_RECT

$STRUCT_RECT = DllStructCreate($RECT)

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_GETDROPPEDCONTROLRECT, 0, DllStructGetPtr($STRUCT_RECT), 0, "int", "ptr")

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_GETDROPPEDCONTROLRECT, 0, DllStructGetPtr($STRUCT_RECT))

EndIf

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $ARRAY = StringSplit(DllStructGetData($STRUCT_RECT, $LEFT) & "," & DllStructGetData($STRUCT_RECT, $TOP) & "," & DllStructGetData($STRUCT_RECT, $RIGHT) & "," & DllStructGetData($STRUCT_RECT, $BOTTOM), ",")

Return $ARRAY

EndFunc

 

 

Func _GUICTRLCOMBOGETDROPPEDSTATE($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, False)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETDROPPEDSTATE)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETDROPPEDSTATE, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETDROPPEDWIDTH($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETDROPPEDWIDTH)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETDROPPEDWIDTH, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETEDITSEL($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $STRUCT_START = "dword"

Local $STRUCT_END = "dword"

Local $RET

Local $SS = DllStructCreate($STRUCT_START)

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $SE = DllStructCreate($STRUCT_END)

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

$RET = _SENDMESSAGE($H_COMBOBOX, $CB_GETEDITSEL, DllStructGetPtr($SS), DllStructGetPtr($SE), "int", "ptr", "ptr")

Else

$RET = GUICtrlSendMsg($H_COMBOBOX, $CB_GETEDITSEL, DllStructGetPtr($SS), DllStructGetPtr($SE))

EndIf

If (Not $RET) Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $S_START_END = DllStructGetData($SS, 1) & "," & DllStructGetData($SE, 1)

Return StringSplit($S_START_END, ",")

EndFunc

 

 

Func _GUICTRLCOMBOGETEXTENDEDUI($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, False)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETEXTENDEDUI)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETEXTENDEDUI, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETHORIZONTALEXTENT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETHORIZONTALEXTENT)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETHORIZONTALEXTENT, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETITEMHEIGHT($H_COMBOBOX, $I_INDEX = -1)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETITEMHEIGHT, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETITEMHEIGHT, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $I_INDEX, ByRef $S_TEXT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $LEN = _GUICTRLCOMBOGETLBTEXTLEN($H_COMBOBOX, $I_INDEX)

$S_TEXT = ""

Local $RET, $STRUCT = DllStructCreate("char[" & $LEN + 1 & "]")

If Not IsHWnd($H_COMBOBOX) Then $H_COMBOBOX = GUICtrlGetHandle($H_COMBOBOX)

$RET = DllCall("user32.dll", "int", "SendMessageA", "hwnd", $H_COMBOBOX, "int", $CB_GETLBTEXT, "int", $I_INDEX, "ptr", DllStructGetPtr($STRUCT))

If ($RET[0] == $CB_ERR) Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

$S_TEXT = DllStructGetData($STRUCT, 1)

Return $RET

EndFunc

 

 

Func _GUICTRLCOMBOGETLBTEXTLEN($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETLBTEXTLEN, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETLBTEXTLEN, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETLIST($H_COMBOBOX, $SDELIMITER = "|")

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, "")

Local $SRESULT, $SITEM

For $I = 0 To _GUICTRLCOMBOGETCOUNT($H_COMBOBOX) - 1

_GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $I, $SITEM)

$SRESULT &= $SITEM & $SDELIMITER

Next

$SRESULT = StringTrimRight($SRESULT, StringLen($SDELIMITER))

Return $SRESULT

EndFunc

 

 

Func _GUICTRLCOMBOGETLOCALE($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return Hex(_SENDMESSAGE($H_COMBOBOX, $CB_GETLOCALE), 4)

Else

Return Hex(GUICtrlSendMsg($H_COMBOBOX, $CB_GETLOCALE, 0, 0), 4)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETMINVISIBLE($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETMINVISIBLE)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETMINVISIBLE, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETTOPINDEX($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETTOPINDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETTOPINDEX, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOINITSTORAGE($H_COMBOBOX, $I_NUM, $I_BYTES)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_INITSTORAGE, $I_NUM, $I_BYTES)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_INITSTORAGE, $I_NUM, $I_BYTES)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOINSERTSTRING($H_COMBOBOX, $I_INDEX, $S_TEXT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_INSERTSTRING, $I_INDEX, $S_TEXT, 0, "int", "str")

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_INSERTSTRING, $I_INDEX, String($S_TEXT))

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOLIMITTEXT($H_COMBOBOX, $I_LIMIT = 0)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_LIMITTEXT, $I_LIMIT)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_LIMITTEXT, $I_LIMIT, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBORESETCONTENT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_RESETCONTENT)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_RESETCONTENT, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSELECTSTRING($H_COMBOBOX, $I_INDEX, $S_SEARCH)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SELECTSTRING, $I_INDEX, $S_SEARCH, 0, "int", "str")

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SELECTSTRING, $I_INDEX, String($S_SEARCH))

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETCURSEL($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETCURSEL, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETCURSEL, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETDROPPEDWIDTH($H_COMBOBOX, $I_WIDTH)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETDROPPEDWIDTH, $I_WIDTH)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETDROPPEDWIDTH, $I_WIDTH, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETEDITSEL($H_COMBOBOX, $I_START, $I_STOP)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETEDITSEL, 0, $I_STOP * 65536 + $I_START)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETEDITSEL, 0, $I_STOP * 65536 + $I_START)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETEXTENDEDUI($H_COMBOBOX, $I_BOOL)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETEXTENDEDUI, $I_BOOL)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETEXTENDEDUI, $I_BOOL, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETHORIZONTALEXTENT($H_COMBOBOX, $I_WIDTH)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_SETHORIZONTALEXTENT, $I_WIDTH)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_SETHORIZONTALEXTENT, $I_WIDTH, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETITEMHEIGHT($H_COMBOBOX, $I_COMPONENT, $I_HEIGHT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETITEMHEIGHT, $I_COMPONENT, $I_HEIGHT)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETITEMHEIGHT, $I_COMPONENT, $I_HEIGHT)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETMINVISIBLE($H_COMBOBOX, $I_MINIMUM)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, False)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETMINVISIBLE, $I_MINIMUM)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETMINVISIBLE, $I_MINIMUM, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETTOPINDEX($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETTOPINDEX, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETTOPINDEX, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSHOWDROPDOWN($H_COMBOBOX, $I_BOOL)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_SHOWDROPDOWN, $I_BOOL)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_SHOWDROPDOWN, $I_BOOL, 0)

EndIf

EndFunc

 

$REGPATH = IniRead("lsetting.ini", "register", "reg", "NotFound")

$LINKPATH = IniRead("lsetting.ini", "patch", "path", "NotFound")

$LAUNCHERTITLE = IniRead("lsetting.ini", "config", "title", "NotFound")

$NOTICEPATH = IniRead("lsetting.ini", "notice", "notice", "NotFound")

$OPTTITLE = IniRead("serverOPTION.ini", "title", "title", "NotFound")

Dim $URL = $LINKPATH & "patch.exe"

Dim $URL01 = $LINKPATH & "patch01.exe"

Dim $URL02 = $LINKPATH & "patch02.exe"

$OIE = ObjCreate("Shell.Explorer.2")

$SET = 1

$PATCH = 1

$EIP = ("http://www.ranultimaonline.tk")

TCPStartup()

$SIP = TCPNameToIP($EIP)

GUICreate("RanUltimaOnline - RUSH", 450, 390, (@DesktopWidth - 450) / 2, (@DesktopHeight - 400) / 2)

GUICtrlSetBkColor(-1, 0)

GUICtrlCreatePic("skin.jpg", 0, 0, 450, 390)

GUICtrlSetState(-1, $GUI_DISABLE)

$LAUNCH = GUICtrlCreateButton("Start Game", 10, 335, 110, 25, 0)

$REGISTER = GUICtrlCreateButton("Register", 210, 335, 70, 25, 0)

$OPTION = GUICtrlCreateButton("Option", 290, 335, 70, 25, 0)

$EXIT = GUICtrlCreateButton("Exit", 370, 335, 70, 25, 0)

$PROGRESS = GUICtrlCreateProgress(10, 370, 430, 10, $PBS_SMOOTH)

$OPTRUN = 0

$GMERUN = 0

$GUIACTIVEX = GUICtrlCreateObj($OIE, 10, 10, 430, 310)

GUICtrlSetState($LAUNCH, $GUI_ENABLE)

InetGet($LINKPATH & "version.ini", "version.ini")

Sleep(500)

$CHK = IniRead("version.ini", "version", "ver", "NotFound")

$CHK2 = IniRead("clientversion.ini", "version", "ver", "NotFound")

If $CHK2 < $CHK Then

$PATCH = 1

ElseIf $CHK2 = $CHK Then

$PATCH = 0

EndIf

FileDelete("version.ini")

GUISetState()

$OIE.navigate($NOTICEPATH)

While 1

$MSG = GUIGetMsg()

Select

Case $MSG = $GUI_EVENT_CLOSE

ExitLoop

Case $MSG = $LAUNCH

If ($PATCH = "1") Then

InetGet($LINKPATH & "version.ini", "version.ini")

Sleep(500)

$CHK = IniRead("version.ini", "version", "ver", "NotFound")

$CHK2 = IniRead("clientversion.ini", "version", "ver", "NotFound")

$PATCH1 = InetGetSize($URL)

$PATCH2 = InetGetSize($URL01)

$PATCH3 = InetGetSize($URL02)

$CLIENTVER = InetGetSize($LINKPATH & "clientversion.ini")

If $CHK2 < $CHK Then

GUICtrlSetState($LAUNCH, $GUI_DISABLE)

If ($PATCH1 > "0") Then

InetGet($URL, "patch.exe", 1, 1)

$FILESIZE = InetGetSize($URL)

While @InetGetActive

TrayTip("Downloading patches", "Bytes = " & @InetGetBytesRead, 5, 16)

GUICtrlSetData($PROGRESS, (@InetGetBytesRead / $FILESIZE) * 100)

Sleep(250)

WEnd

TrayTip("Updating Files", "Please Wait...", 5, 16)

ShellExecute("patch.exe")

Sleep(300)

EndIf

If ($PATCH2 > "0") Then

InetGet($URL01, "patch01.exe", 1, 1)

$FILESIZE01 = InetGetSize($URL01)

While @InetGetActive

TrayTip("Downloading patches", "Bytes = " & @InetGetBytesRead, 5, 16)

GUICtrlSetData($PROGRESS, (@InetGetBytesRead / $FILESIZE01) * 100)

Sleep(250)

WEnd

TrayTip("Updating Files", "Please Wait...", 5, 16)

ShellExecute("patch01.exe")

Sleep(300)

EndIf

If ($PATCH3 > "0") Then

InetGet($URL02, "patch02.exe", 1, 1)

$FILESIZE02 = InetGetSize($URL02)

While @InetGetActive

TrayTip("Downloading patches", "Bytes = " & @InetGetBytesRead, 5, 16)

GUICtrlSetData($PROGRESS, (@InetGetBytesRead / $FILESIZE02) * 100)

Sleep(250)

WEnd

TrayTip("Updating Files", "Please Wait...", 5, 16)

ShellExecute("patch02.exe")

Sleep(300)

EndIf

If ($CLIENTVER > "0") Then

InetGet($LINKPATH & "clientversion.ini", "clientversion.ini", 1, 1)

While @InetGetActive

TrayTip("Done", "You can now start " & $LAUNCHERTITLE & "RAN", 5, 16)

Sleep(250)

WEnd

FileMove("clientversion.ini", "clientversion.ini", 1)

EndIf

FileDelete("version.ini")

FileDelete("patch.exe")

FileDelete("patch01.exe")

FileDelete("patch02.exe")

GUICtrlSetState($LAUNCH, $GUI_ENABLE)

ElseIf $CHK2 = $CHK Then

$SET = 0

FileDelete("version.ini")

EndIf

WinClose($LAUNCHERTITLE & " RAN LAUNCHER by R.U.S.H")

Else

If @error Then

$MASALAH = GUICtrlCreateLabel("Salah Folder !", 304, 416, 89, 17)

Else

If ($GMERUN = "0") Then

$GMERUN = 1

ShellExecute("game.exe", "/app_run")

WinClose($LAUNCHERTITLE & " RAN LAUNCHER by R.U.S.H")

Else

MsgBox(0, $LAUNCHERTITLE & " RAN Game.exe", "You can open the game.exe once!")

EndIf

EndIf

EndIf

Case $MSG = $EXIT

WinClose($OPTTITLE & " Option")

ExitLoop

Case $MSG = $OPTION

If @error Then

$MASALAH = GUICtrlCreateLabel("Salah Folder !", 304, 416, 89, 17)

Else

If ($OPTRUN = "0") Then

$OPTRUN = 1

ShellExecute("option.exe", "/app_run")

Else

MsgBox(0, $LAUNCHERTITLE & " RAN Option", "You can open the option once!")

EndIf

EndIf

Case $MSG = $REGISTER

$OIE2 = _IECREATE($REGPATH)

EndSelect

WEnd

GUIDelete()

Exit

 

 

natomiast twój wygląda tak:

 

#region Header

#endregion

#region Global Variables and Constants

Global Const $IEAU3VERSIONINFO[6] = ["V", 2, 3, 1, "20070813", "V2.3-1"]

Global Const $LSFW_LOCK = 1, $LSFW_UNLOCK = 2

Global $__IELOADWAITTIMEOUT = 300000

Global $__IEAU3DEBUG = False

Global $__IEAU3V1COMPATIBILITY

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)

Local $RESULT, $F_MUSTUNLOCK = 0

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))

SetError($_IESTATUS_SUCCESS)

SetExtended(1)

Return $ORESULT

EndIf

EndIf

If Not $F_VISIBLE Then

$RESULT = __IELOCKSETFOREGROUNDWINDOW($LSFW_LOCK)

If $RESULT Then $F_MUSTUNLOCK = 1

EndIf

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

$O_OBJECT.visible = $F_VISIBLE

If $F_MUSTUNLOCK Then

$RESULT = __IELOCKSETFOREGROUNDWINDOW($LSFW_UNLOCK)

If Not $RESULT Then __IEERRORNOTIFY("Warning", "_IECreate", "", "Foreground Window Unlock Failed!")

EndIf

_IENAVIGATE($O_OBJECT, $S_URL, $F_WAIT)

SetError(@error)

Return $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")

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.navigate ($S_URL)

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndFunc

 

 

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

$S_MODE = StringLower($S_MODE)

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

Local $O_SHELLWINDOWS = $O_SHELL.Windows ()

Local $H_CONTROL, $ORESULT, $F_ISBROWSER, $S_TMP

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

Local $IWINTITLEMATCHMODE = Opt("WinTitleMatchMode")

Opt("WinTitleMatchMode", 2)

$H_CONTROL = ControlGetHandle($S_STRING, "", "Internet Explorer_Server1")

$ORESULT = __IECONTROLGETOBJFROMHWND($H_CONTROL)

Opt("WinTitleMatchMode", $IWINTITLEMATCHMODE)

If IsObj($ORESULT) Then

SetError($_IESTATUS_SUCCESS)

Return $ORESULT

Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndIf

EndIf

For $O_WINDOW In $O_SHELLWINDOWS

$F_ISBROWSER = True

Local $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")

Local $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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "windowtitle"

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

If StringInStr($O_WINDOW.document.title & " - " & $S_TMP, $S_STRING) > 0 Then

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "url"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "text"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "html"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case "hwnd"

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

SetError($_IESTATUS_SUCCESS)

Return $O_WINDOW

EndIf

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSwitch

EndIf

Next

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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"

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Case "DispHTMLWindow2"

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Case "DispHTMLDocument"

$OTEMP = $O_OBJECT.parentWindow

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Case Else

$OTEMP = $O_OBJECT.document.parentWindow

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

Do

If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then

$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()

$F_ABORT = True

EndIf

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

$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT

$F_ABORT = True

EndIf

Sleep(100)

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

EndSwitch

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

Switch $I_ERRORSTATUSCODE

Case $_IESTATUS_SUCCESS

SetError($_IESTATUS_SUCCESS)

Return 1

Case $_IESTATUS_LOADWAITTIMEOUT

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

SetError($_IESTATUS_LOADWAITTIMEOUT, 3)

Return 0

Case $_IESTATUS_ACCESSISDENIED

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

SetError($_IESTATUS_ACCESSISDENIED)

Return 0

Case $_IESTATUS_CLIENTDISCONNECTED

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

SetError($_IESTATUS_CLIENTDISCONNECTED)

Return 0

Case Else

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

SetError($_IESTATUS_GENERALERROR)

Return 0

EndSwitch

EndFunc

 

 

Func _IELOADWAITTIMEOUT($I_TIMEOUT = -1)

If $I_TIMEOUT = -1 Then

SetError($_IESTATUS_SUCCESS)

Return $__IELOADWAITTIMEOUT

Else

$__IELOADWAITTIMEOUT = $I_TIMEOUT

SetError($_IESTATUS_SUCCESS)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

SetError($_IESTATUS_SUCCESS)

Return 1

Else

SetError($_IESTATUS_SUCCESS)

Return 0

EndIf

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.parentwindow.frames.length)

Return $O_OBJECT.document.parentwindow.frames

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.parentwindow.frames.length)

Return $O_OBJECT.document.parentwindow.frames.item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndSelect

EndFunc

 

 

Func _IEFRAMEGETOBJBYNAME(ByRef $O_OBJECT, $S_NAME)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $OTEMP, $OFRAMES, $OFRAME

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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

SetError($_IESTATUS_SUCCESS)

Return $OTEMP.frames ($S_NAME)

EndIf

Next

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $FOUND = 0, $LINK, $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)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndIf

$FOUND = $FOUND + 1

EndIf

Next

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.links.length)

Return $O_OBJECT.document.links

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.links.length)

Return $O_OBJECT.document.links.item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $LINKTEXT, $FOUND = 0, $IMG, $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)

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSelect

If StringInStr($LINKTEXT, $S_LINKTEXT) Then

If ($FOUND = $I_INDEX) Then

$IMG.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndIf

$FOUND = $FOUND + 1

EndIf

Next

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.images.length)

Return $OTEMP.images

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.images.length)

Return $OTEMP.images.item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.forms.length)

Return $OTEMP.forms

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.forms.length)

Return $OTEMP.forms.item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $O_COL, $I_LENGTH = 0

$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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

Return $O_OBJECT.document.forms.item ($S_NAME)

Else

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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

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

Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndIf

EndIf

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.elements.length)

Return $O_OBJECT.elements

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.elements.length)

Return $O_OBJECT.elements.item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $O_COL, $I_LENGTH = 0

$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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

Return $O_OBJECT.elements.item ($S_NAME)

Else

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

SetError($_IESTATUS_SUCCESS)

SetExtended($I_LENGTH)

Return $O_OBJECT.elements.item ($S_NAME, $I_INDEX)

Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndIf

EndIf

EndFunc

 

 

Func _IEFORMELEMENTGETVALUE(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.value

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.value = $S_NEWVALUE

If $F_FIREEVENT Then

$O_OBJECT.fireEvent ("OnChange")

$O_OBJECT.fireEvent ("OnClick")

EndIf

SetError($_IESTATUS_SUCCESS)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $OITEM, $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)

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSwitch

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

Next

Case "byText"

For $OITEM In $OITEMS

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

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSwitch

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

SetError($_IESTATUS_NOMATCH, 2)

Return 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)

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndIf

$OITEM = $OITEMS.item ($I_INDEX)

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSwitch

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 4)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $ICOUNT, $OITEM, $OITEMS, $F_FOUND = False

$S_STRING = String($S_STRING)

$S_NAME = String($S_NAME)

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")

SetError($_IESTATUS_NOMATCH, 3)

Return 0

EndIf

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

$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")

SetError($_IESTATUS_INVALIDVALUE, 5)

Return 0

EndSwitch

If Not $F_FOUND Then

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $OITEM.checked

Case 0

If $OITEM.checked Then

$OITEM.checked = False

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case 1

If Not $OITEM.checked Then

$OITEM.checked = True

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $ICOUNT = 0, $OITEM, $OITEMS, $F_FOUND = False

$S_STRING = String($S_STRING)

$S_NAME = String($S_NAME)

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

If Not IsObj($OITEMS) Then

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

SetError($_IESTATUS_NOMATCH, 3)

Return 0

EndIf

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

$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")

SetError($_IESTATUS_INVALIDVALUE, 5)

Return 0

EndSwitch

If Not $F_FOUND Then

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

Switch $F_SELECT

Case (-1)

SetError($_IESTATUS_SUCCESS)

Return $OITEM.checked

Case 0

If $OITEM.checked Then

$OITEM.checked = False

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case 1

If Not $OITEM.checked Then

$OITEM.checked = True

If $F_FIREEVENT Then

$OITEM.fireEvent ("onChange")

$OITEM.fireEvent ("OnClick")

EndIf

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 4)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Local $LINKTEXT, $FOUND = 0, $IMG, $IMGS

Local $OTEMP = _IEDOCGETOBJ($O_OBJECT)

$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)

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSelect

If StringInStr($LINKTEXT, $S_LINKTEXT) Then

If ($FOUND = $I_INDEX) Then

$IMG.click

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

EndIf

$FOUND = $FOUND + 1

EndIf

EndIf

Next

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Local $O_WINDOW = $O_OBJECT.document.parentWindow

$O_OBJECT.submit

If $F_WAIT Then

_IELOADWAIT($O_WINDOW)

SetError(@error)

Return -1

EndIf

Return -1

EndFunc

 

 

Func _IEFORMRESET(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

$O_OBJECT.reset

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

Select

Case $I_INDEX = -1

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByTagName ("table" ).length)

Return $O_OBJECT.document.GetElementsByTagName ("table")

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByTagName ("table" ).length)

Return $O_OBJECT.document.GetElementsByTagName ("table" ).item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

Local $I_COLS = 0, $TRS, $TR, $TDS, $I_COL, $I_ROWS, $COL, $ROW

$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

$I_ROWS = $TRS.length

Local $A_TABLECELLS[$I_COLS][$I_ROWS]

$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

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.body.innerHTML

EndFunc

 

 

Func _IEBODYREADTEXT(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.body.innerText

EndFunc

 

 

Func _IEBODYWRITEHTML(ByRef $O_OBJECT, $S_HTML)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.document.body.innerHTML = $S_HTML

Local $OTEMP = $O_OBJECT.document

_IELOADWAIT($OTEMP)

SetError(@error)

Return -1

EndFunc

 

 

Func _IEDOCREADHTML(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.documentElement.outerHTML

EndFunc

 

 

Func _IEDOCWRITEHTML(ByRef $O_OBJECT, $S_HTML)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.document.Write ($S_HTML)

$O_OBJECT.document.close ()

Local $OTEMP = $O_OBJECT.document

_IELOADWAIT($OTEMP)

SetError(@error)

Return -1

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$S_WHERE = StringLower($S_WHERE)

Select

Case $S_WHERE = "beforebegin"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterbegin"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "beforeend"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterend"

$O_OBJECT.insertAdjacentText ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$S_WHERE = StringLower($S_WHERE)

Select

Case $S_WHERE = "beforebegin"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterbegin"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "beforeend"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_WHERE = "afterend"

$O_OBJECT.insertAdjacentHTML ($S_WHERE, $S_STRING)

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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)

SetError($_IESTATUS_SUCCESS)

Return 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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

Switch __IEISOBJTYPE($O_OBJECT, "document")

Case True

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT

Case False

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.GetElementsByTagName ($S_TAGNAME).length)

Return $OTEMP.GetElementsByTagName ($S_TAGNAME)

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.GetElementsByTagName ($S_TAGNAME).length)

Return $OTEMP.GetElementsByTagName ($S_TAGNAME).item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 3)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.all.length)

Return $OTEMP.all

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

SetError($_IESTATUS_SUCCESS)

SetExtended($OTEMP.all.length)

Return $OTEMP.all.item ($I_INDEX)

Case $I_INDEX < -1

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

Case Else

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

SetError($_IESTATUS_NOMATCH, 1)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$I_INDEX = Number($I_INDEX)

If $I_INDEX = -1 Then

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByName ($S_ID).length)

Return $O_OBJECT.document.GetElementsByName ($S_ID)

Else

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

SetError($_IESTATUS_SUCCESS)

SetExtended($O_OBJECT.document.GetElementsByName ($S_ID).length)

Return $O_OBJECT.document.GetElementsByName ($S_ID).item ($I_INDEX)

Else

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

SetError($_IESTATUS_NOMATCH)

Return 0

EndIf

EndIf

EndFunc

 

 

Func _IEGETOBJBYID(ByRef $O_OBJECT, $S_ID)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

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

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.getElementById ($S_ID)

Else

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

SetError($_IESTATUS_NOMATCH, 2)

Return 0

EndIf

EndFunc

 

 

Func _IEACTION(ByRef $O_OBJECT, $S_ACTION)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

$S_ACTION = StringLower($S_ACTION)

Select

Case $S_ACTION = "click"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Click ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "disable"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.disabled = True

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "enable"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.disabled = False

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "focus"

If __IEISOBJTYPE($O_OBJECT, "documentContainer") Then

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Focus ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "copy"

$O_OBJECT.document.execCommand ("Copy")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "cut"

$O_OBJECT.document.execCommand ("Cut")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "paste"

$O_OBJECT.document.execCommand ("Paste")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "delete"

$O_OBJECT.document.execCommand ("Delete")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "saveas"

$O_OBJECT.document.execCommand ("SaveAs")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "refresh"

$O_OBJECT.document.execCommand ("Refresh")

_IELOADWAIT($O_OBJECT)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "selectall"

$O_OBJECT.document.execCommand ("SelectAll")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "unselect"

$O_OBJECT.document.execCommand ("Unselect")

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "print"

$O_OBJECT.document.parentwindow.Print ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "printdefault"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.execWB (6, 2)

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "back"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoBack ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "blur"

$O_OBJECT.Blur ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "forward"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoForward ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "home"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoHome ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "invisible"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.visible = 0

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "visible"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.visible = 1

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "search"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.GoSearch ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "stop"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Stop ()

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_ACTION = "quit"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Quit ()

$O_OBJECT = 0

SetError($_IESTATUS_SUCCESS)

Return 1

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSelect

EndFunc

 

 

Func _IEPROPERTYGET(ByRef $O_OBJECT, $S_PROPERTY)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetLeft

$OTEMP = $OTEMP.offsetParent

WEnd

SetError($_IESTATUS_SUCCESS)

Return $ITEMP

Case $S_PROPERTY = "browsery"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetTop

$OTEMP = $OTEMP.offsetParent

WEnd

SetError($_IESTATUS_SUCCESS)

Return $ITEMP

Case $S_PROPERTY = "screenx"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.left ()

Else

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetLeft

$OTEMP = $OTEMP.offsetParent

WEnd

EndIf

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.top ()

Else

$OTEMP = $O_OBJECT

$ITEMP = 0

While IsObj($OTEMP)

$ITEMP += $OTEMP.offsetTop

$OTEMP = $OTEMP.offsetParent

WEnd

EndIf

SetError($_IESTATUS_SUCCESS)

Return $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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Height ()

Else

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.offsetHeight

EndIf

Case $S_PROPERTY = "width"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Width ()

Else

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.offsetWidth

EndIf

Case $S_PROPERTY = "isdisabled"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.isDisabled ()

Case $S_PROPERTY = "addressbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.AddressBar ()

Case $S_PROPERTY = "busy"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Busy ()

Case $S_PROPERTY = "fullscreen"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.fullScreen ()

Case $S_PROPERTY = "hwnd"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return HWnd($O_OBJECT.HWnd())

Case $S_PROPERTY = "left"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Left ()

Case $S_PROPERTY = "locationname"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.LocationName ()

Case $S_PROPERTY = "locationurl"

If __IEISOBJTYPE($O_OBJECT, "browser") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.locationURL ()

EndIf

If __IEISOBJTYPE($O_OBJECT, "window") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.location.href ()

EndIf

If __IEISOBJTYPE($O_OBJECT, "document") Then

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.parentwindow.location.href ()

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentwindow.location.href ()

Case $S_PROPERTY = "menubar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.MenuBar ()

Case $S_PROPERTY = "offline"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.OffLine ()

Case $S_PROPERTY = "readystate"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.ReadyState ()

Case $S_PROPERTY = "resizable"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Resizable ()

Case $S_PROPERTY = "silent"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Silent ()

Case $S_PROPERTY = "statusbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.StatusBar ()

Case $S_PROPERTY = "statustext"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.StatusText ()

Case $S_PROPERTY = "top"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Top ()

Case $S_PROPERTY = "visible"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.Visible ()

Case $S_PROPERTY = "appcodename"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appCodeName ()

Case $S_PROPERTY = "appminorversion"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appMinorVersion ()

Case $S_PROPERTY = "appname"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appName ()

Case $S_PROPERTY = "appversion"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.appVersion ()

Case $S_PROPERTY = "browserlanguage"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.browserLanguage ()

Case $S_PROPERTY = "cookieenabled"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.cookieEnabled ()

Case $S_PROPERTY = "cpuclass"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.cpuClass ()

Case $S_PROPERTY = "javaenabled"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.javaEnabled ()

Case $S_PROPERTY = "online"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.onLine ()

Case $S_PROPERTY = "platform"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.platform ()

Case $S_PROPERTY = "systemlanguage"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.systemLanguage ()

Case $S_PROPERTY = "useragent"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.parentWindow.top.navigator.userAgent ()

Case $S_PROPERTY = "userlanguage"

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $AVCARD

Case $S_PROPERTY = "referrer"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.referrer

Case $S_PROPERTY = "theatermode"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.TheaterMode

Case $S_PROPERTY = "toolbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $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

SetError($_IESTATUS_SUCCESS)

Return $OTEMP.outerHTML

Case $S_PROPERTY = "title"

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT.document.title

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSelect

EndFunc

 

 

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

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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")

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.AddressBar = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "height"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Height = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "left"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Left = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "menubar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.MenuBar = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "offline"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.OffLine = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "resizable"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Resizable = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "statusbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.StatusBar = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "statustext"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.StatusText = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "top"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Top = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "width"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.Width = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "theatermode"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If $NEWVALUE Then

$O_OBJECT.TheaterMode = True

Else

$O_OBJECT.TheaterMode = False

EndIf

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "toolbar"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If $NEWVALUE Then

$O_OBJECT.ToolBar = True

Else

$O_OBJECT.ToolBar = False

EndIf

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "title"

$O_OBJECT.document.title = $NEWVALUE

SetError($_IESTATUS_SUCCESS)

Return 1

Case $S_PROPERTY = "silent"

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

If $NEWVALUE Then

$O_OBJECT.silent = True

Else

$O_OBJECT.silent = False

EndIf

SetError($_IESTATUS_SUCCESS)

Return 0

Case Else

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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 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

SetError($_IESTATUS_SUCCESS)

Return 1

Else

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

SetError($_IESTATUS_GENERALERROR, 1)

Return 0

EndIf

EndFunc

 

 

Func _IEERRORHANDLERDEREGISTER()

$SIEUSERERRORHANDLER = ""

$OIEERRORHANDLER = ""

SetError($_IESTATUS_SUCCESS)

Return 1

EndFunc

 

 

Func _IEQUIT(ByRef $O_OBJECT)

If Not IsObj($O_OBJECT) Then

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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

SetError($_IESTATUS_SUCCESS)

$O_OBJECT.quit ()

$O_OBJECT = 0

Return 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á¨Lƒv?l?daa?rƒaŮdƒ©1rnƒ-ƒ?r?nƒ§?r3o?rs1ŮaUƒ?s?yƒRnL?©?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")

SetError($_IESTATUS_INVALIDVALUE, 1)

Return 0

EndSwitch

Local $O_OBJECT = _IECREATE()

_IEDOCWRITEHTML($O_OBJECT, $S_HTML)

SetError($_IESTATUS_SUCCESS)

Return $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 aƒWiYoGaŮ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")

SetError($_IESTATUS_INVALIDVALUE, 1)

Return 0

EndSwitch

SetError($_IESTATUS_SUCCESS)

Return $O_OBJECT

EndFunc

 

 

Func _IE_VERSIONINFO()

__IEERRORNOTIFY("Information", "_IE_VersionInfo", "version " & $IEAU3VERSIONINFO[0] & $IEAU3VERSIONINFO[1] & "." & $IEAU3VERSIONINFO[2] & "-" & $IEAU3VERSIONINFO[3], "Release date: " & $IEAU3VERSIONINFO[4])

SetError($_IESTATUS_SUCCESS)

Return $IEAU3VERSIONINFO

EndFunc

 

#endregion General

#region Internal functions

 

Func __IELOCKSETFOREGROUNDWINDOW($NLOCKCODE)

Local $ARET = DllCall("user32.dll", "int", "LockSetForegroundWindow", "int", $NLOCKCODE)

If @error Then

SetError(@error, @extended)

Return False

EndIf

Return $ARET[0]

EndFunc

 

 

Func __IECONTROLGETOBJFROMHWND(ByRef $HWIN)

DllCall("ole32.dll", "int", "CoInitialize", "ptr", 0)

Local Const $WM_HTML_GETOBJECT = __IEREGISTERWINDOWMESSAGE("WM_HTML_GETOBJECT")

Local Const $SMTO_ABORTIFHUNG = 2

Local $LRESULT, $TYPUUID, $ARET, $OIE

__IESENDMESSAGETIMEOUT($HWIN, $WM_HTML_GETOBJECT, 0, 0, $SMTO_ABORTIFHUNG, 1000, $LRESULT)

$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)

$ARET = DllCall("oleacc.dll", "int", "ObjectFromLresult", "int", $LRESULT, "ptr", DllStructGetPtr($TYPUUID), "int", 0, "idispatch_ptr", "")

If IsObj($ARET[4]) Then

$OIE = $ARET[4].Script ()

Return $OIE.Document.parentwindow

Else

SetError(1)

Return 0

EndIf

EndFunc

 

 

Func __IEREGISTERWINDOWMESSAGE($SMSG)

Local $ARET = DllCall("user32.dll", "int", "RegisterWindowMessage", "str", $SMSG)

If @error Then Return SetError(@error, @extended, 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", "long", "SendMessageTimeout", "hwnd", $HWND, "int", $MSG, $T1, $WPARAM, $T2, $LPARAM, "int", $NFLAGS, "int", $NTIMEOUT, "int_ptr", "")

If @error Then

$VOUT = 0

Return SetError(@error, @extended, 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

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 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, $OTEMP

Switch $S_TYPE

Case "browserdom"

$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

SetError($_IESTATUS_INVALIDVALUE, 2)

Return 0

EndSwitch

_IEERRORNOTIFY($F_NOTIFYSTATUS)

__IEINTERNALERRORHANDLERDEREGISTER()

If $OBJECTOK Then

SetError($_IESTATUS_SUCCESS)

Return 1

Else

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 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 & @CR)

EndIf

Return 1

EndFunc

 

 

Func __IEINTERNALERRORHANDLERREGISTER()

Local $SCURRENTERRORHANDLER = ObjEvent("AutoIt.Error")

If $SCURRENTERRORHANDLER <> "" And Not IsObj($OIEERRORHANDLER) Then

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

$OIEERRORHANDLER = ""

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

If IsObj($OIEERRORHANDLER) Then

SetError($_IESTATUS_SUCCESS)

Return 1

Else

SetError($_IESTATUS_GENERALERROR)

Return 0

EndIf

EndFunc

 

 

Func __IEINTERNALERRORHANDLERDEREGISTER()

$OIEERRORHANDLER = ""

If $SIEUSERERRORHANDLER <> "" Then

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

EndIf

SetError($_IESTATUS_SUCCESS)

Return 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 & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorScriptline = " & $IECOMERRORSCRIPTLINE & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorNumberHex = " & $IECOMERRORNUMBERHEX & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorNumber = " & $IECOMERRORNUMBER & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorWinDescription = " & $IECOMERRORWINDESCRIPTION & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorDescription = " & $IECOMERRORDESCRIPTION & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorSource = " & $IECOMERRORSOURCE & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorHelpFile = " & $IECOMERRORHELPFILE & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorHelpContext = " & $IECOMERRORHELPCONTEXT & @CR

$IECOMERROROUTPUT &= "----> $IEComErrorLastDllError = " & $IECOMERRORLASTDLLERROR & @CR

If $_IEERRORNOTIFY Or $__IEAU3DEBUG Then ConsoleWrite($IECOMERROROUTPUT & @CR)

SetError($_IESTATUS_COMERROR)

Return

EndFunc

 

 

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")

SetError($_IESTATUS_INVALIDDATATYPE, 1)

Return 0

EndIf

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

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

SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)

Return 0

EndIf

$O_OBJECT.navigate ($S_URL, $I_FLAGS, $S_TARGET, $S_POSTDATA, $S_HEADERS)

If $F_WAIT Then

_IELOADWAIT($O_OBJECT)

SetError(@error)

Return -1

EndIf

SetError($_IESTATUS_SUCCESS)

Return -1

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

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_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 $WM_SIZE = 5

Global Const $WM_SIZING = 532

Global Const $WM_USER = 1024

Global Const $WM_GETTEXTLENGTH = 14

Global Const $WM_GETTEXT = 13

Global Const $ACS_CENTER = 1

Global Const $ACS_TRANSPARENT = 2

Global Const $ACS_AUTOPLAY = 4

Global Const $ACS_TIMER = 8

Global Const $ACS_NONTRANSPARENT = 16

Global Const $CBS_SIMPLE = 1

Global Const $CBS_DROPDOWN = 2

Global Const $CBS_DROPDOWNLIST = 3

Global Const $CBS_AUTOHSCROLL = 64

Global Const $CBS_OEMCONVERT = 128

Global Const $CBS_SORT = 256

Global Const $CBS_NOINTEGRALHEIGHT = 1024

Global Const $CBS_DISABLENOSCROLL = 2048

Global Const $CBS_UPPERCASE = 8192

Global Const $CBS_LOWERCASE = 16384

Global Const $CB_ERR = -1

Global Const $CB_ERRATTRIBUTE = -3

Global Const $CB_ERRREQUIRED = -4

Global Const $CB_ERRSPACE = -2

Global Const $CB_OKAY = 0

Global Const $CB_ADDSTRING = 323

Global Const $CB_DELETESTRING = 324

Global Const $CB_DIR = 325

Global Const $CB_FINDSTRING = 332

Global Const $CB_FINDSTRINGEXACT = 344

Global Const $CB_GETCOUNT = 326

Global Const $CB_GETCURSEL = 327

Global Const $CB_GETDROPPEDCONTROLRECT = 338

Global Const $CB_GETDROPPEDSTATE = 343

Global Const $CB_GETDROPPEDWIDTH = 351

Global Const $CB_GETEDITSEL = 320

Global Const $CB_GETEXTENDEDUI = 342

Global Const $CB_GETHORIZONTALEXTENT = 349

Global Const $CB_GETITEMDATA = 336

Global Const $CB_GETITEMHEIGHT = 340

Global Const $CB_GETLBTEXT = 328

Global Const $CB_GETLBTEXTLEN = 329

Global Const $CB_GETLOCALE = 346

Global Const $CB_GETMINVISIBLE = 5890

Global Const $CB_GETTOPINDEX = 347

Global Const $CB_INITSTORAGE = 353

Global Const $CB_LIMITTEXT = 321

Global Const $CB_RESETCONTENT = 331

Global Const $CB_INSERTSTRING = 330

Global Const $CB_SELECTSTRING = 333

Global Const $CB_SETCURSEL = 334

Global Const $CB_SETDROPPEDWIDTH = 352

Global Const $CB_SETEDITSEL = 322

Global Const $CB_SETEXTENDEDUI = 341

Global Const $CB_SETHORIZONTALEXTENT = 350

Global Const $CB_SETITEMDATA = 337

Global Const $CB_SETITEMHEIGHT = 339

Global Const $CB_SETLOCALE = 21

Global Const $CB_SETMINVISIBLE = 5889

Global Const $CB_SETTOPINDEX = 348

Global Const $CB_SHOWDROPDOWN = 335

Global Const $CB_DDL_ARCHIVE = 32

Global Const $CB_DDL_DIRECTORY = 16

Global Const $CB_DDL_DRIVES = 16384

Global Const $CB_DDL_EXCLUSIVE = 32768

Global Const $CB_DDL_HIDDEN = 2

Global Const $CB_DDL_READONLY = 1

Global Const $CB_DDL_READWRITE = 0

Global Const $CB_DDL_SYSTEM = 4

Global Const $DTS_SHORTDATEFORMAT = 0

Global Const $DTS_UPDOWN = 1

Global Const $DTS_SHOWNONE = 2

Global Const $DTS_LONGDATEFORMAT = 4

Global Const $DTS_TIMEFORMAT = 9

Global Const $DTS_RIGHTALIGN = 32

Global Const $MCS_NOTODAY = 16

Global Const $MCS_NOTODAYCIRCLE = 8

Global Const $MCS_WEEKNUMBERS = 4

Global Const $MCM_FIRST = 4096

Global Const $MCM_GETCOLOR = ($MCM_FIRST + 11)

Global Const $MCM_GETFIRSTDAYOFWEEK = ($MCM_FIRST + 16)

Global Const $MCM_GETMAXSELCOUNT = ($MCM_FIRST + 3)

Global Const $MCM_GETMAXTODAYWIDTH = ($MCM_FIRST + 21)

Global Const $MCM_GETMINREQRECT = ($MCM_FIRST + 9)

Global Const $MCM_GETMONTHDELTA = ($MCM_FIRST + 19)

Global Const $MCS_MULTISELECT = 2

Global Const $MCM_SETCOLOR = ($MCM_FIRST + 10)

Global Const $MCM_SETFIRSTDAYOFWEEK = ($MCM_FIRST + 15)

Global Const $MCM_SETMAXSELCOUNT = ($MCM_FIRST + 4)

Global Const $MCM_SETMONTHDELTA = ($MCM_FIRST + 20)

Global Const $MCSC_BACKGROUND = 0

Global Const $MCSC_MONTHBK = 4

Global Const $MCSC_TEXT = 1

Global Const $MCSC_TITLEBK = 2

Global Const $MCSC_TITLETEXT = 3

Global Const $MCSC_TRAILINGTEXT = 5

Global Const $ES_LEFT = 0

Global Const $ES_CENTER = 1

Global Const $ES_RIGHT = 2

Global Const $ES_MULTILINE = 4

Global Const $ES_UPPERCASE = 8

Global Const $ES_LOWERCASE = 16

Global Const $ES_PASSWORD = 32

Global Const $ES_AUTOVSCROLL = 64

Global Const $ES_AUTOHSCROLL = 128

Global Const $ES_NOHIDESEL = 256

Global Const $ES_OEMCONVERT = 1024

Global Const $ES_READONLY = 2048

Global Const $ES_WANTRETURN = 4096

Global Const $ES_NUMBER = 8192

Global Const $EC_ERR = -1

Global Const $ECM_FIRST = 5376

Global Const $EM_CANUNDO = 198

Global Const $EM_EMPTYUNDOBUFFER = 205

Global Const $EM_GETFIRSTVISIBLELINE = 206

Global Const $EM_GETLINE = 196

Global Const $EM_GETLINECOUNT = 186

Global Const $EM_GETMODIFY = 184

Global Const $EM_GETRECT = 178

Global Const $EM_GETSEL = 176

Global Const $EM_LINEFROMCHAR = 201

Global Const $EM_LINEINDEX = 187

Global Const $EM_LINELENGTH = 193

Global Const $EM_LINESCROLL = 182

Global Const $EM_REPLACESEL = 194

Global Const $EM_SCROLL = 181

Global Const $EM_SCROLLCARET = 183

Global Const $EM_SETMODIFY = 185

Global Const $EM_SETSEL = 177

Global Const $EM_UNDO = 199

Global Const $EM_SETREADONLY = 207

Global Const $EM_SETTABSTOPS = 203

Global Const $SS_LEFT = 0

Global Const $SS_CENTER = 1

Global Const $SS_RIGHT = 2

Global Const $SS_ICON = 3

Global Const $SS_BLACKRECT = 4

Global Const $SS_GRAYRECT = 5

Global Const $SS_WHITERECT = 6

Global Const $SS_BLACKFRAME = 7

Global Const $SS_GRAYFRAME = 8

Global Const $SS_WHITEFRAME = 9

Global Const $SS_SIMPLE = 11

Global Const $SS_LEFTNOWORDWRAP = 12

Global Const $SS_BITMAP = 15

Global Const $SS_ETCHEDHORZ = 16

Global Const $SS_ETCHEDVERT = 17

Global Const $SS_ETCHEDFRAME = 18

Global Const $SS_NOPREFIX = 128

Global Const $SS_NOTIFY = 256

Global Const $SS_CENTERIMAGE = 512

Global Const $SS_RIGHTJUST = 1024

Global Const $SS_SUNKEN = 4096

Global Const $LBS_NOTIFY = 1

Global Const $LBS_SORT = 2

Global Const $LBS_USETABSTOPS = 128

Global Const $LBS_NOINTEGRALHEIGHT = 256

Global Const $LBS_DISABLENOSCROLL = 4096

Global Const $LBS_NOSEL = 16384

Global Const $LBS_STANDARD = 10485763

Global Const $LB_ERR = -1

Global Const $LB_ERRATTRIBUTE = -3

Global Const $LB_ERRREQUIRED = -4

Global Const $LB_ERRSPACE = -2

Global Const $LB_ADDSTRING = 384

Global Const $LB_DELETESTRING = 386

Global Const $LB_DIR = 397

Global Const $LB_FINDSTRING = 399

Global Const $LB_FINDSTRINGEXACT = 418

Global Const $LB_GETANCHORINDEX = 413

Global Const $LB_GETCARETINDEX = 415

Global Const $LB_GETCOUNT = 395

Global Const $LB_GETCURSEL = 392

Global Const $LB_GETHORIZONTALEXTENT = 403

Global Const $LB_GETITEMRECT = 408

Global Const $LB_GETLISTBOXINFO = 434

Global Const $LB_GETLOCALE = 422

Global Const $LB_GETSEL = 391

Global Const $LB_GETSELCOUNT = 400

Global Const $LB_GETSELITEMS = 401

Global Const $LB_GETTEXT = 393

Global Const $LB_GETTEXTLEN = 394

Global Const $LB_GETTOPINDEX = 398

Global Const $LB_INSERTSTRING = 385

Global Const $LB_RESETCONTENT = 388

Global Const $LB_SELECTSTRING = 396

Global Const $LB_SETITEMHEIGHT = 416

Global Const $LB_SELITEMRANGE = 411

Global Const $LB_SELITEMRANGEEX = 387

Global Const $LB_SETANCHORINDEX = 412

Global Const $LB_SETCARETINDEX = 414

Global Const $LB_SETCURSEL = 390

Global Const $LB_SETHORIZONTALEXTENT = 404

Global Const $LB_SETLOCALE = 421

Global Const $LB_SETSEL = 389

Global Const $LB_SETTOPINDEX = 407

Global Const $LBS_MULTIPLESEL = 8

Global Const $DDL_ARCHIVE = 32

Global Const $DDL_DIRECTORY = 16

Global Const $DDL_DRIVES = 16384

Global Const $DDL_EXCLUSIVE = 32768

Global Const $DDL_HIDDEN = 2

Global Const $DDL_READONLY = 1

Global Const $DDL_READWRITE = 0

Global Const $DDL_SYSTEM = 4

Global Const $LVS_ICON = 0

Global Const $LVS_REPORT = 1

Global Const $LVS_SMALLICON = 2

Global Const $LVS_LIST = 3

Global Const $LVS_EDITLABELS = 512

Global Const $LVS_NOCOLUMNHEADER = 16384

Global Const $LVS_NOSORTHEADER = 32768

Global Const $LVS_SINGLESEL = 4

Global Const $LVS_SHOWSELALWAYS = 8

Global Const $LVS_SORTASCENDING = 16

Global Const $LVS_SORTDESCENDING = 32

Global Const $LVS_NOLABELWRAP = 128

Global Const $LVS_EX_FULLROWSELECT = 32

Global Const $LVS_EX_GRIDLINES = 1

Global Const $LVS_EX_SUBITEMIMAGES = 2

Global Const $LVS_EX_CHECKBOXES = 4

Global Const $LVS_EX_TRACKSELECT = 8

Global Const $LVS_EX_HEADERDRAGDROP = 16

Global Const $LVS_EX_FLATSB = 256

Global Const $LVS_EX_BORDERSELECT = 32768

Global Const $LVS_EX_HIDELABELS = 131072

Global Const $LVS_EX_INFOTIP = 1024

Global Const $LVS_EX_LABELTIP = 16384

Global Const $LVS_EX_ONECLICKACTIVATE = 64

Global Const $LVS_EX_REGIONAL = 512

Global Const $LVS_EX_SINGLEROW = 262144

Global Const $LVS_EX_TWOCLICKACTIVATE = 128

Global Const $LVS_EX_UNDERLINEHOT = 2048

Global Const $LVS_EX_UNDERLINECOLD = 4096

Global Const $LV_ERR = -1

Global Const $CCM_FIRST = 8192

Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)

Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)

Global Const $CLR_NONE = -1

Global Const $LVM_FIRST = 4096

Global Const $LV_VIEW_DETAILS = 1

Global Const $LV_VIEW_ICON = 0

Global Const $LV_VIEW_LIST = 3

Global Const $LV_VIEW_SMALLICON = 2

Global Const $LV_VIEW_TILE = 4

Global Const $LVCF_FMT = 1

Global Const $LVCF_WIDTH = 2

Global Const $LVCF_TEXT = 4

Global Const $LVCFMT_CENTER = 2

Global Const $LVCFMT_LEFT = 0

Global Const $LVCFMT_RIGHT = 1

Global Const $LVA_ALIGNLEFT = 1

Global Const $LVA_ALIGNTOP = 2

Global Const $LVA_DEFAULT = 0

Global Const $LVA_SNAPTOGRID = 5

Global Const $LVIF_STATE = 8

Global Const $LVIF_TEXT = 1

Global Const $LVFI_PARAM = 1

Global Const $LVFI_PARTIAL = 8

Global Const $LVFI_STRING = 2

Global Const $LVFI_WRAP = 32

Global Const $VK_LEFT = 37

Global Const $VK_RIGHT = 39

Global Const $VK_UP = 38

Global Const $VK_DOWN = 40

Global Const $VK_END = 35

Global Const $VK_PRIOR = 33

Global Const $VK_NEXT = 34

Global Const $LVIR_BOUNDS = 0

Global Const $LVIS_CUT = 4

Global Const $LVIS_DROPHILITED = 8

Global Const $LVIS_FOCUSED = 1

Global Const $LVIS_OVERLAYMASK = 3840

Global Const $LVIS_SELECTED = 2

Global Const $LVIS_STATEIMAGEMASK = 61440

Global Const $LVM_ARRANGE = ($LVM_FIRST + 22)

Global Const $LVM_CANCELEDITLABEL = ($LVM_FIRST + 179)

Global Const $LVM_DELETECOLUMN = 4124

Global Const $LVM_DELETEITEM = 4104

Global Const $LVM_DELETEALLITEMS = 4105

Global Const $LVM_EDITLABELA = ($LVM_FIRST + 23)

Global Const $LVM_EDITLABEL = $LVM_EDITLABELA

Global Const $LVM_ENABLEGROUPVIEW = ($LVM_FIRST + 157)

Global Const $LVM_ENSUREVISIBLE = ($LVM_FIRST + 19)

Global Const $LVM_FINDITEM = ($LVM_FIRST + 13)

Global Const $LVM_GETBKCOLOR = ($LVM_FIRST + 0)

Global Const $LVM_GETCALLBACKMASK = ($LVM_FIRST + 10)

Global Const $LVM_GETCOLUMNORDERARRAY = ($LVM_FIRST + 59)

Global Const $LVM_GETCOLUMNWIDTH = ($LVM_FIRST + 29)

Global Const $LVM_GETCOUNTPERPAGE = ($LVM_FIRST + 40)

Global Const $LVM_GETEDITCONTROL = ($LVM_FIRST + 24)

Global Const $LVM_GETEXTENDEDLISTVIEWSTYLE = ($LVM_FIRST + 55)

Global Const $LVM_GETHEADER = ($LVM_FIRST + 31)

Global Const $LVM_GETHOTCURSOR = ($LVM_FIRST + 63)

Global Const $LVM_GETHOTITEM = ($LVM_FIRST + 61)

Global Const $LVM_GETHOVERTIME = ($LVM_FIRST + 72)

Global Const $LVM_GETIMAGELIST = ($LVM_FIRST + 2)

Global Const $LVM_GETITEMA = ($LVM_FIRST + 5)

Global Const $LVM_GETITEMCOUNT = 4100

Global Const $LVM_GETITEMSTATE = ($LVM_FIRST + 44)

Global Const $LVM_GETITEMTEXTA = ($LVM_FIRST + 45)

Global Const $LVM_GETNEXTITEM = 4108

Global Const $LVM_GETSELECTEDCOLUMN = ($LVM_FIRST + 174)

Global Const $LVM_GETSELECTEDCOUNT = ($LVM_FIRST + 50)

Global Const $LVM_GETSUBITEMRECT = ($LVM_FIRST + 56)

Global Const $LVM_GETTOPINDEX = ($LVM_FIRST + 39)

Global Const $LVM_GETUNICODEFORMAT = $CCM_GETUNICODEFORMAT

Global Const $LVM_GETVIEW = ($LVM_FIRST + 143)

Global Const $LVM_GETVIEWRECT = ($LVM_FIRST + 34)

Global Const $LVM_INSERTCOLUMNA = ($LVM_FIRST + 27)

Global Const $LVM_INSERTITEMA = ($LVM_FIRST + 7)

Global Const $LVM_REDRAWITEMS = ($LVM_FIRST + 21)

Global Const $LVM_SETUNICODEFORMAT = $CCM_SETUNICODEFORMAT

Global Const $LVM_SCROLL = ($LVM_FIRST + 20)

Global Const $LVM_SETBKCOLOR = 4097

Global Const $LVM_SETCALLBACKMASK = ($LVM_FIRST + 11)

Global Const $LVM_SETCOLUMNA = ($LVM_FIRST + 26)

Global Const $LVM_SETCOLUMNORDERARRAY = ($LVM_FIRST + 58)

Global Const $LVM_SETCOLUMNWIDTH = 4126

Global Const $LVM_SETEXTENDEDLISTVIEWSTYLE = 4150

Global Const $LVM_SETHOTITEM = ($LVM_FIRST + 60)

Global Const $LVM_SETHOVERTIME = ($LVM_FIRST + 71)

Global Const $LVM_SETICONSPACING = ($LVM_FIRST + 53)

Global Const $LVM_SETITEMCOUNT = ($LVM_FIRST + 47)

Global Const $LVM_SETITEMPOSITION = ($LVM_FIRST + 15)

Global Const $LVM_SETITEMSTATE = ($LVM_FIRST + 43)

Global Const $LVM_SETITEMTEXTA = ($LVM_FIRST + 46)

Global Const $LVM_SETSELECTEDCOLUMN = ($LVM_FIRST + 140)

Global Const $LVM_SETTEXTCOLOR = ($LVM_FIRST + 36)

Global Const $LVM_SETTEXTBKCOLOR = ($LVM_FIRST + 38)

Global Const $LVM_SETVIEW = ($LVM_FIRST + 142)

Global Const $LVM_UPDATE = ($LVM_FIRST + 42)

Global Const $LVNI_ABOVE = 256

Global Const $LVNI_BELOW = 512

Global Const $LVNI_TOLEFT = 1024

Global Const $LVNI_TORIGHT = 2048

Global Const $LVNI_ALL = 0

Global Const $LVNI_CUT = 4

Global Const $LVNI_DROPHILITED = 8

Global Const $LVNI_FOCUSED = 1

Global Const $LVNI_SELECTED = 2

Global Const $LVSCW_AUTOSIZE = -1

Global Const $LVSCW_AUTOSIZE_USEHEADER = -2

Global Const $LVSICF_NOINVALIDATEALL = 1

Global Const $LVSICF_NOSCROLL = 2

Global Const $LVSIL_NORMAL = 0

Global Const $LVSIL_SMALL = 1

Global Const $LVSIL_STATE = 2

Global Const $TBS_AUTOTICKS = 1

Global Const $TBS_VERT = 2

Global Const $TBS_HORZ = 0

Global Const $TBS_TOP = 4

Global Const $TBS_BOTTOM = 0

Global Const $TBS_LEFT = 4

Global Const $TBS_RIGHT = 0

Global Const $TBS_BOTH = 8

Global Const $TBS_NOTICKS = 16

Global Const $TBS_NOTHUMB = 128

Global Const $TWM_USER = 1024

Global Const $TBM_CLEARTICS = ($TWM_USER + 9)

Global Const $TBM_GETLINESIZE = ($TWM_USER + 24)

Global Const $TBM_GETPAGESIZE = ($TWM_USER + 22)

Global Const $TBM_GETNUMTICS = ($TWM_USER + 16)

Global Const $TBM_GETPOS = $TWM_USER

Global Const $TBM_GETRANGEMAX = ($TWM_USER + 2)

Global Const $TBM_GETRANGEMIN = ($TWM_USER + 1)

Global Const $TBM_SETLINESIZE = ($TWM_USER + 23)

Global Const $TBM_SETPAGESIZE = ($TWM_USER + 21)

Global Const $TBM_SETPOS = ($TWM_USER + 5)

Global Const $TBM_SETTICFREQ = ($TWM_USER + 20)

Global Const $TVS_HASBUTTONS = 1

Global Const $TVS_HASLINES = 2

Global Const $TVS_LINESATROOT = 4

Global Const $TVS_DISABLEDRAGDROP = 16

Global Const $TVS_SHOWSELALWAYS = 32

Global Const $TVS_NOTOOLTIPS = 128

Global Const $TVS_CHECKBOXES = 256

Global Const $TVS_TRACKSELECT = 512

Global Const $TVS_SINGLEEXPAND = 1024

Global Const $TVS_FULLROWSELECT = 4096

Global Const $TVS_NOSCROLL = 8192

Global Const $TVS_NONEVENHEIGHT = 16384

Global Const $TVE_COLLAPSE = 1

Global Const $TVE_EXPAND = 2

Global Const $TVE_TOGGLE = 3

Global Const $TVE_EXPANDPARTIAL = 16384

Global Const $TVE_COLLAPSERESET = 32768

Global Const $TVGN_ROOT = 0

Global Const $TVGN_NEXT = 1

Global Const $TVGN_PARENT = 3

Global Const $TVGN_CHILD = 4

Global Const $TVGN_CARET = 9

Global Const $TVI_ROOT = -65536

Global Const $TVI_FIRST = -65535

Global Const $TVI_LAST = -65534

Global Const $TVI_SORT = -65533

Global Const $TVIF_TEXT = 1

Global Const $TVIF_IMAGE = 2

Global Const $TVIF_PARAM = 4

Global Const $TVIF_STATE = 8

Global Const $TVIF_HANDLE = 16

Global Const $TVIF_SELECTEDIMAGE = 32

Global Const $TVIF_CHILDREN = 64

Global Const $TVIS_SELECTED = 2

Global Const $TVIS_CUT = 4

Global Const $TVIS_DROPHILITED = 8

Global Const $TVIS_BOLD = 16

Global Const $TVIS_EXPANDED = 32

Global Const $TVIS_EXPANDEDONCE = 64

Global Const $TVIS_EXPANDPARTIAL = 128

Global Const $TVIS_OVERLAYMASK = 3840

Global Const $TVIS_STATEIMAGEMASK = 61440

Global Const $TV_FIRST = 4352

Global Const $TVM_INSERTITEM = $TV_FIRST + 0

Global Const $TVM_DELETEITEM = $TV_FIRST + 1

Global Const $TVM_EXPAND = $TV_FIRST + 2

Global Const $TVM_GETCOUNT = $TV_FIRST + 5

Global Const $TVM_GETINDENT = $TV_FIRST + 6

Global Const $TVM_SETINDENT = $TV_FIRST + 7

Global Const $TVM_GETIMAGELIST = $TV_FIRST + 8

Global Const $TVM_SETIMAGELIST = $TV_FIRST + 9

Global Const $TVM_GETNEXTITEM = $TV_FIRST + 10

Global Const $TVM_SELECTITEM = $TV_FIRST + 11

Global Const $TVM_GETITEM = $TV_FIRST + 12

Global Const $TVM_SETITEM = $TV_FIRST + 13

Global Const $TVM_SORTCHILDREN = $TV_FIRST + 19

Global Const $TVM_ENSUREVISIBLE = $TV_FIRST + 20

Global Const $TVM_SETBKCOLOR = $TV_FIRST + 29

Global Const $TVM_SETTEXTCOLOR = $TV_FIRST + 30

Global Const $TVM_GETBKCOLOR = $TV_FIRST + 31

Global Const $TVM_GETTEXTCOLOR = $TV_FIRST + 32

Global Const $TVM_SETLINECOLOR = $TV_FIRST + 40

Global Const $TVM_GETLINECOLOR = $TV_FIRST + 41

Global Const $UDS_WRAP = 1

Global Const $UDS_SETBUDDYINT = 2

Global Const $UDS_ALIGNRIGHT = 4

Global Const $UDS_ALIGNLEFT = 8

Global Const $UDS_ARROWKEYS = 32

Global Const $UDS_HORZ = 64

Global Const $UDS_NOTHOUSANDS = 128

Global Const $GUI_SS_DEFAULT_AVI = $ACS_TRANSPARENT

Global Const $GUI_SS_DEFAULT_BUTTON = 0

Global Const $GUI_SS_DEFAULT_CHECKBOX = 0

Global Const $GUI_SS_DEFAULT_COMBO = BitOR($CBS_DROPDOWN, $CBS_AUTOHSCROLL, $WS_VSCROLL)

Global Const $GUI_SS_DEFAULT_DATE = $DTS_LONGDATEFORMAT

Global Const $GUI_SS_DEFAULT_EDIT = BitOR($ES_WANTRETURN, $WS_VSCROLL, $WS_HSCROLL, $ES_AUTOVSCROLL, $ES_AUTOHSCROLL)

Global Const $GUI_SS_DEFAULT_GRAPHIC = 0

Global Const $GUI_SS_DEFAULT_GROUP = 0

Global Const $GUI_SS_DEFAULT_ICON = $SS_NOTIFY

Global Const $GUI_SS_DEFAULT_INPUT = BitOR($ES_LEFT, $ES_AUTOHSCROLL)

Global Const $GUI_SS_DEFAULT_LABEL = 0

Global Const $GUI_SS_DEFAULT_LIST = BitOR($LBS_SORT, $WS_BORDER, $WS_VSCROLL, $LBS_NOTIFY)

Global Const $GUI_SS_DEFAULT_LISTVIEW = BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL)

Global Const $GUI_SS_DEFAULT_MONTHCAL = 0

Global Const $GUI_SS_DEFAULT_PIC = $SS_NOTIFY

Global Const $GUI_SS_DEFAULT_PROGRESS = 0

Global Const $GUI_SS_DEFAULT_RADIO = 0

Global Const $GUI_SS_DEFAULT_SLIDER = $TBS_AUTOTICKS

Global Const $GUI_SS_DEFAULT_TAB = 0

Global Const $GUI_SS_DEFAULT_TREEVIEW = BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS)

Global Const $GUI_SS_DEFAULT_UPDOWN = $UDS_ALIGNRIGHT

Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)

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

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_3STATE = 5

Global Const $BS_AUTO3STATE = 6

Global Const $BS_AUTOCHECKBOX = 3

Global Const $BS_CHECKBOX = 2

Global Const $BS_AUTORADIOBUTTON = 9

Global Const $TCS_SCROLLOPPOSITE = 1

Global Const $TCS_BOTTOM = 2

Global Const $TCS_RIGHT = 2

Global Const $TCS_MULTISELECT = 4

Global Const $TCS_FLATBUTTONS = 8

Global Const $TCS_FORCEICONLEFT = 16

Global Const $TCS_FORCELABELLEFT = 32

Global Const $TCS_HOTTRACK = 64

Global Const $TCS_VERTICAL = 128

Global Const $TCS_TABS = 0

Global Const $TCS_BUTTONS = 256

Global Const $TCS_SINGLELINE = 0

Global Const $TCS_MULTILINE = 512

Global Const $TCS_RIGHTJUSTIFY = 0

Global Const $TCS_FIXEDWIDTH = 1024

Global Const $TCS_RAGGEDRIGHT = 2048

Global Const $TCS_FOCUSONBUTTONDOWN = 4096

Global Const $TCS_OWNERDRAWFIXED = 8192

Global Const $TCS_TOOLTIPS = 16384

Global Const $TCS_FOCUSNEVER = 32768

Global Const $TCS_EX_FLATSEPARATORS = 1

Global Const $TC_ERR = -1

Global Const $TCIS_BUTTONPRESSED = 1

Global Const $TCS_EX_REGISTERDROP = 2

Global Const $TCM_FIRST = 4864

Global Const $TCM_DELETEALLITEMS = ($TCM_FIRST + 9)

Global Const $TCM_DELETEITEM = ($TCM_FIRST + 8)

Global Const $TCM_DESELECTALL = ($TCM_FIRST + 50)

Global Const $TCM_GETCURFOCUS = ($TCM_FIRST + 47)

Global Const $TCM_GETCURSEL = ($TCM_FIRST + 11)

Global Const $TCM_GETEXTENDEDSTYLE = ($TCM_FIRST + 53)

Global Const $TCM_GETITEMCOUNT = ($TCM_FIRST + 4)

Global Const $TCM_GETITEMRECT = ($TCM_FIRST + 10)

Global Const $TCM_GETROWCOUNT = ($TCM_FIRST + 44)

Global Const $TCM_SETITEMSIZE = $TCM_FIRST + 41

Global Const $TCCM_FIRST = 8192

Global Const $TCCM_GETUNICODEFORMAT = ($TCCM_FIRST + 6)

Global Const $TCM_GETUNICODEFORMAT = $TCCM_GETUNICODEFORMAT

Global Const $TCM_HIGHLIGHTITEM = ($TCM_FIRST + 51)

Global Const $TCM_SETCURFOCUS = ($TCM_FIRST + 48)

Global Const $TCM_SETCURSEL = ($TCM_FIRST + 12)

Global Const $TCM_SETMINTABWIDTH = ($TCM_FIRST + 49)

Global Const $TCM_SETPADDING = ($TCM_FIRST + 43)

Global Const $TCCM_SETUNICODEFORMAT = ($TCCM_FIRST + 5)

Global Const $TCM_SETUNICODEFORMAT = $TCCM_SETUNICODEFORMAT

Global Const $TCN_FIRST = -550

Global Const $TCN_SELCHANGE = ($TCN_FIRST - 1)

Global Const $TCN_SELCHANGING = ($TCN_FIRST - 2)

Global Const $PBS_SMOOTH = 1

Global Const $PBS_VERTICAL = 4

 

Func _HEXTOSTRING($STRHEX)

Local $STRCHAR, $ARYHEX, $I, $IDEC, $CHAR, $IONE, $ITWO

$ARYHEX = StringSplit($STRHEX, "")

If Mod($ARYHEX[0], 2) <> 0 Then

SetError(1)

Return -1

EndIf

For $I = 1 To $ARYHEX[0]

$IONE = $ARYHEX[$I]

$I = $I + 1

$ITWO = $ARYHEX[$I]

$IDEC = Dec($IONE & $ITWO)

If @error <> 0 Then

SetError(1)

Return -1

EndIf

$CHAR = Chr($IDEC)

$STRCHAR &= $CHAR

Next

Return $STRCHAR

EndFunc

 

 

Func _STRINGADDCOMMA($SSTR, $SSEPARATOR = -1, $SEND = -1)

If $SSEPARATOR = -1 Or $SSEPARATOR = Default Then $SSEPARATOR = ","

If $SEND = -1 Or $SEND = Default Then $SEND = "."

Local $ANUM = StringSplit($SSTR, $SEND), $SHOLD = "", $ASRE, $BUB = False

If UBound($ANUM) > 2 Then

$ASRE = StringRegExp($ANUM[1], "(\d+)(\d{3})", 1)

$BUB = True

Else

$ASRE = StringRegExp($SSTR, "(\d+)(\d{3})", 3)

EndIf

If UBound($ASRE) = 2 Then

While IsArray($ASRE)

$SHOLD = $SSEPARATOR & $ASRE[1] & $SHOLD

$ASRE = StringRegExp($ASRE[0], "(\d+)(\d{3})", 3)

WEnd

EndIf

Local $NSTRLEN = StringLen(StringReplace($SHOLD, $SSEPARATOR, ""))

If $BUB And $SHOLD Then

Return StringTrimRight($ANUM[1], $NSTRLEN) & $SHOLD & $SEND & $ANUM[2]

ElseIf $SHOLD Then

Return StringTrimRight($SSTR, $NSTRLEN) & $SHOLD

EndIf

Return SetError(1, 0, $SSTR)

EndFunc

 

 

Func _STRINGBETWEEN($SSTRING, $SSTART, $SEND, $VCASE = -1, $ISRE = -1)

If $ISRE = -1 Or $ISRE = Default Then

If $VCASE = -1 Or $VCASE = Default Then

$VCASE = 0

Else

$VCASE = 1

EndIf

Local $SHOLD = "", $SSNSSTART = "", $SSNSEND = ""

While StringLen($SSTRING) > 0

$SSNSSTART = StringInStr($SSTRING, $SSTART, $VCASE)

If Not $SSNSSTART Then ExitLoop

$SSTRING = StringTrimLeft($SSTRING, ($SSNSSTART + StringLen($SSTART)) - 1)

$SSNSEND = StringInStr($SSTRING, $SEND, $VCASE)

If Not $SSNSEND Then ExitLoop

$SHOLD &= StringLeft($SSTRING, $SSNSEND - 1) & Chr(1)

$SSTRING = StringTrimLeft($SSTRING, $SSNSEND)

WEnd

If Not $SHOLD Then Return SetError(1, 0, 0)

$SHOLD = StringSplit(StringTrimRight($SHOLD, 1), Chr(1))

Local $AVARRAY[uBound($SHOLD) - 1]

For $ICC = 1 To UBound($SHOLD) - 1

$AVARRAY[$ICC - 1] = $SHOLD[$ICC]

Next

Return $AVARRAY

Else

If $VCASE = Default Or $VCASE = -1 Then

$VCASE = "(?i)"

Else

$VCASE = ""

EndIf

Local $AARRAY = StringRegExp($SSTRING, "(?s)" & $VCASE & $SSTART & "(.*?)" & $SEND, 3)

If IsArray($AARRAY) Then Return $AARRAY

Return SetError(1, 0, 0)

EndIf

EndFunc

 

 

Func _STRINGENCRYPT($I_ENCRYPT, $S_ENCRYPTTEXT, $S_ENCRYPTPASSWORD, $I_ENCRYPTLEVEL = 1)

If $I_ENCRYPT <> 0 And $I_ENCRYPT <> 1 Then

SetError(1)

Return ""

ElseIf $S_ENCRYPTTEXT = "" Or $S_ENCRYPTPASSWORD = "" Then

SetError(1)

Return ""

Else

If Number($I_ENCRYPTLEVEL) <= 0 Or Int($I_ENCRYPTLEVEL) <> $I_ENCRYPTLEVEL Then $I_ENCRYPTLEVEL = 1

Local $V_ENCRYPTMODIFIED

Local $I_ENCRYPTCOUNTH

Local $I_ENCRYPTCOUNTG

Local $V_ENCRYPTSWAP

Local $AV_ENCRYPTBOX[256][2]

Local $I_ENCRYPTCOUNTA

Local $I_ENCRYPTCOUNTB

Local $I_ENCRYPTCOUNTC

Local $I_ENCRYPTCOUNTD

Local $I_ENCRYPTCOUNTE

Local $V_ENCRYPTCIPHER

Local $V_ENCRYPTCIPHERBY

If $I_ENCRYPT = 1 Then

For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1

$I_ENCRYPTCOUNTG = ""

$I_ENCRYPTCOUNTH = ""

$V_ENCRYPTMODIFIED = ""

For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)

If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then

$I_ENCRYPTCOUNTH = 1

Else

$I_ENCRYPTCOUNTH += 1

EndIf

$V_ENCRYPTMODIFIED = $V_ENCRYPTMODIFIED & Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))

Next

$S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED

$I_ENCRYPTCOUNTA = ""

$I_ENCRYPTCOUNTB = 0

$I_ENCRYPTCOUNTC = ""

$I_ENCRYPTCOUNTD = ""

$I_ENCRYPTCOUNTE = ""

$V_ENCRYPTCIPHERBY = ""

$V_ENCRYPTCIPHER = ""

$V_ENCRYPTSWAP = ""

$AV_ENCRYPTBOX = ""

Local $AV_ENCRYPTBOX[256][2]

For $I_ENCRYPTCOUNTA = 0 To 255

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA

Next

For $I_ENCRYPTCOUNTA = 0 To 255

$I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)

$V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP

Next

For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT)

$I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)

$I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)

$I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256) ][0]

$V_ENCRYPTCIPHERBY = BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 1)), $I_ENCRYPTCOUNTE)

$V_ENCRYPTCIPHER &= Hex($V_ENCRYPTCIPHERBY, 2)

Next

$S_ENCRYPTTEXT = $V_ENCRYPTCIPHER

Next

Else

For $I_ENCRYPTCOUNTF = 0 To $I_ENCRYPTLEVEL Step 1

$I_ENCRYPTCOUNTB = 0

$I_ENCRYPTCOUNTC = ""

$I_ENCRYPTCOUNTD = ""

$I_ENCRYPTCOUNTE = ""

$V_ENCRYPTCIPHERBY = ""

$V_ENCRYPTCIPHER = ""

$V_ENCRYPTSWAP = ""

$AV_ENCRYPTBOX = ""

Local $AV_ENCRYPTBOX[256][2]

For $I_ENCRYPTCOUNTA = 0 To 255

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1] = Asc(StringMid($S_ENCRYPTPASSWORD, Mod($I_ENCRYPTCOUNTA, StringLen($S_ENCRYPTPASSWORD)) + 1, 1))

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $I_ENCRYPTCOUNTA

Next

For $I_ENCRYPTCOUNTA = 0 To 255

$I_ENCRYPTCOUNTB = Mod(($I_ENCRYPTCOUNTB + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][1]), 256)

$V_ENCRYPTSWAP = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTA][0] = $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0]

$AV_ENCRYPTBOX[$I_ENCRYPTCOUNTB][0] = $V_ENCRYPTSWAP

Next

For $I_ENCRYPTCOUNTA = 1 To StringLen($S_ENCRYPTTEXT) Step 2

$I_ENCRYPTCOUNTC = Mod(($I_ENCRYPTCOUNTC + 1), 256)

$I_ENCRYPTCOUNTD = Mod(($I_ENCRYPTCOUNTD + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0]), 256)

$I_ENCRYPTCOUNTE = $AV_ENCRYPTBOX[Mod(($AV_ENCRYPTBOX[$I_ENCRYPTCOUNTC][0] + $AV_ENCRYPTBOX[$I_ENCRYPTCOUNTD][0]), 256) ][0]

$V_ENCRYPTCIPHERBY = BitXOR(Dec(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTA, 2)), $I_ENCRYPTCOUNTE)

$V_ENCRYPTCIPHER = $V_ENCRYPTCIPHER & Chr($V_ENCRYPTCIPHERBY)

Next

$S_ENCRYPTTEXT = $V_ENCRYPTCIPHER

$I_ENCRYPTCOUNTG = ""

$I_ENCRYPTCOUNTH = ""

$V_ENCRYPTMODIFIED = ""

For $I_ENCRYPTCOUNTG = 1 To StringLen($S_ENCRYPTTEXT)

If $I_ENCRYPTCOUNTH = StringLen($S_ENCRYPTPASSWORD) Then

$I_ENCRYPTCOUNTH = 1

Else

$I_ENCRYPTCOUNTH += 1

EndIf

$V_ENCRYPTMODIFIED &= Chr(BitXOR(Asc(StringMid($S_ENCRYPTTEXT, $I_ENCRYPTCOUNTG, 1)), Asc(StringMid($S_ENCRYPTPASSWORD, $I_ENCRYPTCOUNTH, 1)), 255))

Next

$S_ENCRYPTTEXT = $V_ENCRYPTMODIFIED

Next

EndIf

Return $S_ENCRYPTTEXT

EndIf

EndFunc

 

 

Func _STRINGINSERT($S_STRING, $S_INSERTSTRING, $I_POSITION)

Local $I_LENGTH, $S_START, $S_END

If $S_STRING = "" Or (Not IsString($S_STRING)) Then

SetError(1)

Return $S_STRING

ElseIf $S_INSERTSTRING = "" Or (Not IsString($S_STRING)) Then

SetError(2)

Return $S_STRING

Else

$I_LENGTH = StringLen($S_STRING)

If (Abs($I_POSITION) > $I_LENGTH) Or (Not IsInt($I_POSITION)) Then

SetError(3)

Return $S_STRING

EndIf

EndIf

If $I_POSITION = 0 Then

Return $S_INSERTSTRING & $S_STRING

ElseIf $I_POSITION > 0 Then

$S_START = StringLeft($S_STRING, $I_POSITION)

$S_END = StringRight($S_STRING, $I_LENGTH - $I_POSITION)

Return $S_START & $S_INSERTSTRING & $S_END

ElseIf $I_POSITION < 0 Then

$S_START = StringLeft($S_STRING, Abs($I_LENGTH + $I_POSITION))

$S_END = StringRight($S_STRING, Abs($I_POSITION))

Return $S_START & $S_INSERTSTRING & $S_END

EndIf

EndFunc

 

 

Func _STRINGPROPER($S_STR)

Local $IX = 0

Local $CAPNEXT = 1

Local $S_NSTR = ""

Local $S_CURCHAR

For $IX = 1 To StringLen($S_STR)

$S_CURCHAR = StringMid($S_STR, $IX, 1)

Select

Case $CAPNEXT = 1

If __CHARACTERISAPHA($S_CURCHAR) Then

$S_CURCHAR = StringUpper($S_CURCHAR)

$CAPNEXT = 0

EndIf

Case Not __CHARACTERISAPHA($S_CURCHAR)

$CAPNEXT = 1

Case Else

$S_CURCHAR = StringLower($S_CURCHAR)

EndSelect

$S_NSTR &= $S_CURCHAR

Next

Return ($S_NSTR)

EndFunc

 

 

Func _STRINGREPEAT($SSTRING, $IREPEATCOUNT)

Local $SRESULT

Select

Case Not StringIsInt($IREPEATCOUNT)

SetError(1)

Return ""

Case StringLen($SSTRING) < 1

SetError(1)

Return ""

Case $IREPEATCOUNT <= 0

SetError(1)

Return ""

Case Else

For $ICOUNT = 1 To $IREPEATCOUNT

$SRESULT &= $SSTRING

Next

Return $SRESULT

EndSelect

EndFunc

 

 

Func _STRINGREVERSE($SSTRING)

Local $SREVERSE

Local $ICOUNT

If StringLen($SSTRING) >= 1 Then

For $ICOUNT = 1 To StringLen($SSTRING)

$SREVERSE = StringMid($SSTRING, $ICOUNT, 1) & $SREVERSE

Next

Return $SREVERSE

Else

SetError(1)

Return ""

EndIf

EndFunc

 

 

Func _STRINGTOHEX($STRCHAR)

Local $ARYCHAR, $I, $IDEC, $HCHAR, $STRHEX

$ARYCHAR = StringSplit($STRCHAR, "")

For $I = 1 To $ARYCHAR[0]

$IDEC = Asc($ARYCHAR[$I])

$HCHAR = Hex($IDEC, 2)

$STRHEX &= $HCHAR

Next

Return $STRHEX

EndFunc

 

 

Func __CHARACTERISAPHA($S_STR)

Local $A_ALPHA = "abcdefghijklmnopqrstuvwxyz"

Return (StringInStr($A_ALPHA, $S_STR))

EndFunc

 

Global Const $CC_ANYCOLOR = 256

Global Const $CC_FULLOPEN = 2

Global Const $CC_RGBINIT = 1

Global Const $CF_EFFECTS = 256

Global Const $CF_PRINTERFONTS = 2

Global Const $CF_SCREENFONTS = 1

Global Const $CF_NOSCRIPTSEL = 8388608

Global Const $CF_INITTOLOGFONTSTRUCT = 64

Global Const $DEFAULT_PITCH = 0

Global Const $FF_DONTCARE = 0

Global Const $LOGPIXELSX = 88

 

Func _CHOOSECOLOR($I_RETURNTYPE = 0, $I_COLORREF = 0, $I_REFTYPE = 0, $H_WND_OWNER = 0)

Local $CUSTCOLORS = "int[16]"

Local $STRUCT = "dword;int;int;int;ptr;dword;int;ptr;ptr"

Local $P = DllStructCreate($STRUCT)

If @error Then

SetError(-1)

Return -1

EndIf

Local $CC = DllStructCreate($CUSTCOLORS)

If @error Then

SetError(-2)

Return -1

EndIf

If ($I_REFTYPE == 1) Then

$I_COLORREF = Int($I_COLORREF)

ElseIf ($I_REFTYPE == 2) Then

$I_COLORREF = Hex(String($I_COLORREF), 6)

$I_COLORREF = "0x" & StringMid($I_COLORREF, 5, 2) & StringMid($I_COLORREF, 3, 2) & StringMid($I_COLORREF, 1, 2)

EndIf

DllStructSetData($P, 1, DllStructGetSize($P))

DllStructSetData($P, 2, $H_WND_OWNER)

DllStructSetData($P, 4, $I_COLORREF)

DllStructSetData($P, 5, DllStructGetPtr($CC))

DllStructSetData($P, 6, BitOR($CC_ANYCOLOR, $CC_FULLOPEN, $CC_RGBINIT))

Local $RET = DllCall("comdlg32.dll", "long", "ChooseColor", "ptr", DllStructGetPtr($P))

If ($RET[0] == 0) Then

SetError(-3)

Return -1

EndIf

Local $COLOR_PICKED = DllStructGetData($P, 4)

If ($I_RETURNTYPE == 1) Then

Return "0x" & Hex(String($COLOR_PICKED), 6)

ElseIf ($I_RETURNTYPE == 2) Then

$COLOR_PICKED = Hex(String($COLOR_PICKED), 6)

Return "0x" & StringMid($COLOR_PICKED, 5, 2) & StringMid($COLOR_PICKED, 3, 2) & StringMid($COLOR_PICKED, 1, 2)

ElseIf ($I_RETURNTYPE == 0) Then

Return $COLOR_PICKED

Else

SetError(-4)

Return -1

EndIf

EndFunc

 

 

Func _CHOOSEFONT($S_FONTNAME = "Courier New", $I_SIZE = 10, $I_COLORREF = 0, $I_FONTWEIGHT = 0, $I_ITALIC = 0, $I_UNDERLINE = 0, $I_STRIKETHRU = 0, $H_WND_OWNER = 0)

Local $RET = DllCall("gdi32.dll", "long", "GetDeviceCaps", "long", 0, "long", $LOGPIXELSX)

If ($RET[0] == -1) Then

SetError(-3)

Return -1

EndIf

Local $LFHEIGHT = Round(($I_SIZE * $RET[2]) / 72, 0)

Local $LOGFONT = "int;int;int;int;int;byte;byte;byte;byte;byte;byte;byte;byte;char[32]"

Local $STRUCT = "dword;int;int;ptr;int;dword;int;int;ptr;ptr;int;ptr;dword;int;int"

Local $P = DllStructCreate($STRUCT)

If @error Then

SetError(-1)

Return -1

EndIf

Local $LF = DllStructCreate($LOGFONT)

If @error Then

SetError(-2)

Return -1

EndIf

DllStructSetData($P, 1, DllStructGetSize($P))

DllStructSetData($P, 2, $H_WND_OWNER)

DllStructSetData($P, 4, DllStructGetPtr($LF))

DllStructSetData($P, 5, $I_SIZE)

DllStructSetData($P, 6, BitOR($CF_SCREENFONTS, $CF_PRINTERFONTS, $CF_EFFECTS, $CF_INITTOLOGFONTSTRUCT, $CF_NOSCRIPTSEL))

DllStructSetData($P, 7, $I_COLORREF)

DllStructSetData($P, 13, 0)

DllStructSetData($LF, 1, $LFHEIGHT + 1)

DllStructSetData($LF, 5, $I_FONTWEIGHT)

DllStructSetData($LF, 6, $I_ITALIC)

DllStructSetData($LF, 7, $I_UNDERLINE)

DllStructSetData($LF, 8, $I_STRIKETHRU)

DllStructSetData($LF, 14, $S_FONTNAME)

$RET = DllCall("comdlg32.dll", "long", "ChooseFont", "ptr", DllStructGetPtr($P))

If ($RET[0] == 0) Then

SetError(-3)

Return -1

EndIf

Local $FONTNAME = DllStructGetData($LF, 14)

If (StringLen($FONTNAME) == 0 And StringLen($S_FONTNAME) > 0) Then

$FONTNAME = $S_FONTNAME

EndIf

Local $ITALIC = 0

Local $UNDERLINE = 0

Local $STRIKEOUT = 0

If (DllStructGetData($LF, 6)) Then

$ITALIC = 2

EndIf

If (DllStructGetData($LF, 7)) Then

$UNDERLINE = 4

EndIf

If (DllStructGetData($LF, 8)) Then

$STRIKEOUT = 8

EndIf

Local $ATTRIBUTES = BitOR($ITALIC, $UNDERLINE, $STRIKEOUT)

Local $SIZE = DllStructGetData($P, 5) / 10

Local $WEIGHT = DllStructGetData($LF, 5)

Local $COLORREF = DllStructGetData($P, 7)

Local $COLOR_PICKED = Hex(String($COLORREF), 6)

Return StringSplit($ATTRIBUTES & "," & $FONTNAME & "," & $SIZE & "," & $WEIGHT & "," & $COLORREF & "," & "0x" & $COLOR_PICKED & "," & "0x" & StringMid($COLOR_PICKED, 5, 2) & StringMid($COLOR_PICKED, 3, 2) & StringMid($COLOR_PICKED, 1, 2), ",")

EndFunc

 

 

Func _CLIPPUTFILE($SFILE, $SSEPERATOR = "|")

Local $VDLLCALLTMP, $NGLOBMEMSIZE, $HGLOBAL, $DROPFILES, $I, $HLOCK

Local $GMEM_MOVEABLE = 2, $CF_HDROP = 15

$SFILE = $SFILE & $SSEPERATOR & $SSEPERATOR

$NGLOBMEMSIZE = StringLen($SFILE) + 20

$VDLLCALLTMP = DllCall("user32.dll", "int", "OpenClipboard", "hwnd", 0)

If @error Or $VDLLCALLTMP[0] = 0 Then

SetError(1)

Return False

EndIf

$VDLLCALLTMP = DllCall("user32.dll", "int", "EmptyClipboard")

If @error Or $VDLLCALLTMP[0] = 0 Then

SetError(2)

Return False

EndIf

$VDLLCALLTMP = DllCall("kernel32.dll", "long", "GlobalAlloc", "int", $GMEM_MOVEABLE, "int", $NGLOBMEMSIZE)

If @error Or $VDLLCALLTMP[0] < 1 Then

SetError(3)

Return False

EndIf

$HGLOBAL = $VDLLCALLTMP[0]

$VDLLCALLTMP = DllCall("kernel32.dll", "long", "GlobalLock", "long", $HGLOBAL)

If @error Or $VDLLCALLTMP[0] < 1 Then

SetError(4)

Return False

EndIf

$HLOCK = $VDLLCALLTMP[0]

$DROPFILES = DllStructCreate("dword;ptr;int;int;int;char[" & StringLen($SFILE) & "]", $HLOCK)

If @error Then

SetError(5)

Return False

EndIf

DllStructSetData($DROPFILES, 1, DllStructGetSize($DROPFILES) - StringLen($SFILE))

DllStructSetData($DROPFILES, 2, 0)

DllStructSetData($DROPFILES, 3, 0)

DllStructSetData($DROPFILES, 4, 0)

DllStructSetData($DROPFILES, 5, 0)

DllStructSetData($DROPFILES, 6, $SFILE)

For $I = 1 To StringLen($SFILE)

If DllStructGetData($DROPFILES, 6, $I) = Asc($SSEPERATOR) Then DllStructSetData($DROPFILES, 6, 0, $I)

Next

$VDLLCALLTMP = DllCall("user32.dll", "long", "SetClipboardData", "int", $CF_HDROP, "long", $HGLOBAL)

If @error Or $VDLLCALLTMP[0] < 1 Then

SetError(6)

$DROPFILES = 0

Return False

EndIf

$VDLLCALLTMP = DllCall("user32.dll", "int", "CloseClipboard")

If @error Or $VDLLCALLTMP[0] = 0 Then

SetError(7)

$DROPFILES = 0

Return False

EndIf

$VDLLCALLTMP = DllCall("kernel32.dll", "int", "GlobalUnlock", "long", $HGLOBAL)

If @error Then

SetError(8)

$DROPFILES = 0

Return False

EndIf

$VDLLCALLTMP = DllCall("kernel32.dll", "int", "GetLastError")

If $VDLLCALLTMP = 0 Then

$DROPFILES = 0

SetError(8)

Return False

Else

$DROPFILES = 0

Return True

EndIf

EndFunc

 

 

Func _IIF($F_TEST, $V_TRUEVAL, $V_FALSEVAL)

If $F_TEST Then

Return $V_TRUEVAL

Else

Return $V_FALSEVAL

EndIf

EndFunc

 

 

Func _MOUSETRAP($I_LEFT = 0, $I_TOP = 0, $I_RIGHT = 0, $I_BOTTOM = 0)

Local $AV_RET

If @NumParams == 0 Then

$AV_RET = DllCall("user32.dll", "int", "ClipCursor", "int", 0)

Else

If @NumParams == 2 Then

$I_RIGHT = $I_LEFT + 1

$I_BOTTOM = $I_TOP + 1

EndIf

Local $RECT = DllStructCreate("int;int;int;int")

If @error Then Return 0

DllStructSetData($RECT, 1, $I_LEFT)

DllStructSetData($RECT, 2, $I_TOP)

DllStructSetData($RECT, 3, $I_RIGHT)

DllStructSetData($RECT, 4, $I_BOTTOM)

$AV_RET = DllCall("user32.dll", "int", "ClipCursor", "ptr", DllStructGetPtr($RECT))

EndIf

Return $AV_RET[0]

EndFunc

 

 

Func _SINGLETON($OCCURENCENAME, $FLAG = 0)

Local $ERROR_ALREADY_EXISTS = 183

$OCCURENCENAME = StringReplace($OCCURENCENAME, "\", "")

Local $HANDLE = DllCall("kernel32.dll", "int", "CreateMutex", "int", 0, "long", 1, "str", $OCCURENCENAME)

Local $LASTERROR = DllCall("kernel32.dll", "int", "GetLastError")

If $LASTERROR[0] = $ERROR_ALREADY_EXISTS Then

If $FLAG = 0 Then

Exit -1

Else

SetError($LASTERROR[0])

Return 0

EndIf

EndIf

Return $HANDLE[0]

EndFunc

 

 

Func _ISPRESSED($S_HEXKEY, $V_DLL = "user32.dll")

Local $A_R = DllCall($V_DLL, "int", "GetAsyncKeyState", "int", "0x" & $S_HEXKEY)

If Not @error And BitAND($A_R[0], 32768) = 32768 Then Return 1

Return 0

EndFunc

 

 

Func _SENDMESSAGE($H_HWND, $I_MSG, $WPARAM = 0, $LPARAM = 0, $I_R = 0, $S_T1 = "int", $S_T2 = "int")

Local $A_RET = DllCall("user32.dll", "long", "SendMessage", "hwnd", $H_HWND, "int", $I_MSG, $S_T1, $WPARAM, $S_T2, $LPARAM)

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

If $I_R >= 0 And $I_R <= 4 Then Return $A_RET[$I_R]

Return $A_RET

EndFunc

 

 

Func _ISCLASSNAME($H_HWND, $S_CLASSNAME)

If Not IsHWnd($H_HWND) Then $H_HWND = GUICtrlGetHandle($H_HWND)

Local $ARESULT = DllCall("user32.dll", "int", "GetClassNameA", "hwnd", $H_HWND, "str", "", "int", 256)

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

If IsArray($ARESULT) Then

If StringUpper(StringMid($ARESULT[2], 1, StringLen($S_CLASSNAME))) = StringUpper($S_CLASSNAME) Then

Return 1

Else

Return 0

EndIf

Else

Return SetError(-1, -1, 0)

EndIf

EndFunc

 

 

Func _VERSIONCOMPARE($SVERSION1, $SVERSION2)

If $SVERSION1 = $SVERSION2 Then Return 0

Local $SEP = "."

If StringInStr($SVERSION1, $SEP) = 0 Then $SEP = ","

Local $AVERSION1 = StringSplit($SVERSION1, $SEP)

Local $AVERSION2 = StringSplit($SVERSION2, $SEP)

If UBound($AVERSION1) <> UBound($AVERSION2) Or UBound($AVERSION1) = 0 Then

SetExtended(1)

If $SVERSION1 > $SVERSION2 Then

Return 1

ElseIf $SVERSION1 < $SVERSION2 Then

Return -1

EndIf

Else

For $I = 1 To UBound($AVERSION1) - 1

If StringIsDigit($AVERSION1[$I]) And StringIsDigit($AVERSION2[$I]) Then

If Number($AVERSION1[$I]) > Number($AVERSION2[$I]) Then

Return 1

ElseIf Number($AVERSION1[$I]) < Number($AVERSION2[$I]) Then

Return -1

EndIf

Else

SetExtended(1)

If $AVERSION1[$I] > $AVERSION2[$I] Then

Return 1

ElseIf $AVERSION1[$I] < $AVERSION2[$I] Then

Return -1

EndIf

EndIf

Next

EndIf

SetError(2)

Return 0

EndFunc

 

 

Func _GUICTRLCOMBOADDDIR($H_COMBOBOX, $S_ATTRIBUTES, $S_FILE = "")

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $I, $V_ATTRIBUTES = "", $I_DRIVES = 0, $NO_BRACKETS = 0

Local $V_RET, $A_ATTRIBUTES = StringSplit($S_ATTRIBUTES, ",")

For $I = 1 To $A_ATTRIBUTES[0]

Select

Case StringUpper($A_ATTRIBUTES[$I]) = "A"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_ARCHIVE

Else

$V_ATTRIBUTES = $CB_DDL_ARCHIVE

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "D"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_DIRECTORY

Else

$V_ATTRIBUTES = $CB_DDL_DIRECTORY

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "H"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_HIDDEN

Else

$V_ATTRIBUTES = $CB_DDL_HIDDEN

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "RO"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_READONLY

Else

$V_ATTRIBUTES = $CB_DDL_READONLY

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "RW"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_READWRITE

Else

$V_ATTRIBUTES = $CB_DDL_READWRITE

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "S"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_SYSTEM

Else

$V_ATTRIBUTES = $CB_DDL_SYSTEM

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "DRIVES"

$I_DRIVES = 1

$S_FILE = ""

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_DRIVES

Else

$V_ATTRIBUTES = $CB_DDL_DRIVES

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "E"

If (StringLen($V_ATTRIBUTES) > 0) Then

$V_ATTRIBUTES = $V_ATTRIBUTES + $CB_DDL_EXCLUSIVE

Else

$V_ATTRIBUTES = $CB_DDL_EXCLUSIVE

EndIf

Case StringUpper($A_ATTRIBUTES[$I]) = "NB"

If (StringLen($V_ATTRIBUTES) > 0) And StringInStr($S_ATTRIBUTES, "DRIVES") Then

$NO_BRACKETS = 1

Else

$NO_BRACKETS = 0

EndIf

Case Else

Return $CB_ERRATTRIBUTE

EndSelect

Next

If (Not $I_DRIVES And StringLen($S_FILE) == 0) Then Return $CB_ERRREQUIRED

If $I_DRIVES And $NO_BRACKETS Then

Local $S_TEXT

Local $GUI_NO_BRACKETS = GUICreate("no brackets")

Local $COMBO_NO_BRACKETS = GUICtrlCreateCombo("", 70, 10, 270, 100, $CBS_SIMPLE)

$V_RET = GUICtrlSendMsg($COMBO_NO_BRACKETS, $CB_DIR, $V_ATTRIBUTES, $S_FILE)

For $I = 0 To _GUICTRLCOMBOGETCOUNT($COMBO_NO_BRACKETS) - 1

_GUICTRLCOMBOGETLBTEXT($COMBO_NO_BRACKETS, $I, $S_TEXT)

$S_TEXT = StringReplace(StringReplace(StringReplace($S_TEXT, "[", ""), "]", ":"), "-", "")

_GUICTRLCOMBOINSERTSTRING($H_COMBOBOX, -1, $S_TEXT)

Next

GUIDelete($GUI_NO_BRACKETS)

Return $V_RET

Else

If IsHWnd($H_COMBOBOX) Then

$V_RET = DllCall("user32.dll", "int", "SendMessage", "hwnd", $H_COMBOBOX, "int", $CB_DIR, "int", $V_ATTRIBUTES, "str", $S_FILE)

Return $V_RET[0]

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_DIR, $V_ATTRIBUTES, $S_FILE)

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOADDSTRING($H_COMBOBOX, $S_TEXT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_ADDSTRING, 0, $S_TEXT, 0, "int", "str")

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_ADDSTRING, 0, String($S_TEXT))

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOAUTOCOMPLETE($H_COMBOBOX, ByRef $S_TEXT, $S_WTITLE = "", $S_WTEXT = "")

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

Local $RET, $S_INPUTTEXT, $S_DATA

If _ISPRESSED("08") Then

$S_TEXT = GUICtrlRead($H_COMBOBOX)

Else

If IsHWnd($H_COMBOBOX) Then

If $S_TEXT <> ControlGetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX) Then

$S_DATA = ControlGetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX)

$RET = _GUICTRLCOMBOFINDSTRING($H_COMBOBOX, $S_DATA)

If ($RET <> $CB_ERR) Then

_GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $RET, $S_INPUTTEXT)

ControlSetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX, $S_INPUTTEXT)

_GUICTRLCOMBOSETEDITSEL($H_COMBOBOX, StringLen($S_DATA), StringLen(ControlGetText($S_WTITLE, $S_WTEXT, $H_COMBOBOX)))

EndIf

$S_TEXT = ControlGetText(WinGetTitle(""), "", $H_COMBOBOX)

EndIf

Else

If $S_TEXT <> GUICtrlRead($H_COMBOBOX) Then

$S_DATA = GUICtrlRead($H_COMBOBOX)

$RET = _GUICTRLCOMBOFINDSTRING($H_COMBOBOX, $S_DATA)

If ($RET <> $CB_ERR) Then

_GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $RET, $S_INPUTTEXT)

GUICtrlSetData($H_COMBOBOX, $S_INPUTTEXT)

_GUICTRLCOMBOSETEDITSEL($H_COMBOBOX, StringLen($S_DATA), StringLen(GUICtrlRead($H_COMBOBOX)))

EndIf

$S_TEXT = GUICtrlRead($H_COMBOBOX)

EndIf

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLCOMBODELETESTRING($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_DELETESTRING, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_DELETESTRING, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOFINDSTRING($H_COMBOBOX, $S_SEARCH, $I_EXACT = 0)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

If ($I_EXACT) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_FINDSTRINGEXACT, -1, $S_SEARCH, 0, "int", "str")

Else

Return _SENDMESSAGE($H_COMBOBOX, $CB_FINDSTRING, -1, $S_SEARCH, 0, "int", "str")

EndIf

Else

If ($I_EXACT) Then

Return GUICtrlSendMsg($H_COMBOBOX, $CB_FINDSTRINGEXACT, -1, String($S_SEARCH))

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_FINDSTRING, -1, String($S_SEARCH))

EndIf

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETCOUNT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETCOUNT)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETCOUNT, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETCURSEL($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETCURSEL)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETCURSEL, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETDROPPEDCONTROLRECT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $RECT = "int;int;int;int"

Local $LEFT = 1

Local $TOP = 2

Local $RIGHT = 3

Local $BOTTOM = 4

Local $STRUCT_RECT

$STRUCT_RECT = DllStructCreate($RECT)

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_GETDROPPEDCONTROLRECT, 0, DllStructGetPtr($STRUCT_RECT), 0, "int", "ptr")

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_GETDROPPEDCONTROLRECT, 0, DllStructGetPtr($STRUCT_RECT))

EndIf

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $ARRAY = StringSplit(DllStructGetData($STRUCT_RECT, $LEFT) & "," & DllStructGetData($STRUCT_RECT, $TOP) & "," & DllStructGetData($STRUCT_RECT, $RIGHT) & "," & DllStructGetData($STRUCT_RECT, $BOTTOM), ",")

Return $ARRAY

EndFunc

 

 

Func _GUICTRLCOMBOGETDROPPEDSTATE($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, False)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETDROPPEDSTATE)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETDROPPEDSTATE, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETDROPPEDWIDTH($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETDROPPEDWIDTH)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETDROPPEDWIDTH, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETEDITSEL($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $STRUCT_START = "dword"

Local $STRUCT_END = "dword"

Local $RET

Local $SS = DllStructCreate($STRUCT_START)

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $SE = DllStructCreate($STRUCT_END)

If @error Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

$RET = _SENDMESSAGE($H_COMBOBOX, $CB_GETEDITSEL, DllStructGetPtr($SS), DllStructGetPtr($SE), "int", "ptr", "ptr")

Else

$RET = GUICtrlSendMsg($H_COMBOBOX, $CB_GETEDITSEL, DllStructGetPtr($SS), DllStructGetPtr($SE))

EndIf

If (Not $RET) Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $S_START_END = DllStructGetData($SS, 1) & "," & DllStructGetData($SE, 1)

Return StringSplit($S_START_END, ",")

EndFunc

 

 

Func _GUICTRLCOMBOGETEXTENDEDUI($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, False)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETEXTENDEDUI)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETEXTENDEDUI, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETHORIZONTALEXTENT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETHORIZONTALEXTENT)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETHORIZONTALEXTENT, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETITEMHEIGHT($H_COMBOBOX, $I_INDEX = -1)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETITEMHEIGHT, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETITEMHEIGHT, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $I_INDEX, ByRef $S_TEXT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

Local $LEN = _GUICTRLCOMBOGETLBTEXTLEN($H_COMBOBOX, $I_INDEX)

$S_TEXT = ""

Local $RET, $STRUCT = DllStructCreate("char[" & $LEN + 1 & "]")

If Not IsHWnd($H_COMBOBOX) Then $H_COMBOBOX = GUICtrlGetHandle($H_COMBOBOX)

$RET = DllCall("user32.dll", "int", "SendMessageA", "hwnd", $H_COMBOBOX, "int", $CB_GETLBTEXT, "int", $I_INDEX, "ptr", DllStructGetPtr($STRUCT))

If ($RET[0] == $CB_ERR) Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

$S_TEXT = DllStructGetData($STRUCT, 1)

Return $RET

EndFunc

 

 

Func _GUICTRLCOMBOGETLBTEXTLEN($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETLBTEXTLEN, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETLBTEXTLEN, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETLIST($H_COMBOBOX, $SDELIMITER = "|")

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, "")

Local $SRESULT, $SITEM

For $I = 0 To _GUICTRLCOMBOGETCOUNT($H_COMBOBOX) - 1

_GUICTRLCOMBOGETLBTEXT($H_COMBOBOX, $I, $SITEM)

$SRESULT &= $SITEM & $SDELIMITER

Next

$SRESULT = StringTrimRight($SRESULT, StringLen($SDELIMITER))

Return $SRESULT

EndFunc

 

 

Func _GUICTRLCOMBOGETLOCALE($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return Hex(_SENDMESSAGE($H_COMBOBOX, $CB_GETLOCALE), 4)

Else

Return Hex(GUICtrlSendMsg($H_COMBOBOX, $CB_GETLOCALE, 0, 0), 4)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETMINVISIBLE($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETMINVISIBLE)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETMINVISIBLE, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOGETTOPINDEX($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_GETTOPINDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_GETTOPINDEX, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOINITSTORAGE($H_COMBOBOX, $I_NUM, $I_BYTES)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_INITSTORAGE, $I_NUM, $I_BYTES)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_INITSTORAGE, $I_NUM, $I_BYTES)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOINSERTSTRING($H_COMBOBOX, $I_INDEX, $S_TEXT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_INSERTSTRING, $I_INDEX, $S_TEXT, 0, "int", "str")

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_INSERTSTRING, $I_INDEX, String($S_TEXT))

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOLIMITTEXT($H_COMBOBOX, $I_LIMIT = 0)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_LIMITTEXT, $I_LIMIT)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_LIMITTEXT, $I_LIMIT, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBORESETCONTENT($H_COMBOBOX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_RESETCONTENT)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_RESETCONTENT, 0, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSELECTSTRING($H_COMBOBOX, $I_INDEX, $S_SEARCH)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SELECTSTRING, $I_INDEX, $S_SEARCH, 0, "int", "str")

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SELECTSTRING, $I_INDEX, String($S_SEARCH))

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETCURSEL($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETCURSEL, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETCURSEL, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETDROPPEDWIDTH($H_COMBOBOX, $I_WIDTH)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETDROPPEDWIDTH, $I_WIDTH)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETDROPPEDWIDTH, $I_WIDTH, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETEDITSEL($H_COMBOBOX, $I_START, $I_STOP)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETEDITSEL, 0, $I_STOP * 65536 + $I_START)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETEDITSEL, 0, $I_STOP * 65536 + $I_START)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETEXTENDEDUI($H_COMBOBOX, $I_BOOL)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETEXTENDEDUI, $I_BOOL)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETEXTENDEDUI, $I_BOOL, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETHORIZONTALEXTENT($H_COMBOBOX, $I_WIDTH)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_SETHORIZONTALEXTENT, $I_WIDTH)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_SETHORIZONTALEXTENT, $I_WIDTH, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETITEMHEIGHT($H_COMBOBOX, $I_COMPONENT, $I_HEIGHT)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETITEMHEIGHT, $I_COMPONENT, $I_HEIGHT)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETITEMHEIGHT, $I_COMPONENT, $I_HEIGHT)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETMINVISIBLE($H_COMBOBOX, $I_MINIMUM)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, False)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETMINVISIBLE, $I_MINIMUM)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETMINVISIBLE, $I_MINIMUM, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSETTOPINDEX($H_COMBOBOX, $I_INDEX)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, $CB_ERR)

If IsHWnd($H_COMBOBOX) Then

Return _SENDMESSAGE($H_COMBOBOX, $CB_SETTOPINDEX, $I_INDEX)

Else

Return GUICtrlSendMsg($H_COMBOBOX, $CB_SETTOPINDEX, $I_INDEX, 0)

EndIf

EndFunc

 

 

Func _GUICTRLCOMBOSHOWDROPDOWN($H_COMBOBOX, $I_BOOL)

If Not _ISCLASSNAME($H_COMBOBOX, "ComboBox") Then Return SetError($CB_ERR, $CB_ERR, 0)

If IsHWnd($H_COMBOBOX) Then

_SENDMESSAGE($H_COMBOBOX, $CB_SHOWDROPDOWN, $I_BOOL)

Else

GUICtrlSendMsg($H_COMBOBOX, $CB_SHOWDROPDOWN, $I_BOOL, 0)

EndIf

EndFunc

 

$REGPATH = IniRead("lsetting.ini", "register", "reg", "NotFound")

$LINKPATH = IniRead("lsetting.ini", "patch", "path", "NotFound")

$LAUNCHERTITLE = IniRead("lsetting.ini", "config", "title", "NotFound")

$NOTICEPATH = IniRead("lsetting.ini", "notice", "notice", "NotFound")

$OPTTITLE = IniRead("serverOPTION.ini", "title", "title", "NotFound")

Dim $URL = $LINKPATH & "patch.exe"

Dim $URL01 = $LINKPATH & "patch01.exe"

Dim $URL02 = $LINKPATH & "patch02.exe"

$OIE = ObjCreate("Shell.Explorer.2")

$SET = 1

$PATCH = 1

$EIP = ("http://5.244.5.93")

TCPStartup()

$SIP = TCPNameToIP($EIP)

GUICreate("AutoUpdater ver. 1.2", 625, 420, (@DesktopWidth - 450) / 2, (@DesktopHeight - 400) / 2)

GUICtrlSetBkColor(-1, 0)

GUICtrlSetState(-1, $GUI_DISABLE)

$LAUNCH = GUICtrlCreateButton("Rozpocznij Gr!", 485, 10, 130, 40, 0)

$REGISTER = GUICtrlCreateButton("Zarejestruj", 485, 60, 130, 35, 0)

$OPTION = GUICtrlCreateButton("Opcje", 485, 105, 130, 35, 0)

$EXIT = GUICtrlCreateButton("Wyj[cie", 485, 320, 130, 40, 0)

$PROGRESS = GUICtrlCreateProgress(100, 400, 500, 10, $PBS_SMOOTH)

$OPTRUN = 0

$GMERUN = 0

$GUIACTIVEX = GUICtrlCreateObj($OIE, 10, 10, 467, 379)

GUICtrlCreateLabel("AutoUpdater by TraDeus", 490, 372)

GUICtrlCreateLabel("Stan aktualizacji:", 10, 398)

GUICtrlSetState($LAUNCH, $GUI_ENABLE)

InetGet($LINKPATH & "version.ini", "version.ini")

Sleep(500)

$CHK = IniRead("version.ini", "version", "ver", "NotFound")

$CHK2 = IniRead("clientversion.ini", "version", "ver", "NotFound")

If $CHK2 < $CHK Then

$PATCH = 1

ElseIf $CHK2 = $CHK Then

$PATCH = 0

EndIf

FileDelete("version.ini")

GUISetState()

$OIE.navigate ($NOTICEPATH)

While 1

$MSG = GUIGetMsg()

Select

Case $MSG = $GUI_EVENT_CLOSE

ExitLoop

Case $MSG = $LAUNCH

If ($PATCH = "1") Then

InetGet($LINKPATH & "version.ini", "version.ini")

Sleep(500)

$CHK = IniRead("version.ini", "version", "ver", "NotFound")

$CHK2 = IniRead("clientversion.ini", "version", "ver", "NotFound")

$PATCH1 = InetGetSize($URL)

$PATCH2 = InetGetSize($URL01)

$PATCH3 = InetGetSize($URL02)

$CLIENTVER = InetGetSize($LINKPATH & "clientversion.ini")

If $CHK2 < $CHK Then

GUICtrlSetState($LAUNCH, $GUI_DISABLE)

If ($PATCH1 > "0") Then

InetGet($URL, "patch.exe", 1, 1)

$FILESIZE = InetGetSize($URL)

While @InetGetActive

TrayTip("Pobieranie aktualizacji...", "Rozmiar w bajtach = " & @InetGetBytesRead, 5, 16)

GUICtrlSetData($PROGRESS, (@InetGetBytesRead / $FILESIZE) * 100)

Sleep(250)

WEnd

TrayTip("Nadpisywanie plik,w...", "Prosz Czeka...", 5, 16)

ShellExecute("patch.exe")

Sleep(300)

EndIf

If ($PATCH2 > "0") Then

InetGet($URL01, "patch01.exe", 1, 1)

$FILESIZE01 = InetGetSize($URL01)

While @InetGetActive

TrayTip("Pobieranie aktualizacji", "Rozmiar w bajtach = " & @InetGetBytesRead, 5, 16)

GUICtrlSetData($PROGRESS, (@InetGetBytesRead / $FILESIZE01) * 100)

Sleep(250)

WEnd

TrayTip("Nadpisywanie plik,w...", "Prosz Czeka...", 5, 16)

ShellExecute("patch01.exe")

Sleep(300)

EndIf

If ($PATCH3 > "0") Then

InetGet($URL02, "patch02.exe", 1, 1)

$FILESIZE02 = InetGetSize($URL02)

While @InetGetActive

TrayTip("Pobieranie aktualizacji", "Rozmiar w bajtach = " & @InetGetBytesRead, 5, 16)

GUICtrlSetData($PROGRESS, (@InetGetBytesRead / $FILESIZE02) * 100)

Sleep(250)

WEnd

TrayTip("Nadpisywanie plik,w...", "Prosz Czeka...", 5, 16)

ShellExecute("patch02.exe")

Sleep(300)

EndIf

If ($CLIENTVER > "0") Then

InetGet($LINKPATH & "clientversion.ini", "clientversion.ini", 1, 1)

While @InetGetActive

MsgBox(64, "", "Aktualizacja zakoDczona!")

Sleep(250)

WEnd

FileMove("clientversion.ini", "clientversion.ini", 1)

EndIf

FileDelete("version.ini")

FileDelete("patch.exe")

FileDelete("patch01.exe")

FileDelete("patch02.exe")

GUICtrlSetState($LAUNCH, $GUI_ENABLE)

ElseIf $CHK2 = $CHK Then

$SET = 0

FileDelete("version.ini")

EndIf

WinClose($LAUNCHERTITLE & "AutoUpdater by Przemek L.")

Else

If @error Then

$MASALAH = GUICtrlCreateLabel("Salah Folder !", 304, 416, 89, 17)

Else

If ($GMERUN = "0") Then

$GMERUN = 1

Run("metin2.bin")

WinClose($LAUNCHERTITLE & "AutoUpdater by Przemek L.")

Else

MsgBox(0, $LAUNCHERTITLE & " Ostrze|enie!", "Gra EvoniS jest ju| otwarta!")

EndIf

EndIf

EndIf

Case $MSG = $EXIT

WinClose($OPTTITLE & " Opcje")

ExitLoop

Case $MSG = $OPTION

If @error Then

$MASALAH = GUICtrlCreateLabel("Salah Folder !", 304, 416, 89, 17)

Else

If ($OPTRUN = "0") Then

$OPTRUN = 1

Run("config.exe")

Else

MsgBox(0, $LAUNCHERTITLE & " Ostrze|enie!", "Jest ju| otwarte okno opcji EvoniS!")

EndIf

EndIf

Case $MSG = $REGISTER

$OIE2 = _IECREATE($REGPATH)

EndSelect

WEnd

GUIDelete()

Exit

 

 

Tak na wszelki wypadek dam twój skrypt

  • 3 tygodnie później...
Opublikowano

Mógł byśzrobiv jakiegos video-tuta bo nic nie kapuje o co chodzi zkomfigurowalem all alei tak nei działa

fiR919k.png

Opublikowano

Dla kazdego kto chce sobie go edytowac ;o

 

Download

 

Skana nie daje bo to plik textowy...

 

Mogę prosić o nowy link bo stary wygasł.

02758850976702993171.png
  • 4 tygodnie później...
  • 3 tygodnie później...
  • 2 miesiące temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...