|
You last visited: Today at 22:53
Advertisement
fehler im script
Discussion on fehler im script within the AutoIt forum part of the Coders Den category.
07/23/2010, 14:57
|
#1
|
elite*gold: 0
Join Date: May 2010
Posts: 36
Received Thanks: 6
|
fehler im script
Hi ein kumpel hat mir mal seinen script geschickt der bei den browsergame die stämme spieler einladen soll^^. Er hat neuerdings auch einen fehler das die stammeslosen spieler pro kontinent nicht in der txt datei gespeichert werden und ich und er wissen nicht warum^^.
hier mal der script:
PHP Code:
#RequireAdmin
#Region
#EndRegion
Func _ARRAYADD(ByRef $AVARRAY, $VVALUE)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, -1)
Local $IUBOUND = UBound($AVARRAY)
ReDim $AVARRAY[$IUBOUND + 1]
$AVARRAY[$IUBOUND] = $VVALUE
Return $IUBOUND
EndFunc
Func _ARRAYBINARYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(5, 0, -1)
Local $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(4, 0, -1)
Local $IMID = Int(($IEND + $ISTART) / 2)
If $AVARRAY[$ISTART] > $VVALUE Or $AVARRAY[$IEND] < $VVALUE Then Return SetError(2, 0, -1)
While $ISTART <= $IMID And $VVALUE <> $AVARRAY[$IMID]
If $VVALUE < $AVARRAY[$IMID] Then
$IEND = $IMID - 1
Else
$ISTART = $IMID + 1
EndIf
$IMID = Int(($IEND + $ISTART) / 2)
WEnd
If $ISTART > $IEND Then Return SetError(3, 0, -1)
Return $IMID
EndFunc
Func _ARRAYCOMBINATIONS(ByRef $AVARRAY, $ISET, $SDELIM = "")
Local $I, $AIDX[1], $ARESULT[1], $IN = 0, $IR = 0, $ILEFT = 0, $ITOTAL = 0, $ICOUNT = 1
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
$IN = UBound($AVARRAY)
$IR = $ISET
Dim $AIDX[$IR]
For $I = 0 To $IR - 1
$AIDX[$I] = $I
Next
$ITOTAL = _ARRAY_COMBINATIONS($IN, $IR)
$ILEFT = $ITOTAL
ReDim $ARESULT[$ITOTAL + 1]
$ARESULT[0] = $ITOTAL
While $ILEFT > 0
_ARRAY_GETNEXT($IN, $IR, $ILEFT, $ITOTAL, $AIDX)
For $I = 0 To $ISET - 1
$ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM
Next
If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)
$ICOUNT += 1
WEnd
Return $ARESULT
EndFunc
Func _ARRAYCONCATENATE(ByRef $AVARRAYTARGET, Const ByRef $AVARRAYSOURCE)
If Not IsArray($AVARRAYTARGET) Then Return SetError(1, 0, 0)
If Not IsArray($AVARRAYSOURCE) Then Return SetError(2, 0, 0)
If UBound($AVARRAYTARGET, 0) <> 1 Then
If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(5, 0, 0)
Return SetError(3, 0, 0)
EndIf
If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(4, 0, 0)
Local $IUBOUNDTARGET = UBound($AVARRAYTARGET), $IUBOUNDSOURCE = UBound($AVARRAYSOURCE)
ReDim $AVARRAYTARGET[$IUBOUNDTARGET + $IUBOUNDSOURCE]
For $I = 0 To $IUBOUNDSOURCE - 1
$AVARRAYTARGET[$IUBOUNDTARGET + $I] = $AVARRAYSOURCE[$I]
Next
Return $IUBOUNDTARGET + $IUBOUNDSOURCE
EndFunc
Func _ARRAYCREATE($V_0, $V_1 = 0, $V_2 = 0, $V_3 = 0, $V_4 = 0, $V_5 = 0, $V_6 = 0, $V_7 = 0, $V_8 = 0, $V_9 = 0, $V_10 = 0, $V_11 = 0, $V_12 = 0, $V_13 = 0, $V_14 = 0, $V_15 = 0, $V_16 = 0, $V_17 = 0, $V_18 = 0, $V_19 = 0, $V_20 = 0)
Local $AV_ARRAY[21] = [$V_0, $V_1, $V_2, $V_3, $V_4, $V_5, $V_6, $V_7, $V_8, $V_9, $V_10, $V_11, $V_12, $V_13, $V_14, $V_15, $V_16, $V_17, $V_18, $V_19, $V_20]
ReDim $AV_ARRAY[@NumParams]
Return $AV_ARRAY
EndFunc
Func _ARRAYDELETE(ByRef $AVARRAY, $IELEMENT)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
Local $IUBOUND = UBound($AVARRAY, 1) - 1
If Not $IUBOUND Then
$AVARRAY = ""
Return 0
EndIf
If $IELEMENT < 0 Then $IELEMENT = 0
If $IELEMENT > $IUBOUND Then $IELEMENT = $IUBOUND
Switch UBound($AVARRAY, 0)
Case 1
For $I = $IELEMENT To $IUBOUND - 1
$AVARRAY[$I] = $AVARRAY[$I + 1]
Next
ReDim $AVARRAY[$IUBOUND]
Case 2
Local $ISUBMAX = UBound($AVARRAY, 2) - 1
For $I = $IELEMENT To $IUBOUND - 1
For $J = 0 To $ISUBMAX
$AVARRAY[$I][$J] = $AVARRAY[$I + 1][$J]
Next
Next
ReDim $AVARRAY[$IUBOUND][$ISUBMAX + 1]
Case Else
Return SetError(3, 0, 0)
EndSwitch
Return $IUBOUND
EndFunc
Func _ARRAYDISPLAY(Const ByRef $AVARRAY, $STITLE = "Array: ListView Display", $IITEMLIMIT = -1, $ITRANSPOSE = 0, $SSEPARATOR = "", $SREPLACE = "|")
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
Local $IDIMENSION = UBound($AVARRAY, 0), $IUBOUND = UBound($AVARRAY, 1) - 1, $ISUBMAX = UBound($AVARRAY, 2) - 1
If $IDIMENSION > 2 Then Return SetError(2, 0, 0)
If $SSEPARATOR = "" Then $SSEPARATOR = Chr(124)
Local $I, $J, $VTMP, $AITEM, $AVARRAYTEXT, $SHEADER = "Row", $IBUFFER = 64
Local $ICOLLIMIT = 250, $ILVIADDUDFTHRESHOLD = 4000, $IWIDTH = 640, $IHEIGHT = 480
Local $IONEVENTMODE = Opt("GUIOnEventMode", 0), $SDATASEPARATORCHAR = Opt("GUIDataSeparatorChar", $SSEPARATOR)
If $ISUBMAX < 0 Then $ISUBMAX = 0
If $ITRANSPOSE Then
$VTMP = $IUBOUND
$IUBOUND = $ISUBMAX
$ISUBMAX = $VTMP
EndIf
If $ISUBMAX > $ICOLLIMIT Then $ISUBMAX = $ICOLLIMIT
If $IITEMLIMIT = 1 Then $IITEMLIMIT = $ILVIADDUDFTHRESHOLD
If $IITEMLIMIT < 1 Then $IITEMLIMIT = $IUBOUND
If $IUBOUND > $IITEMLIMIT Then $IUBOUND = $IITEMLIMIT
If $ILVIADDUDFTHRESHOLD > $IUBOUND Then $ILVIADDUDFTHRESHOLD = $IUBOUND
For $I = 0 To $ISUBMAX
$SHEADER &= $SSEPARATOR & "Col " & $I
Next
Local $AVARRAYTEXT[$IUBOUND + 1]
For $I = 0 To $IUBOUND
$AVARRAYTEXT[$I] = "[" & $I & "]"
For $J = 0 To $ISUBMAX
If $IDIMENSION = 1 Then
If $ITRANSPOSE Then
$VTMP = $AVARRAY[$J]
Else
$VTMP = $AVARRAY[$I]
EndIf
Else
If $ITRANSPOSE Then
$VTMP = $AVARRAY[$J][$I]
Else
$VTMP = $AVARRAY[$I][$J]
EndIf
EndIf
$VTMP = StringReplace($VTMP, $SSEPARATOR, $SREPLACE, 0, 1)
$AVARRAYTEXT[$I] &= $SSEPARATOR & $VTMP
$VTMP = StringLen($VTMP)
If $VTMP > $IBUFFER Then $IBUFFER = $VTMP
Next
Next
$IBUFFER += 1
Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 102
Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 64
Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 512
Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 2
Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 4
Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
Local Const $_ARRAYCONSTANT_LVIF_PARAM = 4
Local Const $_ARRAYCONSTANT_LVIF_TEXT = 1
Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (4096 + 29)
Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (4096 + 4)
Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (4096 + 44)
Local Const $_ARRAYCONSTANT_LVM_INSERTITEMA = (4096 + 7)
Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (4096 + 54)
Local Const $_ARRAYCONSTANT_LVM_SETITEMA = (4096 + 6)
Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 32
Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 1
Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 8
Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 512
Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 65536
Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 131072
Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 262144
Local Const $_ARRAYCONSTANT_TAGLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"
Local $IADDMASK = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
Local $TBUFFER = DllStructCreate("char Text[" & $IBUFFER & "]"), $PBUFFER = DllStructGetPtr($TBUFFER)
Local $TITEM = DllStructCreate($_ARRAYCONSTANT_TAGLVITEM), $PITEM = DllStructGetPtr($TITEM)
DllStructSetData($TITEM, "Param", 0)
DllStructSetData($TITEM, "Text", $PBUFFER)
DllStructSetData($TITEM, "TextMax", $IBUFFER)
Local $HGUI = GUICreate($STITLE, $IWIDTH, $IHEIGHT, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
Local $AIGUISIZE = WinGetClientSize($HGUI)
Local $HLISTVIEW = GUICtrlCreateListView($SHEADER, 0, 0, $AIGUISIZE[0], $AIGUISIZE[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
Local $HCOPY = GUICtrlCreateButton("Copy Selected", 3, $AIGUISIZE[1] - 23, $AIGUISIZE[0] - 6, 20)
GUICtrlSetResizing($HLISTVIEW, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
GUICtrlSetResizing($HCOPY, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)
For $I = 0 To $ILVIADDUDFTHRESHOLD
GUICtrlCreateListViewItem($AVARRAYTEXT[$I], $HLISTVIEW)
Next
For $I = ($ILVIADDUDFTHRESHOLD + 1) To $IUBOUND
$AITEM = StringSplit($AVARRAYTEXT[$I], $SSEPARATOR)
DllStructSetData($TBUFFER, "Text", $AITEM[1])
DllStructSetData($TITEM, "Item", $I)
DllStructSetData($TITEM, "SubItem", 0)
DllStructSetData($TITEM, "Mask", $IADDMASK)
GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_INSERTITEMA, 0, $PITEM)
DllStructSetData($TITEM, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)
For $J = 2 To $AITEM[0]
DllStructSetData($TBUFFER, "Text", $AITEM[$J])
DllStructSetData($TITEM, "SubItem", $J - 1)
GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETITEMA, 0, $PITEM)
Next
Next
$IWIDTH = 0
For $I = 0 To $ISUBMAX + 1
$IWIDTH += GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $I, 0)
Next
If $IWIDTH < 250 Then $IWIDTH = 230
WinMove($HGUI, "", Default, Default, $IWIDTH + 20)
GUISetState(@SW_SHOW, $HGUI)
While 1
Switch GUIGetMsg()
Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
ExitLoop
Case $HCOPY
Local $SCLIP = ""
Local $AICURITEMS[1] = [0]
For $I = 0 To GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
If GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $I, 2) Then
$AICURITEMS[0] += 1
ReDim $AICURITEMS[$AICURITEMS[0] + 1]
$AICURITEMS[$AICURITEMS[0]] = $I
EndIf
Next
If Not $AICURITEMS[0] Then
For $SITEM In $AVARRAYTEXT
$SCLIP &= $SITEM & @CRLF
Next
Else
For $I = 1 To UBound($AICURITEMS) - 1
$SCLIP &= $AVARRAYTEXT[$AICURITEMS[$I]] & @CRLF
Next
EndIf
ClipPut($SCLIP)
EndSwitch
WEnd
GUIDelete($HGUI)
Opt("GUIOnEventMode", $IONEVENTMODE)
Opt("GUIDataSeparatorChar", $SDATASEPARATORCHAR)
Return 1
EndFunc
Func _ARRAYFINDALL(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $ISUBITEM = 0)
$ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)
If @error Then Return SetError(@error, 0, -1)
Local $IINDEX = 0, $AVRESULT[UBound($AVARRAY)]
Do
$AVRESULT[$IINDEX] = $ISTART
$IINDEX += 1
$ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART + 1, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)
Until @error
ReDim $AVRESULT[$IINDEX]
Return $AVRESULT
EndFunc
Func _ARRAYINSERT(ByRef $AVARRAY, $IELEMENT, $VVALUE = "")
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
Local $IUBOUND = UBound($AVARRAY) + 1
ReDim $AVARRAY[$IUBOUND]
For $I = $IUBOUND - 1 To $IELEMENT + 1 Step -1
$AVARRAY[$I] = $AVARRAY[$I - 1]
Next
$AVARRAY[$IELEMENT] = $VVALUE
Return $IUBOUND
EndFunc
Func _ARRAYMAX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
Local $IRESULT = _ARRAYMAXINDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)
If @error Then Return SetError(@error, 0, "")
Return $AVARRAY[$IRESULT]
EndFunc
Func _ARRAYMAXINDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
If Not IsArray($AVARRAY) Or UBound($AVARRAY, 0) <> 1 Then Return SetError(1, 0, -1)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)
Local $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(2, 0, -1)
Local $IMAXINDEX = $ISTART
If $ICOMPNUMERIC Then
For $I = $ISTART To $IEND
If Number($AVARRAY[$IMAXINDEX]) < Number($AVARRAY[$I]) Then $IMAXINDEX = $I
Next
Else
For $I = $ISTART To $IEND
If $AVARRAY[$IMAXINDEX] < $AVARRAY[$I] Then $IMAXINDEX = $I
Next
EndIf
Return $IMAXINDEX
EndFunc
Func _ARRAYMIN(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
Local $IRESULT = _ARRAYMININDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)
If @error Then Return SetError(@error, 0, "")
Return $AVARRAY[$IRESULT]
EndFunc
Func _ARRAYMININDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)
Local $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(2, 0, -1)
Local $IMININDEX = $ISTART
If $ICOMPNUMERIC Then
For $I = $ISTART To $IEND
If Number($AVARRAY[$IMININDEX]) > Number($AVARRAY[$I]) Then $IMININDEX = $I
Next
Else
For $I = $ISTART To $IEND
If $AVARRAY[$IMININDEX] > $AVARRAY[$I] Then $IMININDEX = $I
Next
EndIf
Return $IMININDEX
EndFunc
Func _ARRAYPERMUTE(ByRef $AVARRAY, $SDELIM = "")
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
Local $I, $ISIZE = UBound($AVARRAY), $IFACTORIAL = 1, $AIDX[$ISIZE], $ARESULT[1], $ICOUNT = 1
For $I = 0 To $ISIZE - 1
$AIDX[$I] = $I
Next
For $I = $ISIZE To 1 Step -1
$IFACTORIAL *= $I
Next
ReDim $ARESULT[$IFACTORIAL + 1]
$ARESULT[0] = $IFACTORIAL
_ARRAY_EXETERINTERNAL($AVARRAY, 0, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)
Return $ARESULT
EndFunc
Func _ARRAYPOP(ByRef $AVARRAY)
IF (Not IsArray($AVARRAY)) Then Return SetError(1, 0, "")
If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, "")
Local $IUBOUND = UBound($AVARRAY) - 1, $SLASTVAL = $AVARRAY[$IUBOUND]
If Not $IUBOUND Then
$AVARRAY = ""
Else
ReDim $AVARRAY[$IUBOUND]
EndIf
Return $SLASTVAL
EndFunc
Func _ARRAYPUSH(ByRef $AVARRAY, $VVALUE, $IDIRECTION = 0)
IF (Not IsArray($AVARRAY)) Then Return SetError(1, 0, 0)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)
Local $IUBOUND = UBound($AVARRAY) - 1
If IsArray($VVALUE) Then
Local $IUBOUNDS = UBound($VVALUE)
IF ($IUBOUNDS - 1) > $IUBOUND Then Return SetError(2, 0, 0)
If $IDIRECTION Then
For $I = $IUBOUND To $IUBOUNDS Step -1
$AVARRAY[$I] = $AVARRAY[$I - $IUBOUNDS]
Next
For $I = 0 To $IUBOUNDS - 1
$AVARRAY[$I] = $VVALUE[$I]
Next
Else
For $I = 0 To $IUBOUND - $IUBOUNDS
$AVARRAY[$I] = $AVARRAY[$I + $IUBOUNDS]
Next
For $I = 0 To $IUBOUNDS - 1
$AVARRAY[$I + $IUBOUND - $IUBOUNDS + 1] = $VVALUE[$I]
Next
EndIf
Else
If $IDIRECTION Then
For $I = $IUBOUND To 1 Step -1
$AVARRAY[$I] = $AVARRAY[$I - 1]
Next
$AVARRAY[0] = $VVALUE
Else
For $I = 0 To $IUBOUND - 1
$AVARRAY[$I] = $AVARRAY[$I + 1]
Next
$AVARRAY[$IUBOUND] = $VVALUE
EndIf
EndIf
Return 1
EndFunc
Func _ARRAYREVERSE(ByRef $AVARRAY, $ISTART = 0, $IEND = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)
Local $VTMP, $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(2, 0, 0)
For $I = $ISTART To Int(($ISTART + $IEND - 1) / 2)
$VTMP = $AVARRAY[$I]
$AVARRAY[$I] = $AVARRAY[$IEND]
$AVARRAY[$IEND] = $VTMP
$IEND -= 1
Next
Return 1
EndFunc
Func _ARRAYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $IFORWARD = 1, $ISUBITEM = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
If UBound($AVARRAY, 0) > 2 Or UBound($AVARRAY, 0) < 1 Then Return SetError(2, 0, 0)
Local $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(4, 0, -1)
Local $ISTEP = 1
If Not $IFORWARD Then
Local $ITMP = $ISTART
$ISTART = $IEND
$IEND = $ITMP
$ISTEP = -1
EndIf
Switch UBound($AVARRAY, 0)
Case 1
If Not $IPARTIAL Then
If Not $ICASE Then
For $I = $ISTART To $IEND Step $ISTEP
If $AVARRAY[$I] = $VVALUE Then Return $I
Next
Else
For $I = $ISTART To $IEND Step $ISTEP
If $AVARRAY[$I] == $VVALUE Then Return $I
Next
EndIf
Else
For $I = $ISTART To $IEND Step $ISTEP
If StringInStr($AVARRAY[$I], $VVALUE, $ICASE) > 0 Then Return $I
Next
EndIf
Case 2
Local $IUBOUNDSUB = UBound($AVARRAY, 2) - 1
If $ISUBITEM < 0 Then $ISUBITEM = 0
If $ISUBITEM > $IUBOUNDSUB Then $ISUBITEM = $IUBOUNDSUB
If Not $IPARTIAL Then
If Not $ICASE Then
For $I = $ISTART To $IEND Step $ISTEP
If $AVARRAY[$I][$ISUBITEM] = $VVALUE Then Return $I
Next
Else
For $I = $ISTART To $IEND Step $ISTEP
If $AVARRAY[$I][$ISUBITEM] == $VVALUE Then Return $I
Next
EndIf
Else
For $I = $ISTART To $IEND Step $ISTEP
If StringInStr($AVARRAY[$I][$ISUBITEM], $VVALUE, $ICASE) > 0 Then Return $I
Next
EndIf
Case Else
Return SetError(7, 0, -1)
EndSwitch
Return SetError(6, 0, -1)
EndFunc
Func _ARRAYSORT(ByRef $AVARRAY, $IDESCENDING = 0, $ISTART = 0, $IEND = 0, $ISUBITEM = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
Local $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(2, 0, 0)
Switch UBound($AVARRAY, 0)
Case 1
__ARRAYQUICKSORT1D($AVARRAY, $ISTART, $IEND)
If $IDESCENDING Then _ARRAYREVERSE($AVARRAY, $ISTART, $IEND)
Case 2
Local $ISUBMAX = UBound($AVARRAY, 2) - 1
If $ISUBITEM > $ISUBMAX Then Return SetError(3, 0, 0)
If $IDESCENDING Then
$IDESCENDING = -1
Else
$IDESCENDING = 1
EndIf
__ARRAYQUICKSORT2D($AVARRAY, $IDESCENDING, $ISTART, $IEND, $ISUBITEM, $ISUBMAX)
Case Else
Return SetError(4, 0, 0)
EndSwitch
Return 1
EndFunc
Func __ARRAYQUICKSORT1D(ByRef $AVARRAY, ByRef $ISTART, ByRef $IEND)
If $IEND <= $ISTART Then Return
Local $VTMP
IF ($IEND - $ISTART) < 15 Then
Local $I, $J, $VCUR
For $I = $ISTART + 1 To $IEND
$VTMP = $AVARRAY[$I]
If IsNumber($VTMP) Then
For $J = $I - 1 To $ISTART Step -1
$VCUR = $AVARRAY[$J]
IF ($VTMP >= $VCUR And IsNumber($VCUR)) OR (Not IsNumber($VCUR) And StringCompare($VTMP, $VCUR) >= 0) Then ExitLoop
$AVARRAY[$J + 1] = $VCUR
Next
Else
For $J = $I - 1 To $ISTART Step -1
IF (StringCompare($VTMP, $AVARRAY[$J]) >= 0) Then ExitLoop
$AVARRAY[$J + 1] = $AVARRAY[$J]
Next
EndIf
$AVARRAY[$J + 1] = $VTMP
Next
Return
EndIf
Local $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[Int(($ISTART + $IEND) / 2)], $FNUM = IsNumber($VPIVOT)
Do
If $FNUM Then
WHILE ($AVARRAY[$L] < $VPIVOT And IsNumber($AVARRAY[$L])) OR (Not IsNumber($AVARRAY[$L]) And StringCompare($AVARRAY[$L], $VPIVOT) < 0)
$L += 1
WEnd
WHILE ($AVARRAY[$R] > $VPIVOT And IsNumber($AVARRAY[$R])) OR (Not IsNumber($AVARRAY[$R]) And StringCompare($AVARRAY[$R], $VPIVOT) > 0)
$R -= 1
WEnd
Else
WHILE (StringCompare($AVARRAY[$L], $VPIVOT) < 0)
$L += 1
WEnd
WHILE (StringCompare($AVARRAY[$R], $VPIVOT) > 0)
$R -= 1
WEnd
EndIf
If $L <= $R Then
$VTMP = $AVARRAY[$L]
$AVARRAY[$L] = $AVARRAY[$R]
$AVARRAY[$R] = $VTMP
$L += 1
$R -= 1
EndIf
Until $L > $R
__ARRAYQUICKSORT1D($AVARRAY, $ISTART, $R)
__ARRAYQUICKSORT1D($AVARRAY, $L, $IEND)
EndFunc
Func __ARRAYQUICKSORT2D(ByRef $AVARRAY, ByRef $ISTEP, ByRef $ISTART, ByRef $IEND, ByRef $ISUBITEM, ByRef $ISUBMAX)
If $IEND <= $ISTART Then Return
Local $I, $VTMP, $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[Int(($ISTART + $IEND) / 2)][$ISUBITEM], $FNUM = IsNumber($VPIVOT)
Do
If $FNUM Then
WHILE ($ISTEP * ($AVARRAY[$L][$ISUBITEM] - $VPIVOT) < 0 And IsNumber($AVARRAY[$L][$ISUBITEM])) OR (Not IsNumber($AVARRAY[$L][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)
$L += 1
WEnd
WHILE ($ISTEP * ($AVARRAY[$R][$ISUBITEM] - $VPIVOT) > 0 And IsNumber($AVARRAY[$R][$ISUBITEM])) OR (Not IsNumber($AVARRAY[$R][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)
$R -= 1
WEnd
Else
WHILE ($ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)
$L += 1
WEnd
WHILE ($ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)
$R -= 1
WEnd
EndIf
If $L <= $R Then
For $I = 0 To $ISUBMAX
$VTMP = $AVARRAY[$L][$I]
$AVARRAY[$L][$I] = $AVARRAY[$R][$I]
$AVARRAY[$R][$I] = $VTMP
Next
$L += 1
$R -= 1
EndIf
Until $L > $R
__ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $ISTART, $R, $ISUBITEM, $ISUBMAX)
__ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $L, $IEND, $ISUBITEM, $ISUBMAX)
EndFunc
Func _ARRAYSWAP(ByRef $VITEM1, ByRef $VITEM2)
Local $VTMP = $VITEM1
$VITEM1 = $VITEM2
$VITEM2 = $VTMP
EndFunc
Func _ARRAYTOCLIP(Const ByRef $AVARRAY, $ISTART = 0, $IEND = 0)
Local $SRESULT = _ARRAYTOSTRING($AVARRAY, @CR, $ISTART, $IEND)
If @error Then Return SetError(@error, 0, 0)
Return ClipPut($SRESULT)
EndFunc
Func _ARRAYTOSTRING(Const ByRef $AVARRAY, $SDELIM = "|", $ISTART = 0, $IEND = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, "")
If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, "")
Local $SRESULT, $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(2, 0, "")
For $I = $ISTART To $IEND
$SRESULT &= $AVARRAY[$I] & $SDELIM
Next
Return StringTrimRight($SRESULT, StringLen($SDELIM))
EndFunc
Func _ARRAYTRIM(ByRef $AVARRAY, $ITRIMNUM, $IDIRECTION = 0, $ISTART = 0, $IEND = 0)
If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
Local $IUBOUND = UBound($AVARRAY) - 1
If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
If $ISTART < 0 Then $ISTART = 0
If $ISTART > $IEND Then Return SetError(5, 0, 0)
If $IDIRECTION Then
For $I = $ISTART To $IEND
$AVARRAY[$I] = StringTrimRight($AVARRAY[$I], $ITRIMNUM)
Next
Else
For $I = $ISTART To $IEND
$AVARRAY[$I] = StringTrimLeft($AVARRAY[$I], $ITRIMNUM)
Next
EndIf
Return 1
EndFunc
Func _ARRAYUNIQUE($AARRAY, $IDIMENSION = 1, $IBASE = 0, $ICASE = 0, $VDELIM = "|")
Local $IUBOUNDDIM
If $VDELIM = "|" Then $VDELIM = Chr(1)
If Not IsArray($AARRAY) Then Return SetError(1, 0, 0)
If Not $IDIMENSION > 0 Then
Return SetError(3, 0, 0)
Else
$IUBOUNDDIM = UBound($AARRAY, 1)
If @error Then Return SetError(3, 0, 0)
If $IDIMENSION > 1 Then
Local $AARRAYTMP[1]
For $I = 0 To $IUBOUNDDIM - 1
_ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])
Next
_ARRAYDELETE($AARRAYTMP, 0)
Else
If UBound($AARRAY, 0) = 1 Then
Dim $AARRAYTMP[1]
For $I = 0 To $IUBOUNDDIM - 1
_ARRAYADD($AARRAYTMP, $AARRAY[$I])
Next
_ARRAYDELETE($AARRAYTMP, 0)
Else
Dim $AARRAYTMP[1]
For $I = 0 To $IUBOUNDDIM - 1
_ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])
Next
_ARRAYDELETE($AARRAYTMP, 0)
EndIf
EndIf
EndIf
Local $SHOLD
For $ICC = $IBASE To UBound($AARRAYTMP) - 1
If Not StringInStr($VDELIM & $SHOLD, $VDELIM & $AARRAYTMP[$ICC] & $VDELIM, $ICASE) Then $SHOLD &= $AARRAYTMP[$ICC] & $VDELIM
Next
If $SHOLD Then
$AARRAYTMP = StringSplit(StringTrimRight($SHOLD, StringLen($VDELIM)), $VDELIM, 1)
Return $AARRAYTMP
EndIf
Return SetError(2, 0, 0)
EndFunc
Func _ARRAY_EXETERINTERNAL(ByRef $AVARRAY, $ISTART, $ISIZE, $SDELIM, ByRef $AIDX, ByRef $ARESULT, ByRef $ICOUNT)
Local $I, $ITEMP
If $ISTART == $ISIZE - 1 Then
For $I = 0 To $ISIZE - 1
$ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM
Next
If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)
$ICOUNT += 1
Else
For $I = $ISTART To $ISIZE - 1
$ITEMP = $AIDX[$I]
$AIDX[$I] = $AIDX[$ISTART]
$AIDX[$ISTART] = $ITEMP
_ARRAY_EXETERINTERNAL($AVARRAY, $ISTART + 1, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)
$AIDX[$ISTART] = $AIDX[$I]
$AIDX[$I] = $ITEMP
Next
EndIf
EndFunc
Func _ARRAY_COMBINATIONS($IN, $IR)
Local $I, $INFACT = 1, $IRFACT = 1, $INRFACT = 1
For $I = $IN To 2 Step -1
$INFACT *= $I
Next
For $I = $IR To 2 Step -1
$IRFACT *= $I
Next
For $I = $IN - $IR To 2 Step -1
$INRFACT *= $I
Next
Return $INFACT / ($IRFACT * $INRFACT)
EndFunc
Func _ARRAY_GETNEXT($IN, $IR, ByRef $ILEFT, $ITOTAL, ByRef $AIDX)
Local $I, $J
If $ILEFT == $ITOTAL Then
$ILEFT -= 1
Return
EndIf
$I = $IR - 1
While $AIDX[$I] == $IN - $IR + $I
$I -= 1
WEnd
$AIDX[$I] += 1
For $J = $I + 1 To $IR - 1
$AIDX[$J] = $AIDX[$I] + $J - $I
Next
$ILEFT -= 1
EndFunc
Func _FILECOUNTLINES($SFILEPATH)
Local $HFILE, $SFILECONTENT, $ATMP
$HFILE = FileOpen($SFILEPATH, 0)
If $HFILE = -1 Then Return SetError(1, 0, 0)
$SFILECONTENT = StringStripWS(FileRead($HFILE), 2)
FileClose($HFILE)
If StringInStr($SFILECONTENT, @LF) Then
$ATMP = StringSplit(StringStripCR($SFILECONTENT), @LF)
ElseIf StringInStr($SFILECONTENT, @CR) Then
$ATMP = StringSplit($SFILECONTENT, @CR)
Else
If StringLen($SFILECONTENT) Then
Return 1
Else
Return SetError(2, 0, 0)
EndIf
EndIf
Return $ATMP[0]
EndFunc
Func _FILECREATE($SFILEPATH)
Local $HOPENFILE
Local $HWRITEFILE
$HOPENFILE = FileOpen($SFILEPATH, 2)
If $HOPENFILE = -1 Then
SetError(1)
Return 0
EndIf
$HWRITEFILE = FileWrite($HOPENFILE, "")
If $HWRITEFILE = -1 Then
SetError(2)
Return 0
EndIf
FileClose($HOPENFILE)
Return 1
EndFunc
Func _FILELISTTOARRAY($SPATH, $SFILTER = "*", $IFLAG = 0)
Local $HSEARCH, $SFILE, $ASFILELIST[1]
If Not FileExists($SPATH) Then Return SetError(1, 1, "")
IF (StringInStr($SFILTER, "\")) OR (StringInStr($SFILTER, "/")) OR (StringInStr($SFILTER, ":")) OR (StringInStr($SFILTER, ">")) OR (StringInStr($SFILTER, "<")) OR (StringInStr($SFILTER, "|")) OR (StringStripWS($SFILTER, 8) = "") Then Return SetError(2, 2, "")
If NOT ($IFLAG = 0 Or $IFLAG = 1 Or $IFLAG = 2) Then Return SetError(3, 3, "")
IF (StringMid($SPATH, StringLen($SPATH), 1) = "\") Then $SPATH = StringTrimRight($SPATH, 1)
$HSEARCH = FileFindFirstFile($SPATH & "\" & $SFILTER)
If $HSEARCH = -1 Then Return SetError(4, 4, "")
While 1
$SFILE = FileFindNextFile($HSEARCH)
If @error Then
SetError(0)
ExitLoop
EndIf
If $IFLAG = 1 And StringInStr(FileGetAttrib($SPATH & "\" & $SFILE), "D") <> 0 Then ContinueLoop
If $IFLAG = 2 And StringInStr(FileGetAttrib($SPATH & "\" & $SFILE), "D") = 0 Then ContinueLoop
$ASFILELIST[0] += 1
If UBound($ASFILELIST) <= $ASFILELIST[0] Then ReDim $ASFILELIST[UBound($ASFILELIST) * 2]
$ASFILELIST[$ASFILELIST[0]] = $SFILE
WEnd
FileClose($HSEARCH)
ReDim $ASFILELIST[$ASFILELIST[0] + 1]
Return $ASFILELIST
EndFunc
Func _FILEPRINT($S_FILE, $I_SHOW = @SW_HIDE)
Local $A_RET = DllCall("shell32.dll", "long", "ShellExecute", "hwnd", 0, "string", "print", "string", $S_FILE, "string", "", "string", "", "int", $I_SHOW)
If $A_RET[0] > 32 And Not @error Then
Return 1
Else
SetError($A_RET[0])
Return 0
EndIf
EndFunc
Func _FILEREADTOARRAY($SFILEPATH, ByRef $AARRAY)
Local $HFILE, $AFILE
$HFILE = FileOpen($SFILEPATH, 0)
If $HFILE = -1 Then Return SetError(1, 0, 0)
$AFILE = FileRead($HFILE, FileGetSize($SFILEPATH))
$AFILE = StringStripWS($AFILE, 2)
FileClose($HFILE)
If StringInStr($AFILE, @LF) Then
$AARRAY = StringSplit(StringStripCR($AFILE), @LF)
ElseIf StringInStr($AFILE, @CR) Then
$AARRAY = StringSplit($AFILE, @CR)
Else
If StringLen($AFILE) Then
Dim $AARRAY[2] = [1, $AFILE]
Else
Return SetError(2, 0, 0)
EndIf
EndIf
Return 1
EndFunc
Func _FILEWRITEFROMARRAY($FILE, $A_ARRAY, $I_BASE = 0, $I_UBOUND = 0)
If Not IsArray($A_ARRAY) Then Return SetError(2, 0, 0)
Local $LAST = UBound($A_ARRAY) - 1
If $I_UBOUND < 1 Or $I_UBOUND > $LAST Then $I_UBOUND = $LAST
If $I_BASE < 0 Or $I_BASE > $LAST Then $I_BASE = 0
Local $HFILE
If IsString($FILE) Then
$HFILE = FileOpen($FILE, 2)
Else
$HFILE = $FILE
EndIf
If $HFILE = -1 Then Return SetError(1, 0, 0)
Local $ERRORSAV = 0
For $X = $I_BASE To $I_UBOUND
If FileWrite($HFILE, $A_ARRAY[$X] & @CRLF) = 0 Then
$ERRORSAV = 3
ExitLoop
EndIf
Next
If IsString($FILE) Then FileClose($HFILE)
If $ERRORSAV Then
Return SetError($ERRORSAV, 0, 0)
Else
Return 1
EndIf
EndFunc
Func _FILEWRITELOG($SLOGPATH, $SLOGMSG, $IFLAG = -1)
Local $SDATENOW, $STIMENOW, $SMSG, $IWRITEFILE, $HOPENFILE, $IOPENMODE = 1
$SDATENOW = @YEAR & "-" & @MON & "-" & @MDAY
$STIMENOW = @HOUR & ":" & @MIN & ":" & @SEC
$SMSG = $SDATENOW & " " & $STIMENOW & " : " & $SLOGMSG
If $IFLAG <> -1 Then
$SMSG &= @CRLF & FileRead($SLOGPATH)
$IOPENMODE = 2
EndIf
$HOPENFILE = FileOpen($SLOGPATH, $IOPENMODE)
If $HOPENFILE = -1 Then Return SetError(1, 0, 0)
$IWRITEFILE = FileWriteLine($HOPENFILE, $SMSG)
If $IWRITEFILE = -1 Then Return SetError(2, 0, 0)
Return FileClose($HOPENFILE)
EndFunc
Func _FILEWRITETOLINE($SFILE, $ILINE, $STEXT, $FOVERWRITE = 0)
If $ILINE <= 0 Then Return SetError(4, 0, 0)
If Not IsString($STEXT) Then Return SetError(6, 0, 0)
If $FOVERWRITE <> 0 And $FOVERWRITE <> 1 Then Return SetError(5, 0, 0)
If Not FileExists($SFILE) Then Return SetError(2, 0, 0)
Local $FILTXT = FileRead($SFILE, FileGetSize($SFILE))
$FILTXT = StringSplit($FILTXT, @CRLF, 1)
If UBound($FILTXT, 1) < $ILINE Then Return SetError(1, 0, 0)
Local $FIL = FileOpen($SFILE, 2)
If $FIL = -1 Then Return SetError(3, 0, 0)
For $I = 1 To UBound($FILTXT) - 1
If $I = $ILINE Then
If $FOVERWRITE = 1 Then
If $STEXT <> "" Then
FileWrite($FIL, $STEXT & @CRLF)
Else
FileWrite($FIL, $STEXT)
EndIf
EndIf
If $FOVERWRITE = 0 Then
FileWrite($FIL, $STEXT & @CRLF)
FileWrite($FIL, $FILTXT[$I] & @CRLF)
EndIf
ElseIf $I < UBound($FILTXT, 1) - 1 Then
FileWrite($FIL, $FILTXT[$I] & @CRLF)
ElseIf $I = UBound($FILTXT, 1) - 1 Then
FileWrite($FIL, $FILTXT[$I])
EndIf
Next
FileClose($FIL)
Return 1
EndFunc
Func _PATHFULL($SRELATIVEPATH, $SBASEPATH = @WorkingDir)
If Not $SRELATIVEPATH Or $SRELATIVEPATH = "." Then Return $SBASEPATH
Local $SFULLPATH = StringReplace($SRELATIVEPATH, "/", "\")
Local Const $SFULLPATHCONST = $SFULLPATH
Local $SPATH
Local $BROOTONLY = StringLeft($SFULLPATH, 1) = "\" And StringMid($SFULLPATH, 2, 1) <> "\"
For $I = 1 To 2
$SPATH = StringLeft($SFULLPATH, 2)
If $SPATH = "\\" Then
$SFULLPATH = StringTrimLeft($SFULLPATH, 2)
$SPATH &= StringLeft($SFULLPATH, StringInStr($SFULLPATH, "\") - 1)
ExitLoop
ElseIf StringRight($SPATH, 1) = ":" Then
$SFULLPATH = StringTrimLeft($SFULLPATH, 2)
ExitLoop
Else
$SFULLPATH = $SBASEPATH & "\" & $SFULLPATH
EndIf
Next
If $I = 3 Then Return ""
Local $ATEMP = StringSplit($SFULLPATH, "\")
Local $APATHPARTS[$ATEMP[0]], $J = 0
For $I = 2 To $ATEMP[0]
If $ATEMP[$I] = ".." Then
If $J Then $J -= 1
ElseIf NOT ($ATEMP[$I] = "" And $I <> $ATEMP[0]) And $ATEMP[$I] <> "." Then
$APATHPARTS[$J] = $ATEMP[$I]
$J += 1
EndIf
Next
$SFULLPATH = $SPATH
If Not $BROOTONLY Then
For $I = 0 To $J - 1
$SFULLPATH &= "\" & $APATHPARTS[$I]
Next
Else
$SFULLPATH &= $SFULLPATHCONST
If StringInStr($SFULLPATH, "..") Then $SFULLPATH = _PATHFULL($SFULLPATH)
EndIf
While StringInStr($SFULLPATH, ".\")
$SFULLPATH = StringReplace($SFULLPATH, ".\", "\")
WEnd
Return $SFULLPATH
EndFunc
Func _PATHGETRELATIVE($SFROM, $STO)
Local $ASFROM, $ASTO, $IDIFF, $SRELPATH, $I
If StringRight($SFROM, 1) <> "\" Then $SFROM &= "\"
If StringRight($STO, 1) <> "\" Then $STO &= "\"
If $SFROM = $STO Then Return SetError(1, 0, StringTrimRight($STO, 1))
$ASFROM = StringSplit($SFROM, "\")
$ASTO = StringSplit($STO, "\")
If $ASFROM[1] <> $ASTO[1] Then Return SetError(2, 0, StringTrimRight($STO, 1))
$I = 2
$IDIFF = 1
While 1
If $ASFROM[$I] <> $ASTO[$I] Then
$IDIFF = $I
ExitLoop
EndIf
$I += 1
WEnd
$I = 1
$SRELPATH = ""
For $J = 1 To $ASTO[0]
If $I >= $IDIFF Then
$SRELPATH &= "\" & $ASTO[$I]
EndIf
$I += 1
Next
$SRELPATH = StringTrimLeft($SRELPATH, 1)
$I = 1
For $J = 1 To $ASFROM[0]
If $I > $IDIFF Then
$SRELPATH = "..\" & $SRELPATH
EndIf
$I += 1
Next
If StringRight($SRELPATH, 1) == "\" Then $SRELPATH = StringTrimRight($SRELPATH, 1)
Return $SRELPATH
EndFunc
Func _PATHMAKE($SZDRIVE, $SZDIR, $SZFNAME, $SZEXT)
Local $SZFULLPATH
If StringLen($SZDRIVE) Then
If NOT (StringLeft($SZDRIVE, 2) = "\\") Then $SZDRIVE = StringLeft($SZDRIVE, 1) & ":"
EndIf
If StringLen($SZDIR) Then
If NOT (StringRight($SZDIR, 1) = "\") And NOT (StringRight($SZDIR, 1) = "/") Then $SZDIR = $SZDIR & "\"
EndIf
If StringLen($SZEXT) Then
If NOT (StringLeft($SZEXT, 1) = ".") Then $SZEXT = "." & $SZEXT
EndIf
$SZFULLPATH = $SZDRIVE & $SZDIR & $SZFNAME & $SZEXT
Return $SZFULLPATH
EndFunc
Func _PATHSPLIT($SZPATH, ByRef $SZDRIVE, ByRef $SZDIR, ByRef $SZFNAME, ByRef $SZEXT)
Local $DRIVE = ""
Local $DIR = ""
Local $FNAME = ""
Local $EXT = ""
Local $POS
Local $ARRAY[5]
$ARRAY[0] = $SZPATH
If StringMid($SZPATH, 2, 1) = ":" Then
$DRIVE = StringLeft($SZPATH, 2)
$SZPATH = StringTrimLeft($SZPATH, 2)
ElseIf StringLeft($SZPATH, 2) = "\\" Then
$SZPATH = StringTrimLeft($SZPATH, 2)
$POS = StringInStr($SZPATH, "\")
If $POS = 0 Then $POS = StringInStr($SZPATH, "/")
If $POS = 0 Then
$DRIVE = "\\" & $SZPATH
$SZPATH = ""
Else
$DRIVE = "\\" & StringLeft($SZPATH, $POS - 1)
$SZPATH = StringTrimLeft($SZPATH, $POS - 1)
EndIf
EndIf
Local $NPOSFORWARD = StringInStr($SZPATH, "/", 0, -1)
Local $NPOSBACKWARD = StringInStr($SZPATH, "\", 0, -1)
If $NPOSFORWARD >= $NPOSBACKWARD Then
$POS = $NPOSFORWARD
Else
$POS = $NPOSBACKWARD
EndIf
$DIR = StringLeft($SZPATH, $POS)
$FNAME = StringRight($SZPATH, StringLen($SZPATH) - $POS)
If StringLen($DIR) = 0 Then $FNAME = $SZPATH
$POS = StringInStr($FNAME, ".", 0, -1)
If $POS Then
$EXT = StringRight($FNAME, StringLen($FNAME) - ($POS - 1))
$FNAME = StringLeft($FNAME, $POS - 1)
EndIf
$SZDRIVE = $DRIVE
$SZDIR = $DIR
$SZFNAME = $FNAME
$SZEXT = $EXT
$ARRAY[1] = $DRIVE
$ARRAY[2] = $DIR
$ARRAY[3] = $FNAME
$ARRAY[4] = $EXT
Return $ARRAY
EndFunc
Func _REPLACESTRINGINFILE($SZFILENAME, $SZSEARCHSTRING, $SZREPLACESTRING, $FCASENESS = 0, $FOCCURANCE = 1)
Local $IRETVAL = 0
Local $HWRITEHANDLE, $AFILELINES, $NCOUNT, $SENDSWITH, $HFILE
If StringInStr(FileGetAttrib($SZFILENAME), "R") Then Return SetError(6, 0, -1)
$HFILE = FileOpen($SZFILENAME, 0)
If $HFILE = -1 Then Return SetError(1, 0, -1)
Local $S_TOTFILE = FileRead($HFILE, FileGetSize($SZFILENAME))
If StringRight($S_TOTFILE, 2) = @CRLF Then
$SENDSWITH = @CRLF
ElseIf StringRight($S_TOTFILE, 1) = @CR Then
$SENDSWITH = @CR
ElseIf StringRight($S_TOTFILE, 1) = @LF Then
$SENDSWITH = @LF
Else
$SENDSWITH = ""
EndIf
$AFILELINES = StringSplit(StringStripCR($S_TOTFILE), @LF)
FileClose($HFILE)
$HWRITEHANDLE = FileOpen($SZFILENAME, 2)
If $HWRITEHANDLE = -1 Then Return SetError(2, 0, -1)
For $NCOUNT = 1 To $AFILELINES[0]
If StringInStr($AFILELINES[$NCOUNT], $SZSEARCHSTRING, $FCASENESS) Then
$AFILELINES[$NCOUNT] = StringReplace($AFILELINES[$NCOUNT], $SZSEARCHSTRING, $SZREPLACESTRING, 1 - $FOCCURANCE, $FCASENESS)
$IRETVAL = $IRETVAL + 1
If $FOCCURANCE = 0 Then
$IRETVAL = 1
ExitLoop
EndIf
EndIf
Next
For $NCOUNT = 1 To $AFILELINES[0] - 1
If FileWriteLine($HWRITEHANDLE, $AFILELINES[$NCOUNT]) = 0 Then
SetError(3)
FileClose($HWRITEHANDLE)
Return -1
EndIf
Next
If $AFILELINES[$NCOUNT] <> "" Then FileWrite($HWRITEHANDLE, $AFILELINES[$NCOUNT] & $SENDSWITH)
FileClose($HWRITEHANDLE)
Return $IRETVAL
EndFunc
Func _TEMPFILE($S_DIRECTORYNAME = @TempDir, $S_FILEPREFIX = "~", $S_FILEEXTENSION = ".tmp", $I_RANDOMLENGTH = 7)
Local $S_TEMPNAME
If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @TempDir
If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @ScriptDir
If StringRight($S_DIRECTORYNAME, 1) <> "\" Then $S_DIRECTORYNAME = $S_DIRECTORYNAME & "\"
Do
$S_TEMPNAME = ""
While StringLen($S_TEMPNAME) < $I_RANDOMLENGTH
$S_TEMPNAME = $S_TEMPNAME & Chr(Random(97, 122, 1))
WEnd
$S_TEMPNAME = $S_DIRECTORYNAME & $S_FILEPREFIX & $S_TEMPNAME & $S_FILEEXTENSION
Until Not FileExists($S_TEMPNAME)
RETURN ($S_TEMPNAME)
EndFunc
#Region Header
#EndRegion Header
#Region Global Variables and Constants
Global Const $IEAU3VERSIONINFO[6] = ["V", 2, 4, 0, "20071231", "V2.4-0"]
Global Const $LSFW_LOCK = 1, $LSFW_UNLOCK = 2
Global $__IELOADWAITTIMEOUT = 300000
Global $__IEAU3DEBUG = False
Global $__IEAU3V1COMPATIBILITY
Global $__IEAU3DEBUG_USEOLDDLLCALL = False
Global $_IEERRORNOTIFY = True
Global $OIEERRORHANDLER, $SIEUSERERRORHANDLER
Global $IECOMERRORNUMBER, $IECOMERRORNUMBERHEX, $IECOMERRORDESCRIPTION, $IECOMERRORSCRIPTLINE, $IECOMERRORWINDESCRIPTION, $IECOMERRORSOURCE, $IECOMERRORHELPFILE, $IECOMERRORHELPCONTEXT, $IECOMERRORLASTDLLERROR, $IECOMERRORCOMOBJ, $IECOMERROROUTPUT
Global Enum $_IESTATUS_SUCCESS = 0, $_IESTATUS_GENERALERROR, $_IESTATUS_COMERROR, $_IESTATUS_INVALIDDATATYPE, $_IESTATUS_INVALIDOBJECTTYPE, $_IESTATUS_INVALIDVALUE, $_IESTATUS_LOADWAITTIMEOUT, $_IESTATUS_NOMATCH, $_IESTATUS_ACCESSISDENIED, $_IESTATUS_CLIENTDISCONNECTED
Global Enum Step *2$_IENOTIFYLEVEL_NONE = 0, $_IENOTIFYNOTIFYLEVEL_WARNING = 1, $_IENOTIFYNOTIFYLEVEL_ERROR, $_IENOTIFYNOTIFYLEVEL_COMERROR
Global Enum Step *2$_IENOTIFYMETHOD_SILENT = 0, $_IENOTIFYMETHOD_CONSOLE = 1, $_IENOTIFYMETHOD_TOOLTIP, $_IENOTIFYMETHOD_MSGBOX
#EndRegion Global Variables and Constants
#Region Core functions
Func _IECREATE($S_URL = "about:blank", $F_TRYATTACH = 0, $F_VISIBLE = 1, $F_WAIT = 1, $F_TAKEFOCUS = 1)
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", $I_INSTANCE = 1)
$S_MODE = StringLower($S_MODE)
Local $H_CONTROL, $ORESULT, $F_ISBROWSER, $S_TMP, $I_TMP
$I_INSTANCE = Int($I_INSTANCE)
If $I_INSTANCE < 1 Then
__IEERRORNOTIFY("Error", "_IEAttach", "$_IEStatus_InvalidValue", "$i_instance < 1")
SetError($_IESTATUS_INVALIDVALUE, 3)
Return 0
EndIf
If $S_MODE = "embedded" Or $S_MODE = "dialogbox" Then
Local $IWINTITLEMATCHMODE = Opt("WinTitleMatchMode")
Opt("WinTitleMatchMode", 2)
If $S_MODE = "dialogbox" And $I_INSTANCE > 1 Then
If IsHWnd($S_STRING) Then
$I_INSTANCE = 1
__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd and DialogBox. Setting to 1.")
Else
Local $A_WINLIST = WinList($S_STRING, "")
If $I_INSTANCE <= $A_WINLIST[0][0] Then
$S_STRING = $A_WINLIST[$I_INSTANCE][1]
$I_INSTANCE = 1
Else
__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_NoMatch")
SetError($_IESTATUS_NOMATCH, 1)
Return 0
EndIf
EndIf
EndIf
$H_CONTROL = ControlGetHandle($S_STRING, "", "[CLASS:Internet Explorer_Server; INSTANCE:" & $I_INSTANCE & "]")
$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
Local $O_SHELL = ObjCreate("Shell.Application")
Local $O_SHELLWINDOWS = $O_SHELL.Windows()
$I_TMP = 1
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
If $I_INSTANCE = $I_TMP Then
SetError($_IESTATUS_SUCCESS)
Return $O_WINDOW
Else
$I_TMP += 1
EndIf
EndIf
Case "instance"
If $I_INSTANCE = $I_TMP Then
SetError($_IESTATUS_SUCCESS)
Return $O_WINDOW
Else
$I_TMP += 1
EndIf
Case "windowtitle"
Local $F_FOUND = False
$S_TMP = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\", "Window Title")
If Not @error Then
If StringInStr($O_WINDOW.document.title & " - " & $S_TMP, $S_STRING) Then $F_FOUND = True
Else
If StringInStr($O_WINDOW.document.title & " - Microsoft Internet Explorer", $S_STRING) Then $F_FOUND = True
If StringInStr($O_WINDOW.document.title & " - Windows Internet Explorer", $S_STRING) Then $F_FOUND = True
EndIf
If $F_FOUND Then
If $I_INSTANCE = $I_TMP Then
SetError($_IESTATUS_SUCCESS)
Return $O_WINDOW
Else
$I_TMP += 1
EndIf
EndIf
Case "url"
If StringInStr($O_WINDOW.LocationURL, $S_STRING) > 0 Then
If $I_INSTANCE = $I_TMP Then
SetError($_IESTATUS_SUCCESS)
Return $O_WINDOW
Else
$I_TMP += 1
EndIf
EndIf
Case "text"
If StringInStr($O_WINDOW.document.body.innerText, $S_STRING) > 0 Then
If $I_INSTANCE = $I_TMP Then
SetError($_IESTATUS_SUCCESS)
Return $O_WINDOW
Else
$I_TMP += 1
EndIf
EndIf
Case "html"
If StringInStr($O_WINDOW.document.body.innerHTML, $S_STRING) > 0 Then
If $I_INSTANCE = $I_TMP Then
SetError($_IESTATUS_SUCCESS)
Return $O_WINDOW
Else
$I_TMP += 1
EndIf
EndIf
Case "hwnd"
If $I_INSTANCE > 1 Then
$I_INSTANCE = 1
__IEERRORNOTIFY("Warning", "_IEAttach", "$_IEStatus_GeneralError", "$i_instance > 1 invalid with HWnd. Setting to 1.")
EndIf
If _IEPROPERTYGET($O_WINDOW, "hwnd") = $S_STRING Then
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"
While NOT (String($O_OBJECT.readyState) = "complete" Or $O_OBJECT.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
While NOT (String($O_OBJECT.document.readyState) = "complete" Or $O_OBJECT.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
Case "DispHTMLWindow2"
While NOT (String($O_OBJECT.document.readyState) = "complete" Or $O_OBJECT.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
While NOT (String($O_OBJECT.top.document.readyState) = "complete" Or $O_OBJECT.top.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
Case "DispHTMLDocument"
$OTEMP = $O_OBJECT.parentWindow
While NOT (String($OTEMP.document.readyState) = "complete" Or $OTEMP.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
While NOT (String($OTEMP.top.document.readyState) = "complete" Or $OTEMP.top.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
Case Else
$OTEMP = $O_OBJECT.document.parentWindow
While NOT (String($OTEMP.document.readyState) = "complete" Or $OTEMP.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
While NOT (String($OTEMP.top.document.readyState) = "complete" Or $O_OBJECT.top.document.readyState = 4 Or $F_ABORT)
IF (TimerDiff($IELOADWAITTIMER) > $I_TIMEOUT) Then
$I_ERRORSTATUSCODE = $_IESTATUS_LOADWAITTIMEOUT
$F_ABORT = True
EndIf
If @error = $_IESTATUS_COMERROR And __IECOMERRORUNRECOVERABLE() Then
$I_ERRORSTATUSCODE = __IECOMERRORUNRECOVERABLE()
$F_ABORT = True
EndIf
Sleep(100)
WEnd
EndSwitch
_IEERRORNOTIFY($F_NOTIFYSTATUS)
__IEINTERNALERRORHANDLERDEREGISTER()
Switch $I_ERRORSTATUSCODE
Case $_IESTATUS_SUCCESS
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)
|
|
|
07/23/2010, 15:01
|
#2
|
elite*gold: 0
Join Date: May 2010
Posts: 36
Received Thanks: 6
|
PHP Code:
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)
If $O_OBJECT.value Then
Return $O_OBJECT.value
Else
Return ""
EndIf
EndFunc
Func _IEFORMELEMENTSETVALUE(ByRef $O_OBJECT, $S_NEWVALUE, $F_FIREEVENT = 1)
If Not IsObj($O_OBJECT) Then
__IEERRORNOTIFY("Error", "_IEFormElementSetValue", "$_IEStatus_InvalidDataType")
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", "Name: " & $S_ID & ", Index: " & $I_INDEX)
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", $S_ID)
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.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 $S_PROPERTY = "uniqueid"
If __IEISOBJTYPE($O_OBJECT, "window") Then
__IEERRORNOTIFY("Error", "_IEPropertyGet", "$_IEStatus_InvalidObjectType")
SetError($_IESTATUS_INVALIDOBJECTTYPE, 1)
Return 0
Else
SetError($_IESTATUS_SUCCESS)
Return $O_OBJECT.uniqueID
EndIf
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", "long", "ObjectFromLresult", "lresult", $LRESULT, "ptr", DllStructGetPtr($TYPUUID), "wparam", 0, "idispatch*", 0)
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
$ARET = DllCall("user32.dll", "long", "SendMessageTimeout", "hwnd", $HWND, "int", $MSG, $T1, $WPARAM, $T2, $LPARAM, "int", $NFLAGS, "int", $NTIMEOUT, "int*", "")
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
|
|
|
07/23/2010, 15:02
|
#3
|
elite*gold: 0
Join Date: May 2010
Posts: 36
Received Thanks: 6
|
erstmal sry wegen 3 post zuviele zeichen hat der script^^
PHP Code:
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 __IECOMERRORUNRECOVERABLE()
Select
CASE ($IECOMERRORNUMBER = -2147352567) OR (String($IECOMERRORDESCRIPTION) = "Access is denied.")
Return $_IESTATUS_ACCESSISDENIED
CASE ($IECOMERRORNUMBER = -2147417848) OR (String($IECOMERRORWINDESCRIPTION) = "The object invoked has disconnected from its clients.")
Return $_IESTATUS_CLIENTDISCONNECTED
Case Else
Return $_IESTATUS_SUCCESS
EndSelect
EndFunc
#EndRegion Internal functions
#Region ProtoType Functions
Func __IENAVIGATE(ByRef $O_OBJECT, $S_URL, $F_WAIT = 1, $I_FLAGS = 0, $S_TARGET = "", $S_POSTDATA = "", $S_HEADERS = "")
__IEERRORNOTIFY("Warning", "__IENavigate", "Unsupported function called. Not fully tested.")
If Not IsObj($O_OBJECT) Then
__IEERRORNOTIFY("Error", "__IENavigate", "$_IEStatus_InvalidDataType")
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 $O_OBJECT
EndIf
SetError($_IESTATUS_SUCCESS)
Return $O_OBJECT
EndFunc
Func __IESTRINGTOBSTR($S_STRING, $S_CHARSET = "us-ascii")
Local Const $ADTYPEBINARY = 1, $ADTYPETEXT = 2
Local $O_STREAM
$O_STREAM = ObjCreate("ADODB.Stream")
$O_STREAM.Type = $ADTYPETEXT
$O_STREAM.CharSet = $S_CHARSET
$O_STREAM.Open
$O_STREAM.WriteText($S_STRING)
$O_STREAM.Position = 0
$O_STREAM.Type = $ADTYPEBINARY
$O_STREAM.Position = 0
Return $O_STREAM.Read
EndFunc
Func __IEBSTRTOSTRING($O_BSTR, $S_CHARSET = "us-ascii")
Local Const $ADTYPEBINARY = 1, $ADTYPETEXT = 2
Local $O_STREAM
$O_STREAM = ObjCreate("ADODB.Stream")
$O_STREAM.Type = $ADTYPEBINARY
$O_STREAM.Open
$O_STREAM.Write($O_BSTR)
$O_STREAM.Position = 0
$O_STREAM.Type = $ADTYPETEXT
$O_STREAM.CharSet = $S_CHARSET
$O_STREAM.Position = 0
Return $O_STREAM.ReadText
EndFunc
Func __IECREATENEWIE($S_TITLE, $S_HEAD = "", $S_BODY = "")
Local $S_HTML, $H_FILE, $S_PID, $O_OBJECT
Local $S_TEMP = __IETEMPFILE("", "~IE~", ".htm")
If @error Then
SetError($_IESTATUS_GENERALERROR, 1)
__IEERRORNOTIFY("Error", "_IECreateHTA", "", "Error creating temporary file in @TempDir or @ScriptDir")
Return 0
EndIf
$S_HTML = ""
$S_HTML &= "<HTML>" & @CR
$S_HTML &= "<HEAD>" & @CR
$S_HTML &= "<TITLE>" & $S_TEMP & "</TITLE>" & @CR & $S_HEAD & @CR
$S_HTML &= "</HEAD>" & @CR
$S_HTML &= "<BODY>" & @CR & $S_BODY & @CR
$S_HTML &= "</BODY>" & @CR
$S_HTML &= "</HTML>"
$H_FILE = FileOpen($S_TEMP, 2)
FileWrite($H_FILE, $S_HTML)
FileClose($H_FILE)
If @error Then
SetError($_IESTATUS_GENERALERROR, 2)
__IEERRORNOTIFY("Error", "_IECreateNewIE", "", "Error creating temporary file in @TempDir or @ScriptDir")
Return 0
EndIf
Run(@ProgramFilesDir & "\Internet Explorer\iexplore.exe " & $S_TEMP)
If WinWait($S_TEMP, "", 60) Then
$S_PID = WinGetProcess($S_TEMP)
Else
SetError($_IESTATUS_GENERALERROR, 3)
__IEERRORNOTIFY("Error", "_IECreateNewIE", "", "Timeout waiting for new IE window creation")
Return 0
EndIf
If Not FileDelete($S_TEMP) Then
__IEERRORNOTIFY("Warning", "_IECreateNewIE", "", "Could not delete temporary file " & FileGetLongName($S_TEMP))
EndIf
$O_OBJECT = _IEATTACH($S_TEMP)
_IELOADWAIT($O_OBJECT)
_IEPROPERTYSET($O_OBJECT, "title", $S_TITLE)
SetError($_IESTATUS_SUCCESS, $S_PID)
Return $O_OBJECT
EndFunc
Func __IETEMPFILE($S_DIRECTORYNAME = @TempDir, $S_FILEPREFIX = "~", $S_FILEEXTENSION = ".tmp", $I_RANDOMLENGTH = 7)
Local $S_TEMPNAME, $I_TMP = 0
If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @TempDir
If Not FileExists($S_DIRECTORYNAME) Then $S_DIRECTORYNAME = @ScriptDir
If StringRight($S_DIRECTORYNAME, 1) <> "\" Then $S_DIRECTORYNAME = $S_DIRECTORYNAME & "\"
Do
$S_TEMPNAME = ""
While StringLen($S_TEMPNAME) < $I_RANDOMLENGTH
$S_TEMPNAME = $S_TEMPNAME & Chr(Random(97, 122, 1))
WEnd
$S_TEMPNAME = $S_DIRECTORYNAME & $S_FILEPREFIX & $S_TEMPNAME & $S_FILEEXTENSION
$I_TMP += 1
If $I_TMP > 200 Then
SetError($_IESTATUS_GENERALERROR, 1)
Return 0
EndIf
Until Not FileExists($S_TEMPNAME)
SetError(0)
RETURN ($S_TEMPNAME)
EndFunc
#EndRegion ProtoType Functions
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 _STRINGADDTHOUSANDSSEP($SSTRING, $STHOUSANDS = -1, $SDECIMAL = -1)
Local $SRESULT = ""
Local $RKEY = "HKCU\Control Panel\International"
If $SDECIMAL = -1 Then $SDECIMAL = RegRead($RKEY, "sDecimal")
If $STHOUSANDS = -1 Then $STHOUSANDS = RegRead($RKEY, "sThousand")
Local $ANUMBER = StringRegExp($SSTRING, "(\D?\d+)\D?(\d*)", 1)
If UBound($ANUMBER) = 2 Then
Local $SLEFT = $ANUMBER[0]
While StringLen($SLEFT)
$SRESULT = $STHOUSANDS & StringRight($SLEFT, 3) & $SRESULT
$SLEFT = StringTrimRight($SLEFT, 3)
WEnd
$SRESULT = StringTrimLeft($SRESULT, StringLen($STHOUSANDS))
If $ANUMBER[1] <> "" Then $SRESULT &= $SDECIMAL & $ANUMBER[1]
EndIf
Return $SRESULT
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 _STRINGEXPLODE($SSTRING, $SDELIMITER, $ILIMIT = 0)
If $ILIMIT > 0 Then
$SSTRING = StringReplace($SSTRING, $SDELIMITER, Chr(0), $ILIMIT)
$SDELIMITER = Chr(0)
ElseIf $ILIMIT < 0 Then
Local $IINDEX = StringInStr($SSTRING, $SDELIMITER, 0, $ILIMIT)
If $IINDEX Then
$SSTRING = StringLeft($SSTRING, $IINDEX - 1)
EndIf
EndIf
Return StringSplit($SSTRING, $SDELIMITER, 3)
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 StringRegExp($S_CURCHAR, "[a-zA-ZÀ-ÿšœžŸ]") Then
$S_CURCHAR = StringUpper($S_CURCHAR)
$CAPNEXT = 0
EndIf
Case Not StringRegExp($S_CURCHAR, "[a-zA-ZÀ-ÿšœžŸ]")
$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
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 $WS_EX_CONTROLPARENT = 65536
Global Const $WS_EX_LAYOUTRTL = 4194304
Global Const $WS_EX_RTLREADING = 8192
Global Const $WM_GETTEXTLENGTH = 14
Global Const $WM_GETTEXT = 13
Global Const $WM_SIZE = 5
Global Const $WM_SIZING = 532
Global Const $WM_USER = 1024
Global Const $WM_CREATE = 1
Global Const $WM_DESTROY = 2
Global Const $WM_MOVE = 3
Global Const $WM_ACTIVATE = 6
Global Const $WM_SETFOCUS = 7
Global Const $WM_KILLFOCUS = 8
Global Const $WM_ENABLE = 10
Global Const $WM_SETREDRAW = 11
Global Const $WM_SETTEXT = 12
Global Const $WM_PAINT = 15
Global Const $WM_CLOSE = 16
Global Const $WM_QUIT = 18
Global Const $WM_ERASEBKGND = 20
Global Const $WM_SYSCOLORCHANGE = 21
Global Const $WM_SHOWWINDOW = 24
Global Const $WM_WININICHANGE = 26
Global Const $WM_DEVMODECHANGE = 27
Global Const $WM_ACTIVATEAPP = 28
Global Const $WM_FONTCHANGE = 29
Global Const $WM_TIMECHANGE = 30
Global Const $WM_CANCELMODE = 31
Global Const $WM_SETCURSOR = 32
Global Const $WM_MOUSEACTIVATE = 33
Global Const $WM_CHILDACTIVATE = 34
Global Const $WM_QUEUESYNC = 35
Global Const $WM_GETMINMAXINFO = 36
Global Const $WM_PAINTICON = 38
Global Const $WM_ICONERASEBKGND = 39
Global Const $WM_NEXTDLGCTL = 40
Global Const $WM_SPOOLERSTATUS = 42
Global Const $WM_DRAWITEM = 43
Global Const $WM_MEASUREITEM = 44
Global Const $WM_DELETEITEM = 45
Global Const $WM_VKEYTOITEM = 46
Global Const $WM_CHARTOITEM = 47
Global Const $WM_SETFONT = 48
Global Const $WM_GETFONT = 49
Global Const $WM_SETHOTKEY = 50
Global Const $WM_GETHOTKEY = 51
Global Const $WM_QUERYDRAGICON = 55
Global Const $WM_COMPAREITEM = 57
Global Const $WM_GETOBJECT = 61
Global Const $WM_COMPACTING = 65
Global Const $WM_COMMNOTIFY = 68
Global Const $WM_WINDOWPOSCHANGING = 70
Global Const $WM_WINDOWPOSCHANGED = 71
Global Const $WM_POWER = 72
Global Const $WM_NOTIFY = 78
Global Const $WM_COPYDATA = 74
Global Const $WM_CANCELJOURNAL = 75
Global Const $WM_INPUTLANGCHANGEREQUEST = 80
Global Const $WM_INPUTLANGCHANGE = 81
Global Const $WM_TCARD = 82
Global Const $WM_HELP = 83
Global Const $WM_USERCHANGED = 84
Global Const $WM_NOTIFYFORMAT = 85
Global Const $WM_CUT = 768
Global Const $WM_COPY = 769
Global Const $WM_PASTE = 770
Global Const $WM_CLEAR = 771
Global Const $WM_UNDO = 772
Global Const $WM_CONTEXTMENU = 123
Global Const $WM_STYLECHANGING = 124
Global Const $WM_STYLECHANGED = 125
Global Const $WM_DISPLAYCHANGE = 126
Global Const $WM_GETICON = 127
Global Const $WM_SETICON = 128
Global Const $WM_NCCREATE = 129
Global Const $WM_NCDESTROY = 130
Global Const $WM_NCCALCSIZE = 131
Global Const $WM_NCHITTEST = 132
Global Const $WM_NCPAINT = 133
Global Const $WM_NCACTIVATE = 134
Global Const $WM_GETDLGCODE = 135
Global Const $WM_SYNCPAINT = 136
Global Const $WM_NCMOUSEMOVE = 160
Global Const $WM_NCLBUTTONDOWN = 161
Global Const $WM_NCLBUTTONUP = 162
Global Const $WM_NCLBUTTONDBLCLK = 163
Global Const $WM_NCRBUTTONDOWN = 164
Global Const $WM_NCRBUTTONUP = 165
Global Const $WM_NCRBUTTONDBLCLK = 166
Global Const $WM_NCMBUTTONDOWN = 167
Global Const $WM_NCMBUTTONUP = 168
Global Const $WM_NCMBUTTONDBLCLK = 169
Global Const $WM_KEYDOWN = 256
Global Const $WM_KEYUP = 257
Global Const $WM_CHAR = 258
Global Const $WM_DEADCHAR = 259
Global Const $WM_SYSKEYDOWN = 260
Global Const $WM_SYSKEYUP = 261
Global Const $WM_SYSCHAR = 262
Global Const $WM_SYSDEADCHAR = 263
Global Const $WM_INITDIALOG = 272
Global Const $WM_COMMAND = 273
Global Const $WM_SYSCOMMAND = 274
Global Const $WM_TIMER = 275
Global Const $WM_HSCROLL = 276
Global Const $WM_VSCROLL = 277
Global Const $WM_INITMENU = 278
Global Const $WM_INITMENUPOPUP = 279
Global Const $WM_MENUSELECT = 287
Global Const $WM_MENUCHAR = 288
Global Const $WM_ENTERIDLE = 289
Global Const $WM_MENURBUTTONUP = 290
Global Const $WM_MENUDRAG = 291
Global Const $WM_MENUGETOBJECT = 292
Global Const $WM_UNINITMENUPOPUP = 293
Global Const $WM_MENUCOMMAND = 294
Global Const $WM_CHANGEUISTATE = 295
Global Const $WM_UPDATEUISTATE = 296
Global Const $WM_QUERYUISTATE = 297
Global Const $WM_CTLCOLORMSGBOX = 306
Global Const $WM_CTLCOLOREDIT = 307
Global Const $WM_CTLCOLORLISTBOX = 308
Global Const $WM_CTLCOLORBTN = 309
Global Const $WM_CTLCOLORDLG = 310
Global Const $WM_CTLCOLORSCROLLBAR = 311
Global Const $WM_CTLCOLORSTATIC = 312
Global Const $WM_CTLCOLOR = 25
Global Const $MN_GETHMENU = 481
Global Const $NM_FIRST = 0
Global Const $NM_OUTOFMEMORY = $NM_FIRST - 1
Global Const $NM_CLICK = $NM_FIRST - 2
Global Const $NM_DBLCLK = $NM_FIRST - 3
Global Const $NM_RETURN = $NM_FIRST - 4
Global Const $NM_RCLICK = $NM_FIRST - 5
Global Const $NM_RDBLCLK = $NM_FIRST - 6
Global Const $NM_SETFOCUS = $NM_FIRST - 7
Global Const $NM_KILLFOCUS = $NM_FIRST - 8
Global Const $NM_CUSTOMDRAW = $NM_FIRST - 12
Global Const $NM_HOVER = $NM_FIRST - 13
Global Const $NM_NCHITTEST = $NM_FIRST - 14
Global Const $NM_KEYDOWN = $NM_FIRST - 15
Global Const $NM_RELEASEDCAPTURE = $NM_FIRST - 16
Global Const $NM_SETCURSOR = $NM_FIRST - 17
Global Const $NM_CHAR = $NM_FIRST - 18
Global Const $NM_TOOLTIPSCREATED = $NM_FIRST - 19
Global Const $NM_LDOWN = $NM_FIRST - 20
Global Const $NM_RDOWN = $NM_FIRST - 21
Global Const $NM_THEMECHANGED = $NM_FIRST - 22
Global Const $WM_LBUTTONUP = 514
Global Const $WM_MOUSEMOVE = 512
Global Const $PS_SOLID = 0
Global Const $PS_DASH = 1
Global Const $PS_DOT = 2
Global Const $PS_DASHDOT = 3
Global Const $PS_DASHDOTDOT = 4
Global Const $PS_NULL = 5
Global Const $PS_INSIDEFRAME = 6
Global Const $RGN_AND = 1
Global Const $RGN_OR = 2
Global Const $RGN_XOR = 3
Global Const $RGN_DIFF = 4
Global Const $RGN_COPY = 5
Global Const $ERROR = 0
Global Const $NULLREGION = 1
Global Const $SIMPLEREGION = 2
Global Const $COMPLEXREGION = 3
Global Const $TRANSPARENT = 1
Global Const $OPAQUE = 2
Global Const $CCM_FIRST = 8192
Global Const $CCM_GETUNICODEFORMAT = ($CCM_FIRST + 6)
Global Const $CCM_SETUNICODEFORMAT = ($CCM_FIRST + 5)
Global Const $CCM_SETBKCOLOR = $CCM_FIRST + 1
Global Const $CCM_SETCOLORSCHEME = $CCM_FIRST + 2
Global Const $CCM_GETCOLORSCHEME = $CCM_FIRST + 3
Global Const $CCM_GETDROPTARGET = $CCM_FIRST + 4
Global Const $CCM_SETWINDOWTHEME = $CCM_FIRST + 11
Global Const $GA_PARENT = 1
Global Const $GA_ROOT = 2
Global Const $GA_ROOTOWNER = 3
Global Const $SM_CXSCREEN = 0
Global Const $SM_CYSCREEN = 1
Global Const $SM_CXVSCROLL = 2
Global Const $SM_CYHSCROLL = 3
Global Const $SM_CYCAPTION = 4
Global Const $SM_CXBORDER = 5
Global Const $SM_CYBORDER = 6
Global Const $SM_CXDLGFRAME = 7
Global Const $SM_CYDLGFRAME = 8
Global Const $SM_CYVTHUMB = 9
Global Const $SM_CXHTHUMB = 10
Global Const $SM_CXICON = 11
Global Const $SM_CYICON = 12
Global Const $SM_CXCURSOR = 13
Global Const $SM_CYCURSOR = 14
Global Const $SM_CYMENU = 15
Global Const $SM_CXFULLSCREEN = 16
Global Const $SM_CYFULLSCREEN = 17
Global Const $SM_CYKANJIWINDOW = 18
Global Const $SM_MOUSEPRESENT = 19
Global Const $SM_CYVSCROLL = 20
Global Const $SM_CXHSCROLL = 21
Global Const $SM_DEBUG = 22
Global Const $SM_SWAPBUTTON = 23
Global Const $SM_RESERVED1 = 24
Global Const $SM_RESERVED2 = 25
Global Const $SM_RESERVED3 = 26
Global Const $SM_RESERVED4 = 27
Global Const $SM_CXMIN = 28
Global Const $SM_CYMIN = 29
Global Const $SM_CXSIZE = 30
Global Const $SM_CYSIZE = 31
Global Const $SM_CXFRAME = 32
Global Const $SM_CYFRAME = 33
Global Const $SM_CXMINTRACK = 34
Global Const $SM_CYMINTRACK = 35
Global Const $SM_CXDOUBLECLK = 36
Global Const $SM_CYDOUBLECLK = 37
Global Const $SM_CXICONSPACING = 38
Global Const $SM_CYICONSPACING = 39
Global Const $SM_MENUDROPALIGNMENT = 40
Global Const $SM_PENWINDOWS = 41
Global Const $SM_DBCSENABLED = 42
Global Const $SM_CMOUSEBUTTONS = 43
Global Const $SM_SECURE = 44
Global Const $SM_CXEDGE = 45
Global Const $SM_CYEDGE = 46
Global Const $SM_CXMINSPACING = 47
Global Const $SM_CYMINSPACING = 48
Global Const $SM_CXSMICON = 49
Global Const $SM_CYSMICON = 50
Global Const $SM_CYSMCAPTION = 51
Global Const $SM_CXSMSIZE = 52
Global Const $SM_CYSMSIZE = 53
Global Const $SM_CXMENUSIZE = 54
Global Const $SM_CYMENUSIZE = 55
Global Const $SM_ARRANGE = 56
Global Const $SM_CXMINIMIZED = 57
Global Const $SM_CYMINIMIZED = 58
Global Const $SM_CXMAXTRACK = 59
Global Const $SM_CYMAXTRACK = 60
Global Const $SM_CXMAXIMIZED = 61
Global Const $SM_CYMAXIMIZED = 62
Global Const $SM_NETWORK = 63
Global Const $SM_CLEANBOOT = 67
Global Const $SM_CXDRAG = 68
Global Const $SM_CYDRAG = 69
Global Const $SM_SHOWSOUNDS = 70
Global Const $SM_CXMENUCHECK = 71
Global Const $SM_CYMENUCHECK = 72
Global Const $SM_SLOWMACHINE = 73
Global Const $SM_MIDEASTENABLED = 74
Global Const $SM_MOUSEWHEELPRESENT = 75
Global Const $SM_XVIRTUALSCREEN = 76
Global Const $SM_YVIRTUALSCREEN = 77
Global Const $SM_CXVIRTUALSCREEN = 78
Global Const $SM_CYVIRTUALSCREEN = 79
Global Const $SM_CMONITORS = 80
Global Const $SM_SAMEDISPLAYFORMAT = 81
Global Const $SM_IMMENABLED = 82
Global Const $SM_CXFOCUSBORDER = 83
Global Const $SM_CYFOCUSBORDER = 84
Global Const $SM_TABLETPC = 86
Global Const $SM_MEDIACENTER = 87
Global Const $SM_STARTER = 88
Global Const $SM_SERVERR2 = 89
Global Const $SM_CMETRICS = 90
Global Const $SM_REMOTESESSION = 4096
Global Const $SM_SHUTTINGDOWN = 8192
Global Const $SM_REMOTECONTROL = 8193
Global Const $SM_CARETBLINKINGENABLED = 8194
Global Const $BLACKNESS = 66
Global Const $CAPTUREBLT = 1073741824
Global Const $DSTINVERT = 5570569
Global Const $MERGECOPY = 12583114
Global Const $MERGEPAINT = 12255782
Global Const $NOMIRRORBITMAP = -2147483648
Global Const $NOTSRCCOPY = 3342344
Global Const $NOTSRCERASE = 1114278
Global Const $PATCOPY = 15728673
Global Const $PATINVERT = 5898313
Global Const $PATPAINT = 16452105
Global Const $SRCAND = 8913094
Global Const $SRCCOPY = 13369376
Global Const $SRCERASE = 4457256
Global Const $SRCINVERT = 6684742
Global Const $SRCPAINT = 15597702
Global Const $WHITENESS = 16711778
Global Const $DT_BOTTOM = 8
Global Const $DT_CALCRECT = 1024
Global Const $DT_CENTER = 1
Global Const $DT_EDITCONTROL = 8192
Global Const $DT_END_ELLIPSIS = 32768
Global Const $DT_EXPANDTABS = 64
Global Const $DT_EXTERNALLEADING = 512
Global Const $DT_HIDEPREFIX = 1048576
Global Const $DT_INTERNAL = 4096
Global Const $DT_LEFT = 0
Global Const $DT_MODIFYSTRING = 65536
Global Const $DT_NOCLIP = 256
Global Const $DT_NOFULLWIDTHCHARBREAK = 524288
Global Const $DT_NOPREFIX = 2048
Global Const $DT_PATH_ELLIPSIS = 16384
Global Const $DT_PREFIXONLY = 2097152
Global Const $DT_RIGHT = 2
Global Const $DT_RTLREADING = 131072
Global Const $DT_SINGLELINE = 32
Global Const $DT_TABSTOP = 128
Global Const $DT_TOP = 0
Global Const $DT_VCENTER = 4
Global Const $DT_WORDBREAK = 16
Global Const $DT_WORD_ELLIPSIS = 262144
Global Const $RDW_ERASE = 4
Global Const $RDW_FRAME = 1024
Global Const $RDW_INTERNALPAINT = 2
Global Const $RDW_INVALIDATE = 1
Global Const $RDW_NOERASE = 32
Global Const $RDW_NOFRAME = 2048
Global Const $RDW_NOINTERNALPAINT = 16
Global Const $RDW_VALIDATE = 8
Global Const $RDW_ERASENOW = 512
Global Const $RDW_UPDATENOW = 256
Global Const $RDW_ALLCHILDREN = 128
Global Const $RDW_NOCHILDREN = 64
Global Const $WM_RENDERFORMAT = 773
Global Const $WM_RENDERALLFORMATS = 774
Global Const $WM_DESTROYCLIPBOARD = 775
Global Const $WM_DRAWCLIPBOARD = 776
Global Const $WM_PAINTCLIPBOARD = 777
Global Const $WM_VSCROLLCLIPBOARD = 778
Global Const $WM_SIZECLIPBOARD = 779
Global Const $WM_ASKCBFORMATNAME = 780
Global Const $WM_CHANGECBCHAIN = 781
Global Const $WM_HSCROLLCLIPBOARD = 782
Global Const $HTERROR = -2
Global Const $HTTRANSPARENT = -1
Global Const $HTNOWHERE = 0
Global Const $HTCLIENT = 1
Global Const $HTCAPTION = 2
Global Const $HTSYSMENU = 3
Global Const $HTGROWBOX = 4
Global Const $HTSIZE = $HTGROWBOX
Global Const $HTMENU = 5
Global Const $HTHSCROLL = 6
Global Const $HTVSCROLL = 7
Global Const $HTMINBUTTON = 8
Global Const $HTMAXBUTTON = 9
Global Const $HTLEFT = 10
Global Const $HTRIGHT = 11
Global Const $HTTOP = 12
Global Const $HTTOPLEFT = 13
Global Const $HTTOPRIGHT = 14
Global Const $HTBOTTOM = 15
Global Const $HTBOTTOMLEFT = 16
Global Const $HTBOTTOMRIGHT = 17
Global Const $HTBORDER = 18
Global Const $HTREDUCE = $HTMINBUTTON
Global Const $HTZOOM = $HTMAXBUTTON
Global Const $HTSIZEFIRST = $HTLEFT
Global Const $HTSIZELAST = $HTBOTTOMRIGHT
Global Const $HTOBJECT = 19
Global Const $HTCLOSE = 20
Global Const $HTHELP = 21
Global Const $COLOR_SCROLLBAR = 0
Global Const $COLOR_BACKGROUND = 1
Global Const $COLOR_ACTIVECAPTION = 2
Global Const $COLOR_INACTIVECAPTION = 3
Global Const $COLOR_MENU = 4
Global Const $COLOR_WINDOW = 5
Global Const $COLOR_WINDOWFRAME = 6
Global Const $COLOR_MENUTEXT = 7
Global Const $COLOR_WINDOWTEXT = 8
Global Const $COLOR_CAPTIONTEXT = 9
Global Const $COLOR_ACTIVEBORDER = 10
Global Const $COLOR_INACTIVEBORDER = 11
Global Const $COLOR_APPWORKSPACE = 12
Global Const $COLOR_HIGHLIGHT = 13
Global Const $COLOR_HIGHLIGHTTEXT = 14
Global Const $COLOR_BTNFACE = 15
Global Const $COLOR_BTNSHADOW = 16
Global Const $COLOR_GRAYTEXT = 17
Global Const $COLOR_BTNTEXT = 18
Global Const $COLOR_INACTIVECAPTIONTEXT = 19
Global Const $COLOR_BTNHIGHLIGHT = 20
Global Const $COLOR_3DDKSHADOW = 21
Global Const $COLOR_3DLIGHT = 22
Global Const $COLOR_INFOTEXT = 23
Global Const $COLOR_INFOBK = 24
Global Const $COLOR_HOTLIGHT = 26
Global Const $COLOR_GRADIENTACTIVECAPTION = 27
Global Const $COLOR_GRADIENTINACTIVECAPTION = 28
Global Const $COLOR_MENUHILIGHT = 29
Global Const $COLOR_MENUBAR = 30
Global Const $COLOR_DESKTOP = 1
Global Const $COLOR_3DFACE = 15
Global Const $COLOR_3DSHADOW = 16
Global Const $COLOR_3DHIGHLIGHT = 20
Global Const $COLOR_3DHILIGHT = 20
Global Const $COLOR_BTNHILIGHT = 20
Global Const $HINST_COMMCTRL = -1
Global Const $IDB_STD_SMALL_COLOR = 0
Global Const $IDB_STD_LARGE_COLOR = 1
Global Const $IDB_VIEW_SMALL_COLOR = 4
Global Const $IDB_VIEW_LARGE_COLOR = 5
Global Const $IDB_HIST_SMALL_COLOR = 8
Global Const $IDB_HIST_LARGE_COLOR = 9
Global Const $STARTF_FORCEOFFFEEDBACK = 128
Global Const $STARTF_FORCEONFEEDBACK = 64
Global Const $STARTF_RUNFULLSCREEN = 32
Global Const $STARTF_USECOUNTCHARS = 8
Global Const $STARTF_USEFILLATTRIBUTE = 16
Global Const $STARTF_USEHOTKEY = 512
Global Const $STARTF_USEPOSITION = 4
Global Const $STARTF_USESHOWWINDOW = 1
Global Const $STARTF_USESIZE = 2
Global Const $STARTF_USESTDHANDLES = 256
Global Const $CDDS_PREPAINT = 1
Global Const $CDDS_POSTPAINT = 2
Global Const $CDDS_PREERASE = 3
Global Const $CDDS_POSTERASE = 4
Global Const $CDDS_ITEM = 65536
Global Const $CDDS_ITEMPREPAINT = 65537
Global Const $CDDS_ITEMPOSTPAINT = 65538
Global Const $CDDS_ITEMPREERASE = 65539
Global Const $CDDS_ITEMPOSTERASE = 65540
Global Const $CDDS_SUBITEM = 131072
Global Const $CDIS_SELECTED = 1
Global Const $CDIS_GRAYED = 2
Global Const $CDIS_DISABLED = 4
Global Const $CDIS_CHECKED = 8
Global Const $CDIS_FOCUS = 16
Global Const $CDIS_DEFAULT = 32
Global Const $CDIS_HOT = 64
Global Const $CDIS_MARKED = 128
Global Const $CDIS_INDETERMINATE = 256
Global Const $CDIS_SHOWKEYBOARDCUES = 512
Global Const $CDIS_NEARHOT = 1024
Global Const $CDIS_OTHERSIDEHOT = 2048
Global Const $CDIS_DROPHILITED = 4096
Global Const $CDRF_DODEFAULT = 0
Global Const $CDRF_NEWFONT = 2
Global Const $CDRF_SKIPDEFAULT = 4
Global Const $CDRF_NOTIFYPOSTPAINT = 16
Global Const $CDRF_NOTIFYITEMDRAW = 32
Global Const $CDRF_NOTIFYSUBITEMDRAW = 32
Global Const $CDRF_NOTIFYPOSTERASE = 64
Global Const $CDRF_DOERASE = 8
Global Const $CDRF_SKIPPOSTPAINT = 256
Global Const $GUI_SS_DEFAULT_GUI = BitOR($WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)
Global Const $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 $OPT_COORDSRELATIVE = 0
Global Const $OPT_COORDSABSOLUTE = 1
Global Const $OPT_COORDSCLIENT = 2
Global Const $OPT_ERRORSILENT = 0
Global Const $OPT_ERRORFATAL = 1
Global Const $OPT_CAPSNOSTORE = 0
Global Const $OPT_CAPSSTORE = 1
Global Const $OPT_MATCHSTART = 1
Global Const $OPT_MATCHANY = 2
Global Const $OPT_MATCHEXACT = 3
Global Const $OPT_MATCHADVANCED = 4
Global Const $CCS_TOP = 1
Global Const $CCS_NOMOVEY = 2
Global Const $CCS_BOTTOM = 3
Global Const $CCS_NORESIZE = 4
Global Const $CCS_NOPARENTALIGN = 8
Global Const $CCS_NOHILITE = 16
Global Const $CCS_ADJUSTABLE = 32
Global Const $CCS_NODIVIDER = 64
Global Const $CCS_VERT = 128
Global Const $CCS_LEFT = 129
Global Const $CCS_NOMOVEX = 130
Global Const $CCS_RIGHT = 131
Global Const $DI_MASK = 1
Global Const $DI_IMAGE = 2
Global Const $DI_NORMAL = 3
Global Const $DI_COMPAT = 4
Global Const $DI_DEFAULTSIZE = 8
Global Const $DI_NOMIRROR = 16
Global Const $DISPLAY_DEVICE_ATTACHED_TO_DESKTOP = 1
Global Const $DISPLAY_DEVICE_MULTI_DRIVER = 2
Global Const $DISPLAY_DEVICE_PRIMARY_DEVICE = 4
Global Const $DISPLAY_DEVICE_MIRRORING_DRIVER = 8
Global Const $DISPLAY_DEVICE_VGA_COMPATIBLE = 16
Global Const $DISPLAY_DEVICE_REMOVABLE = 32
Global Const $DISPLAY_DEVICE_DISCONNECT = 33554432
Global Const $DISPLAY_DEVICE_REMOTE = 67108864
Global Const $DISPLAY_DEVICE_MODESPRUNED = 134217728
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 $FC_NOOVERWRITE = 0
Global Const $FC_OVERWRITE = 1
Global Const $FT_MODIFIED = 0
Global Const $FT_CREATED = 1
Global Const $FT_ACCESSED = 2
Global Const $FO_READ = 0
Global Const $FO_APPEND = 1
Global Const $FO_OVERWRITE = 2
Global Const $FO_BINARY = 16
Global Const $FO_UNICODE = 32
Global Const $FO_UTF16_LE = 32
Global Const $FO_UTF16_BE = 64
Global Const $FO_UTF8 = 128
Global Const $EOF = -1
Global Const $FD_FILEMUSTEXIST = 1
Global Const $FD_PATHMUSTEXIST = 2
Global Const $FD_MULTISELECT = 4
Global Const $FD_PROMPTCREATENEW = 8
Global Const $FD_PROMPTOVERWRITE = 16
Global Const $CREATE_NEW = 1
Global Const $CREATE_ALWAYS = 2
Global Const $OPEN_EXISTING = 3
Global Const $OPEN_ALWAYS = 4
Global Const $TRUNCATE_EXISTING = 5
Global Const $INVALID_SET_FILE_POINTER = -1
Global Const $FILE_BEGIN = 0
Global Const $FILE_CURRENT = 1
Global Const $FILE_END = 2
Global Const $FILE_ATTRIBUTE_READONLY = 1
Global Const $FILE_ATTRIBUTE_HIDDEN = 2
Global Const $FILE_ATTRIBUTE_SYSTEM = 4
Global Const $FILE_ATTRIBUTE_DIRECTORY = 16
Global Const $FILE_ATTRIBUTE_ARCHIVE = 32
Global Const $FILE_ATTRIBUTE_DEVICE = 64
Global Const $FILE_ATTRIBUTE_NORMAL = 128
Global Const $FILE_ATTRIBUTE_TEMPORARY = 256
Global Const $FILE_ATTRIBUTE_SPARSE_FILE = 512
Global Const $FILE_ATTRIBUTE_REPARSE_POINT = 1024
Global Const $FILE_ATTRIBUTE_COMPRESSED = 2048
Global Const $FILE_ATTRIBUTE_OFFLINE = 4096
Global Const $FILE_ATTRIBUTE_NOT_CONTENT_INDEXED = 8192
Global Const $FILE_ATTRIBUTE_ENCRYPTED = 16384
Global Const $FILE_SHARE_READ = 1
Global Const $FILE_SHARE_WRITE = 2
Global Const $FILE_SHARE_DELETE = 4
Global Const $GENERIC_ALL = 268435456
Global Const $GENERIC_EXECUTE = 536870912
Global Const $GENERIC_WRITE = 1073741824
Global Const $GENERIC_READ = -2147483648
Global Const $FLASHW_CAPTION = 1
Global Const $FLASHW_TRAY = 2
Global Const $FLASHW_TIMER = 4
Global Const $FLASHW_TIMERNOFG = 12
Global Const $FORMAT_MESSAGE_ALLOCATE_BUFFER = 256
Global Const $FORMAT_MESSAGE_IGNORE_INSERTS = 512
Global Const $FORMAT_MESSAGE_FROM_STRING = 1024
Global Const $FORMAT_MESSAGE_FROM_HMODULE = 2048
Global Const $FORMAT_MESSAGE_FROM_SYSTEM = 4096
Global Const $FORMAT_MESSAGE_ARGUMENT_ARRAY = 8192
Global Const $GW_HWNDFIRST = 0
Global Const $GW_HWNDLAST = 1
Global Const $GW_HWNDNEXT = 2
Global Const $GW_HWNDPREV = 3
Global Const $GW_OWNER = 4
Global Const $GW_CHILD = 5
Global Const $GWL_WNDPROC = -4
Global Const $GWL_HINSTANCE = -6
Global Const $GWL_HWNDPARENT = -8
Global Const $GWL_ID = -12
Global Const $GWL_STYLE = -16
Global Const $GWL_EXSTYLE = -20
Global Const $GWL_USERDATA = -21
Global Const $STD_CUT = 0
Global Const $STD_COPY = 1
Global Const $STD_PASTE = 2
Global Const $STD_UNDO = 3
Global Const $STD_REDOW = 4
Global Const $STD_DELETE = 5
Global Const $STD_FILENEW = 6
Global Const $STD_FILEOPEN = 7
Global Const $STD_FILESAVE = 8
Global Const $STD_PRINTPRE = 9
Global Const $STD_PROPERTIES = 10
Global Const $STD_HELP = 11
Global Const $STD_FIND = 12
Global Const $STD_REPLACE = 13
Global Const $STD_PRINT = 14
Global Const $LR_DEFAULTCOLOR = 0
Global Const $LR_MONOCHROME = 1
Global Const $LR_COLOR = 2
Global Const $LR_COPYRETURNORG = 4
Global Const $LR_COPYDELETEORG = 8
Global Const $LR_LOADFROMFILE = 16
Global Const $LR_LOADTRANSPARENT = 32
Global Const $LR_DEFAULTSIZE = 64
Global Const $LR_VGACOLOR = 128
Global Const $LR_LOADMAP3DCOLORS = 4096
Global Const $LR_CREATEDIBSECTION = 8192
Global Const $LR_COPYFROMRESOURCE = 16384
Global Const $LR_SHARED = 32768
Global Const $IMAGE_BITMAP = 0
Global Const $IMAGE_ICON = 1
Global Const $IMAGE_CURSOR = 2
Global Const $KB_SENDSPECIAL = 0
Global Const $KB_SENDRAW = 1
Global Const $KB_CAPSOFF = 0
Global Const $KB_CAPSON = 1
Global Const $DONT_RESOLVE_DLL_REFERENCES = 1
Global Const $LOAD_LIBRARY_AS_DATAFILE = 2
Global Const $LOAD_WITH_ALTERED_SEARCH_PATH = 8
Global Const $OBJID_WINDOW = 0
Global Const $OBJID_SYSMENU = -1
Global Const $OBJID_TITLEBAR = -2
Global Const $OBJID_MENU = -3
Global Const $OBJID_SIZEGRIP = -7
Global Const $OBJID_CARET = -8
Global Const $OBJID_CURSOR = -9
Global Const $OBJID_ALERT = -10
Global Const $OBJID_SOUND = -11
Global Const $VK_DOWN = 40
Global Const $VK_END = 35
Global Const $VK_HOME = 36
Global Const $VK_LEFT = 37
Global Const $VK_NEXT = 34
Global Const $VK_PRIOR = 33
Global Const $VK_RIGHT = 39
Global Const $VK_UP = 38
Global Const $MB_OK = 0
Global Const $MB_OKCANCEL = 1
Global Const $MB_ABORTRETRYIGNORE = 2
Global Const $MB_YESNOCANCEL = 3
Global Const $MB_YESNO = 4
Global Const $MB_RETRYCANCEL = 5
Global Const $MB_ICONHAND = 16
Global Const $MB_ICONQUESTION = 32
Global Const $MB_ICONEXCLAMATION = 48
Global Const $MB_ICONASTERISK = 64
Global Const $MB_DEFBUTTON1 = 0
Global Const $MB_DEFBUTTON2 = 256
Global Const $MB_DEFBUTTON3 = 512
Global Const $MB_APPLMODAL = 0
Global Const $MB_SYSTEMMODAL = 4096
Global Const $MB_TASKMODAL = 8192
Global Const $MB_TOPMOST = 262144
Global Const $MB_RIGHTJUSTIFIED = 524288
Global Const $IDTIMEOUT = -1
Global Const $IDOK = 1
Global Const $IDCANCEL = 2
Global Const $IDABORT = 3
Global Const $IDRETRY = 4
Global Const $IDIGNORE = 5
Global Const $IDYES = 6
Global Const $IDNO = 7
Global Const $IDTRYAGAIN = 10
Global Const $IDCONTINUE = 11
Global Const $DLG_NOTITLE = 1
Global Const $DLG_NOTONTOP = 2
Global Const $DLG_TEXTLEFT = 4
Global Const $DLG_TEXTRIGHT = 8
Global Const $DLG_MOVEABLE = 16
Global Const $DLG_TEXTVCENTER = 32
Global Const $TIP_ICONNONE = 0
Global Const $TIP_ICONASTERISK = 1
Global Const $TIP_ICONEXCLAMATION = 2
Global Const $TIP_ICONHAND = 3
Global Const $TIP_NOSOUND = 16
Global Const $IDC_UNKNOWN = 0
Global Const $IDC_APPSTARTING = 1
Global Const $IDC_ARROW = 2
Global Const $IDC_CROSS = 3
Global Const $IDC_HAND = 32649
Global Const $IDC_HELP = 4
Global Const $IDC_IBEAM = 5
Global Const $IDC_ICON = 6
Global Const $IDC_NO = 7
Global Const $IDC_SIZE = 8
Global Const $IDC_SIZEALL = 9
Global Const $IDC_SIZENESW = 10
Global Const $IDC_SIZENS = 11
Global Const $IDC_SIZENWSE = 12
Global Const $IDC_SIZEWE = 13
Global Const $IDC_UPARROW = 14
Global Const $IDC_WAIT = 15
Global Const $IDI_APPLICATION = 32512
Global Const $IDI_ASTERISK = 32516
Global Const $IDI_EXCLAMATION = 32515
Global Const $IDI_HAND = 32513
Global Const $IDI_QUESTION = 32514
Global Const $IDI_WINLOGO = 32517
Global Const $SD_LOGOFF = 0
Global Const $SD_SHUTDOWN = 1
Global Const $SD_REBOOT = 2
Global Const $SD_FORCE = 4
Global Const $SD_POWERDOWN = 8
Global Const $PROCESS_TERMINATE = 1
Global Const $PROCESS_CREATE_THREAD = 2
Global Const $PROCESS_SET_SESSIONID = 4
Global Const $PROCESS_VM_OPERATION = 8
Global Const $PROCESS_VM_READ = 16
Global Const $PROCESS_VM_WRITE = 32
Global Const $PROCESS_DUP_HANDLE = 64
Global Const $PROCESS_CREATE_PROCESS = 128
Global Const $PROCESS_SET_QUOTA = 256
Global Const $PROCESS_SET_INFORMATION = 512
Global Const $PROCESS_QUERY_INFORMATION = 1024
Global Const $PROCESS_SUSPEND_RESUME = 2048
Global Const $PROCESS_ALL_ACCESS = 2035711
Global Const $STR_NOCASESENSE = 0
Global Const $STR_CASESENSE = 1
Global Const $STR_STRIPLEADING = 1
Global Const $STR_STRIPTRAILING = 2
Global Const $STR_STRIPSPACES = 4
Global Const $STR_STRIPALL = 8
Global Const $TOKEN_ASSIGN_PRIMARY = 1
Global Const $TOKEN_DUPLICATE = 2
Global Const $TOKEN_IMPERSONATE = 4
Global Const $TOKEN_QUERY = 8
Global Const $TOKEN_QUERY_SOURCE = 16
Global Const $TOKEN_ADJUST_PRIVILEGES = 32
Global Const $TOKEN_ADJUST_GROUPS = 64
Global Const $TOKEN_ADJUST_DEFAULT = 128
Global Const $TOKEN_ADJUST_SESSIONID = 256
Global Const $TRAY_ITEM_EXIT = 3
Global Const $TRAY_ITEM_PAUSE = 4
Global Const $TRAY_ITEM_FIRST = 7
Global Const $TRAY_CHECKED = 1
Global Const $TRAY_UNCHECKED = 4
Global Const $TRAY_ENABLE = 64
Global Const $TRAY_DISABLE = 128
Global Const $TRAY_FOCUS = 256
Global Const $TRAY_DEFAULT = 512
Global Const $TRAY_EVENT_SHOWICON = -3
Global Const $TRAY_EVENT_HIDEICON = -4
Global Const $TRAY_EVENT_FLASHICON = -5
Global Const $TRAY_EVENT_NOFLASHICON = -6
Global Const $TRAY_EVENT_PRIMARYDOWN = -7
Global Const $TRAY_EVENT_PRIMARYUP = -8
Global Const $TRAY_EVENT_SECONDARYDOWN = -9
Global Const $TRAY_EVENT_SECONDARYUP = -10
Global Const $TRAY_EVENT_MOUSEOVER = -11
Global Const $TRAY_EVENT_MOUSEOUT = -12
Global Const $TRAY_EVENT_PRIMARYDOUBLE = -13
Global Const $TRAY_EVENT_SECONDARYDOUBLE = -14
Global Const $STDIN_CHILD = 1
Global Const $STDOUT_CHILD = 2
Global Const $STDERR_CHILD = 4
Global Const $STDERR_MERGED = 8
Global Const $STDIO_INHERIT_PARENT = 16
Global Const $RUN_CREATE_NEW_CONSOLE = 65536
Global Const $COLOR_AQUA = 65535
Global Const $COLOR_BLACK = 0
Global Const $COLOR_BLUE = 255
Global Const $COLOR_CREAM = 16776176
Global Const $COLOR_FUCHSIA = 16711935
Global Const $COLOR_GRAY = 8421504
Global Const $COLOR_GREEN = 32768
Global Const $COLOR_LIME = 65280
Global Const $COLOR_MAROON = 9116770
Global Const $COLOR_MEDBLUE = 708
Global Const $COLOR_MEDGRAY = 10526884
Global Const $COLOR_MONEYGREEN = 12639424
Global Const $COLOR_NAVY = 128
Global Const $COLOR_OLIVE = 8421376
Global Const $COLOR_PURPLE = 8388736
Global Const $COLOR_RED = 16711680
Global Const $COLOR_SILVER = 12632256
Global Const $COLOR_SKYBLUE = 10930928
Global Const $COLOR_TEAL = 32896
Global Const $COLOR_WHITE = 16777215
Global Const $COLOR_YELLOW = 16776960
Global Const $CLR_NONE = -1
Global Const $CLR_AQUA = 16776960
Global Const $CLR_BLACK = 0
Global Const $CLR_BLUE = 16711680
Global Const $CLR_CREAM = 15793151
Global Const $CLR_DEFAULT = -16777216
Global Const $CLR_FUCHSIA = 16711935
Global Const $CLR_GRAY = 8421504
Global Const $CLR_GREEN = 32768
Global Const $CLR_LIME = 65280
Global Const $CLR_MAROON = 6429835
Global Const $CLR_MEDBLUE = 12845568
Global Const $CLR_MEDGRAY = 10789024
Global Const $CLR_MONEYGREEN = 12639424
Global Const $CLR_NAVY = 8388608
Global Const $CLR_OLIVE = 32896
Global Const $CLR_PURPLE = 8388736
Global Const $CLR_RED = 255
Global Const $CLR_SILVER = 12632256
Global Const $CLR_SKYBLUE = 15780518
Global Const $CLR_TEAL = 8421376
Global Const $CLR_WHITE = 16777215
Global Const $CLR_YELLOW = 65535
Global Const $CC_ANYCOLOR = 256
Global Const $CC_FULLOPEN = 2
Global Const $CC_RGBINIT = 1
Global Const $MOUSEEVENTF_ABSOLUTE = 32768
Global Const $MOUSEEVENTF_MOVE = 1
Global Const $MOUSEEVENTF_LEFTDOWN = 2
Global Const $MOUSEEVENTF_LEFTUP = 4
Global Const $MOUSEEVENTF_RIGHTDOWN = 8
Global Const $MOUSEEVENTF_RIGHTUP = 16
Global Const $MOUSEEVENTF_MIDDLEDOWN = 32
Global Const $MOUSEEVENTF_MIDDLEUP = 64
Global Const $MOUSEEVENTF_WHEEL = 2048
Global Const $MOUSEEVENTF_XDOWN = 128
Global Const $MOUSEEVENTF_XUP = 256
Global Const $REG_NONE = 0
Global Const $REG_SZ = 1
Global Const $REG_EXPAND_SZ = 2
Global Const $REG_BINARY = 3
Global Const $REG_DWORD = 4
Global Const $REG_DWORD_BIG_ENDIAN = 5
Global Const $REG_LINK = 6
Global Const $REG_MULTI_SZ = 7
Global Const $REG_RESOURCE_LIST = 8
Global Const $REG_FULL_RESOURCE_DESCRIPTOR = 9
Global Const $REG_RESOURCE_REQUIREMENTS_LIST = 10
Global Const $HWND_BOTTOM = 1
Global Const $HWND_NOTOPMOST = -2
Global Const $HWND_TOP = 0
Global Const $HWND_TOPMOST = -1
Global Const $SWP_NOSIZE = 1
Global Const $SWP_NOMOVE = 2
Global Const $SWP_NOZORDER = 4
Global Const $SWP_NOREDRAW = 8
Global Const $SWP_NOACTIVATE = 16
Global Const $SWP_FRAMECHANGED = 32
Global Const $SWP_DRAWFRAME = 32
Global Const $SWP_SHOWWINDOW = 64
Global Const $SWP_HIDEWINDOW = 128
Global Const $SWP_NOCOPYBITS = 256
Global Const $SWP_NOOWNERZORDER = 512
Global Const $SWP_NOREPOSITION = 512
Global Const $SWP_NOSENDCHANGING = 1024
Global Const $SWP_DEFERERASE = 8192
Global Const $SWP_ASYNCWINDOWPOS = 16384
Global Const $LANG_AFRIKAANS = 54
Global Const $LANG_ALBANIAN = 28
Global Const $LANG_ARABIC = 1
Global Const $LANG_ARMENIAN = 43
Global Const $LANG_ASSAMESE = 77
Global Const $LANG_AZERI = 44
Global Const $LANG_BASQUE = 45
Global Const $LANG_BELARUSIAN = 35
Global Const $LANG_BENGALI = 69
Global Const $LANG_BULGARIAN = 2
Global Const $LANG_CATALAN = 3
Global Const $LANG_CHINESE = 4
Global Const $LANG_CROATIAN = 26
Global Const $LANG_CZECH = 5
Global Const $LANG_DANISH = 6
Global Const $LANG_DUTCH = 19
Global Const $LANG_ENGLISH = 9
Global Const $LANG_ESTONIAN = 37
Global Const $LANG_FAEROESE = 56
Global Const $LANG_FARSI = 41
Global Const $LANG_FINNISH = 11
Global Const $LANG_FRENCH = 12
Global Const $LANG_GEORGIAN = 55
Global Const $LANG_GERMAN = 7
Global Const $LANG_GREEK = 8
Global Const $LANG_GUJARATI = 71
Global Const $LANG_HEBREW = 13
Global Const $LANG_HINDI = 57
Global Const $LANG_HUNGARIAN = 14
Global Const $LANG_ICELANDIC = 15
Global Const $LANG_INDONESIAN = 33
Global Const $LANG_ITALIAN = 16
Global Const $LANG_JAPANESE = 17
Global Const $LANG_KANNADA = 75
Global Const $LANG_KASHMIRI = 96
Global Const $LANG_KAZAK = 63
Global Const $LANG_KONKANI = 87
Global Const $LANG_KOREAN = 18
Global Const $LANG_LATVIAN = 38
Global Const $LANG_LITHUANIAN = 39
Global Const $LANG_MACEDONIAN = 47
Global Const $LANG_MALAY = 62
Global Const $LANG_MALAYALAM = 76
Global Const $LANG_MANIPURI = 88
Global Const $LANG_MARATHI = 78
Global Const $LANG_NEPALI = 97
Global Const $LANG_NEUTRAL = 0
Global Const $LANG_NORWEGIAN = 20
Global Const $LANG_ORIYA = 72
Global Const $LANG_POLISH = 21
Global Const $LANG_PORTUGUESE = 22
Global Const $LANG_PUNJABI = 70
Global Const $LANG_ROMANIAN = 24
Global Const $LANG_RUSSIAN = 25
Global Const $LANG_SANSKRIT = 79
Global Const $LANG_SERBIAN = 26
Global Const $LANG_SINDHI = 89
Global Const $LANG_SLOVAK = 27
Global Const $LANG_SLOVENIAN = 36
Global Const $LANG_SPANISH = 10
Global Const $LANG_SWAHILI = 65
Global Const $LANG_SWEDISH = 29
Global Const $LANG_TAMIL = 73
Global Const $LANG_TATAR = 68
Global Const $LANG_TELUGU = 74
Global Const $LANG_THAI = 30
Global Const $LANG_TURKISH = 31
Global Const $LANG_UKRAINIAN = 34
Global Const $LANG_URDU = 32
Global Const $LANG_UZBEK = 67
Global Const $LANG_VIETNAMESE = 42
Global Const $SUBLANG_ARABIC_ALGERIA = 5
Global Const $SUBLANG_ARABIC_BAHRAIN = 15
Global Const $SUBLANG_ARABIC_EGYPT = 3
Global Const $SUBLANG_ARABIC_IRAQ = 2
Global Const $SUBLANG_ARABIC_JORDAN = 11
Global Const $SUBLANG_ARABIC_KUWAIT = 13
Global Const $SUBLANG_ARABIC_LEBANON = 12
Global Const $SUBLANG_ARABIC_LIBYA = 4
Global Const $SUBLANG_ARABIC_MOROCCO = 6
Global Const $SUBLANG_ARABIC_OMAN = 8
Global Const $SUBLANG_ARABIC_QATAR = 16
Global Const $SUBLANG_ARABIC_SAUDI_ARABIA = 1
Global Const $SUBLANG_ARABIC_SYRIA = 10
Global Const $SUBLANG_ARABIC_TUNISIA = 7
Global Const $SUBLANG_ARABIC_UAE = 14
Global Const $SUBLANG_ARABIC_YEMEN = 9
Global Const $SUBLANG_AZERI_CYRILLIC = 2
Global Const $SUBLANG_AZERI_LATIN = 1
Global Const $SUBLANG_CHINESE_HONGKONG = 3
Global Const $SUBLANG_CHINESE_MACAU = 5
Global Const $SUBLANG_CHINESE_SIMPLIFIED = 2
Global Const $SUBLANG_CHINESE_SINGAPORE = 4
Global Const $SUBLANG_CHINESE_TRADITIONAL = 1
Global Const $SUBLANG_DEFAULT = 1
Global Const $SUBLANG_DUTCH = 1
Global Const $SUBLANG_DUTCH_BELGIAN = 2
Global Const $SUBLANG_ENGLISH_AUS = 3
Global Const $SUBLANG_ENGLISH_BELIZE = 10
Global Const $SUBLANG_ENGLISH_CAN = 4
Global Const $SUBLANG_ENGLISH_CARIBBEAN = 9
Global Const $SUBLANG_ENGLISH_EIRE = 6
Global Const $SUBLANG_ENGLISH_JAMAICA = 8
Global Const $SUBLANG_ENGLISH_NZ = 5
Global Const $SUBLANG_ENGLISH_PHILIPPINES = 13
Global Const $SUBLANG_ENGLISH_SOUTH_AFRICA = 7
Global Const $SUBLANG_ENGLISH_TRINIDAD = 11
Global Const $SUBLANG_ENGLISH_UK = 2
Global Const $SUBLANG_ENGLISH_US = 1
Global Const $SUBLANG_ENGLISH_ZIMBABWE = 12
Global Const $SUBLANG_FRENCH = 1
Global Const $SUBLANG_FRENCH_BELGIAN = 2
Global Const $SUBLANG_FRENCH_CANADIAN = 3
Global Const $SUBLANG_FRENCH_LUXEMBOURG = 5
Global Const $SUBLANG_FRENCH_MONACO = 6
Global Const $SUBLANG_FRENCH_SWISS = 4
Global Const $SUBLANG_GERMAN = 1
Global Const $SUBLANG_GERMAN_AUSTRIAN = 3
Global Const $SUBLANG_GERMAN_LIECHTENSTEIN = 5
Global Const $SUBLANG_GERMAN_LUXEMBOURG = 4
Global Const $SUBLANG_GERMAN_SWISS = 2
Global Const $SUBLANG_ITALIAN = 1
Global Const $SUBLANG_ITALIAN_SWISS = 2
Global Const $SUBLANG_KASHMIRI_INDIA = 2
Global Const $SUBLANG_KOREAN = 1
Global Const $SUBLANG_LITHUANIAN = 1
Global Const $SUBLANG_MALAY_BRUNEI_DARUSSALAM = 2
Global Const $SUBLANG_MALAY_MALAYSIA = 1
Global Const $SUBLANG_NEPALI_INDIA = 2
Global Const $SUBLANG_NEUTRAL = 0
Global Const $SUBLANG_NORWEGIAN_BOKMAL = 1
Global Const $SUBLANG_NORWEGIAN_NYNORSK = 2
Global Const $SUBLANG_PORTUGUESE = 2
Global Const $SUBLANG_PORTUGUESE_BRAZILIAN = 1
Global Const $SUBLANG_SERBIAN_CYRILLIC = 3
Global Const $SUBLANG_SERBIAN_LATIN = 2
Global Const $SUBLANG_SPANISH = 1
Global Const $SUBLANG_SPANISH_ARGENTINA = 11
Global Const $SUBLANG_SPANISH_BOLIVIA = 16
Global Const $SUBLANG_SPANISH_CHILE = 13
Global Const $SUBLANG_SPANISH_COLOMBIA = 9
Global Const $SUBLANG_SPANISH_COSTA_RICA = 5
Global Const $SUBLANG_SPANISH_DOMINICAN_REPUBLIC = 7
Global Const $SUBLANG_SPANISH_ECUADOR = 12
Global Const $SUBLANG_SPANISH_EL_SALVADOR = 17
Global Const $SUBLANG_SPANISH_GUATEMALA = 4
Global Const $SUBLANG_SPANISH_HONDURAS = 18
Global Const $SUBLANG_SPANISH_MEXICAN = 2
Global Const $SUBLANG_SPANISH_MODERN = 3
Global Const $SUBLANG_SPANISH_NICARAGUA = 19
Global Const $SUBLANG_SPANISH_PANAMA = 6
Global Const $SUBLANG_SPANISH_PARAGUAY = 15
Global Const $SUBLANG_SPANISH_PERU = 10
Global Const $SUBLANG_SPANISH_PUERTO_RICO = 20
Global Const $SUBLANG_SPANISH_URUGUAY = 14
Global Const $SUBLANG_SPANISH_VENEZUELA = 8
Global Const $SUBLANG_SWEDISH = 1
Global Const $SUBLANG_SWEDISH_FINLAND = 2
Global Const $SUBLANG_SYS_DEFAULT = 2
Global Const $SUBLANG_URDU_INDIA = 2
Global Const $SUBLANG_URDU_PAKISTAN = 1
Global Const $SUBLANG_UZBEK_CYRILLIC = 2
Global Const $SORT_DEFAULT = 0
Global Const $SORT_JAPANESE_XJIS = 0
Global Const $SORT_JAPANESE_UNICODE = 1
Global Const $SORT_CHINESE_BIG5 = 0
Global Const $SORT_CHINESE_PRCP = 0
Global Const $SORT_CHINESE_UNICODE = 1
Global Const $SORT_CHINESE_PRC = 2
Global Const $SORT_KOREAN_KSC = 0
Global Const $SORT_KOREAN_UNICODE = 1
Global Const $SORT_GERMAN_PHONE_BOOK = 1
Global Const $SORT_HUNGARIAN_DEFAULT = 0
Global Const $SORT_HUNGARIAN_TECHNICAL = 1
Global Const $SORT_GEORGIAN_TRADITIONAL = 0
Global Const $SORT_GEORGIAN_MODERN = 1
AutoItSetOption("TrayIconDebug", 1)
Global $SERVER, $SERVER_LOGIN, $SERVER_GAME, $AKTUELLE_WELT, $OFRAME, $OFORM, $OIE, $OIE1, $OIE2, $BENUTZERNAME, $PASSWORT, $WARTE = 0, $SCHONMALEINGELOGGT = 0
Global $UID1 = Random(1000, 100000000), $HOIE1, $PID1
Global $TRENNER = Chr(IniRead("data\settings.ini", "Programm", "Trennzeichen", 124))
Opt("GUIDataSeparatorChar", $TRENNER)
Opt("GUIOnEventMode", 1)
Opt("TrayIconHide", 0)
_IEERRORHANDLERREGISTER()
LOGIN_DATEN()
#Region Haupt_Fenster
$MAIN_WINDOW = GUICreate("Einladungsbot 1.2", @DesktopWidth - 14, @DesktopHeight - 66, 0, 0, $WS_CAPTION + $WS_SYSMENU + $WS_MAXIMIZEBOX + $WS_MINIMIZEBOX + $WS_CLIPSIBLINGS + $WS_MAXIMIZE)
GUISetOnEvent($GUI_EVENT_CLOSE, "_close")
GUISetFont(IniRead("data\settings.ini", "Programm", "Schriftgröße", "8.5"))
GUISetState(@SW_MAXIMIZE, $MAIN_WINDOW)
GUISetState(@SW_SHOW, $MAIN_WINDOW)
$MAINPOS_ARRAY = WinGetPos($MAIN_WINDOW)
If IniRead("data\settings.ini", "Programm", "Botstyle", "Fenster") = "Fenster" Then
IE_FENSTER()
Else
$OIE1 = _IECREATEEMBEDDED()
$OIE2 = _IECREATEEMBEDDED()
$MAIN_TAB = GUICtrlCreateTab(10, 10, 125, 50)
$MAIN_TAB1 = GUICtrlCreateTabItem("Bot-Tab")
$GUIACTIVEX = GUICtrlCreateObj($OIE1, 10, 30, $MAINPOS_ARRAY[2] - 30, $MAINPOS_ARRAY[3] - 125)
GUICtrlCreateTabItem("")
$MAIN_TAB2 = GUICtrlCreateTabItem("User-Tab")
$GUIACTIVEX2 = GUICtrlCreateObj($OIE2, 10, 30, $MAINPOS_ARRAY[2] - 30, $MAINPOS_ARRAY[3] - 125)
GUICtrlCreateTabItem("")
GUICtrlSetState($MAIN_TAB1, $GUI_SHOW)
GUISetBkColor(14603193)
EndIf
$GUI_BUTTON_SUCHEN = GUICtrlCreateButton("Alle holen", 106, $MAINPOS_ARRAY[3] - 70, 86, 30)
GUICtrlSetOnEvent(-1, "suchen")
$GUI_BUTTON_EINLADEN = GUICtrlCreateButton("aus Datei einladen", 202, $MAINPOS_ARRAY[3] - 70, 160, 30)
GUICtrlSetOnEvent(-1, "einladen")
$LABEL_WARTEN = GUICtrlCreateLabel("", 586, $MAINPOS_ARRAY[3] - 70, 180, 26)
GUICtrlSetFont($LABEL_WARTEN, 16)
GUICtrlSetColor($LABEL_WARTEN, 15404558)
$PRO = GUICtrlCreateProgress(610, $MAINPOS_ARRAY[3] - 45, 120, 10)
GUICtrlSetState($PRO, $GUI_HIDE)
$LABEL_STATUSMELDUNG = GUICtrlCreateLabel("", 20, $MAINPOS_ARRAY[3] - 90, $MAINPOS_ARRAY[2] - 140, 20)
GUICtrlSetColor($LABEL_STATUSMELDUNG, 0)
GUICtrlSetFont($LABEL_STATUSMELDUNG, 10)
GUICtrlCreateGraphic(0, 30, 5, $MAINPOS_ARRAY[3] - 125)
GUICtrlSetColor(-1, 0)
#EndRegion Haupt_Fenster
STATUS("Software gestartet")
If IniRead("data\settings.ini", "Programm", "auto_login", "") = 1 Then
EINLOGGEN()
Else
_IENAVIGATE($OIE1, "about:blank")
_IEDOCWRITEHTML($OIE1, '<html><body bgcolor="DEd3B9"><a href="http://www.die-staemme.de/">Login-Seite</a></body></html>')
If ObjName($OIE2, 3) = "Shell.Explorer.2" Then
_IENAVIGATE($OIE2, "about:blank")
_IEDOCWRITEHTML($OIE2, '<html><body bgcolor="DEd3B9"><a href="http://' & $SERVER & $AKTUELLE_WELT & $SERVER_GAME & '/game.php?screen=overview_villages&intro&popup">Übersichten</a></body></html>')
EndIf
EndIf
If IsDeclared("erster_botstart") Then
MsgBox(0, "Hinweis", "Da dies der erste Botstart ist, wird sich der Bot jetzt einloggen und alle deine Dörfer einlesen. Falls das Einlesen nicht richtig klappt, versuche es nochmal unter Einstellungen.")
EINLOGGEN()
Sleep(2000)
_IELOADWAIT($OIE1)
EIGENE_DOERFER_HOLEN()
EndIf
While 1
Sleep(10000)
WEnd
Func IE_FENSTER()
$OIE1 = _IECREATE("about:blank", 0, 0, 1, 0)
$OIE1.AddressBar = 0
$OIE1.MenuBar = 0
$OIE1.StatusBar = 0
$OIE1.ToolBar = 0
$UID1 = Random(1000, 100000000)
$OIE1.document.title = $UID1
WinWait($UID1, "", 7)
$HOIE1 = WinGetHandle($UID1)
$PID1 = WinGetProcess($HOIE1)
DllCall("user32.dll", "long", "SetWindowLong", "hwnd", $HOIE1, "int", -16, "long", $WS_POPUP)
DllCall("user32.dll", "int", "SetParent", "hwnd", $HOIE1, "hwnd", $MAIN_WINDOW)
$MAINPOS_ARRAY = WinGetPos($MAIN_WINDOW)
WinMove($HOIE1, "", 10, 30, $MAINPOS_ARRAY[2] - 30, $MAINPOS_ARRAY[3] - 125)
$OIE1.visible = 1
GUISetBkColor(14603193)
$OIE = $OIE1
EndFunc
Func EINLOGGEN()
If IniRead("data\settings.ini", "Login", "Link_Login", "") = 1 Then
STATUS("Versuch: Anmelden per Link")
_IENAVIGATE($OIE1, IniRead("data\settings.ini", "Login", "Link", ""), 0)
Else
STATUS("Versuch: Anmelden")
_IENAVIGATE($OIE1, $SERVER_LOGIN)
$STEXT = _IEDOCREADHTML($OIE1)
If StringInStr($STEXT, "Logout") <> 0 Then
_IENAVIGATE($OIE1, "http://www" & $SERVER_GAME & "/index.php?server_list=1")
_IEFORMIMAGECLICK($OIE1, "server_" & $SERVER & $AKTUELLE_WELT, "name", 0, 0)
_IELOADWAIT($OIE1)
Else
$OFORM = _IEFORMGETCOLLECTION($OIE1, 0)
$OQUERY = _IEFORMELEMENTGETOBJBYNAME($OFORM, "user")
_IEFORMELEMENTSETVALUE($OQUERY, $BENUTZERNAME)
$OQUERY = _IEFORMELEMENTGETOBJBYNAME($OFORM, "password")
_IEFORMELEMENTSETVALUE($OQUERY, $PASSWORT)
$OQUERY = _IEFORMELEMENTGETOBJBYNAME($OFORM, "server")
_IEFORMELEMENTOPTIONSELECT($OQUERY, $SERVER & $AKTUELLE_WELT, 1, "byValue")
If @error Then _IEFORMELEMENTOPTIONSELECT($OQUERY, $AKTUELLE_WELT, 1, "byValue")
$OQUERY = _IEGETOBJBYID($OIE1, "login-btn-input")
_IEACTION($OQUERY, "click")
EndIf
EndIf
If $SCHONMALEINGELOGGT = 0 And ObjName($OIE2, 3) = "Shell.Explorer.2" Then
Sleep(1000)
_IENAVIGATE($OIE2, "http://" & $SERVER & $AKTUELLE_WELT & $SERVER_GAME & "/game.php?screen=overview_villages")
EndIf
$SCHONMALEINGELOGGT = 1
STATUS("Tool erfolgreich angemeldet")
EndFunc
Func EIGENE_DOERFER_HOLEN()
$WARTE += 1
LABEL_WARTEN(1)
$OFRAME = _IEFRAMEGETOBJBYNAME($OIE1, "main")
$HTML = _IEDOCREADHTML($OFRAME)
HTML_LINK_ANKLICKEN("screen=overview_villages")
_IELOADWAIT($OIE1)
$OFRAME = _IEFRAMEGETOBJBYNAME($OIE1, "main")
$SHTML = _IEDOCREADHTML($OFRAME)
If StringInStr($SHTML, "mode=combined") And StringInStr($SHTML, "value=combined") = 0 Then
HTML_LINK_ANKLICKEN("mode=combined")
_IELOADWAIT($OIE1)
$SHTML = _IEDOCREADHTML($OFRAME)
EndIf
$AREGEXP = StringRegExp($SHTML, "label_text_(.*?)>(.*?) \((.*?)\|(.*?)\) ", 3)
If @error Then $AREGEXP = StringRegExp($SHTML, "label_text_(.*?)>(.*?) \((.*?)\|(.*?)\)", 3)
If @error Then Return MsgBox(0, "Fehler", "konnte Dörfer nicht einlesen")
FileDelete("data\Dörfer.isl")
FileDelete("data\Dörfer_koords.isl")
FileDelete("data\Dörfer_id.isl")
For $I = 0 To UBound($AREGEXP) - 4 Step 4
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "[", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "]", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "=", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "\", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], ":", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "*", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "?", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], '"', "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], "<", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], ">", "")
$AREGEXP[$I + 1] = StringReplace($AREGEXP[$I + 1], $TRENNER, "")
If $AREGEXP[$I + 2] >= 0 Then
$AREGEXP[$I + 2] = StringFormat("%03d", $AREGEXP[$I + 2])
Else
$AREGEXP[$I + 2] = "-" & StringFormat("%02d", StringTrimLeft($AREGEXP[$I + 2], 1))
EndIf
If $AREGEXP[$I + 3] >= 0 Then
$AREGEXP[$I + 3] = StringFormat("%03d", $AREGEXP[$I + 3])
Else
$AREGEXP[$I + 3] = "-" & StringFormat("%02d", StringTrimLeft($AREGEXP[$I + 3], 1))
EndIf
IniWrite("data\Dörfer_id.isl", "village_id", $AREGEXP[$I + 1], $AREGEXP[$I])
FileWriteLine("data\Dörfer.isl", $AREGEXP[$I + 1])
FileWriteLine("data\Dörfer_koords.isl", $AREGEXP[$I + 2] & "#" & $AREGEXP[$I + 3])
STATUS("Dorf hinzugefügt: " & $AREGEXP[$I + 1] & " " & $AREGEXP[$I + 2] & "#" & $AREGEXP[$I + 3] & " ID: " & $AREGEXP[$I])
Next
$WARTE -= 1
LABEL_WARTEN(0)
EndFunc
Func LOGIN_DATEN()
If FileExists("data") = 0 Then
If MsgBox(36, "Data-Ordner", "Ich kann keinen Data-Ordner finden. Wenn du das erste mal startest ist das normal. Wenn du aber bereits einen Data-Ordner mit Einstellungen und Aufgaben hast, so führ mich dort aus wo sich dieser befindet. Ansonsten müssen alle Einstellungen etc neu eingetragen werden." & @CRLF & "Soll ich jetzt starten und einen neuen Data-Ordner anlegen ?") = 7 Then Exit
DirCreate("data")
EndIf
$PFAD = IniRead("data\settings.ini", "Programm", "Pfad", "")
If $PFAD = "" Then IniWrite("data\settings.ini", "Programm", "Pfad", @ScriptDir)
$BENUTZERNAME = IniRead("data\settings.ini", "Login", "Benutzername", "")
If $BENUTZERNAME = "" Then $BENUTZERNAME = InputBox("Stämme-Benutzername", 'Bitte den Stämme-Benutzernamen eingeben, wird in der Datei "settings.ini" im Ordner "data" gespeichert:', "", "", 300, 145)
If $BENUTZERNAME = "" Then
MsgBox(0, "Fehler", "Ohne Benutzernamen kann sich der Bot nicht einloggen ... bitte neustarten")
Exit
EndIf
IniWrite("data\settings.ini", "Login", "Benutzername", $BENUTZERNAME)
$PASSWORT = _STRINGENCRYPT(0, IniRead("data\settings.ini", "Login", "Passwort", ""), "staemme123bot")
If $PASSWORT = "" Then $PASSWORT = InputBox("Stämme-Passwort", 'Bitte Stämme-Passwort eingeben, wird verschlüsselt in der Datei "settings.ini" im Ordner "data" gespeichert:', "", "#", 300, 145)
If $PASSWORT = "" Then
MsgBox(0, "Fehler", "Ohne Passwort kann sich der Bot nicht einloggen ... bitte neustarten")
Exit
EndIf
IniWrite("data\settings.ini", "Login", "Passwort", _STRINGENCRYPT(1, $PASSWORT, "staemme123bot"))
$AKTUELLE_WELT = IniRead("data\settings.ini", "WeltInfos", "world", "")
If $AKTUELLE_WELT = "" Then
$AKTUELLE_WELT = InputBox("Stämme-Welt", "Auf welcher Welt spielt dieser Bot ? (nur die Zahl eingeben, für SDS ein s vor die Zahl)", "", "", 300, 145)
If $AKTUELLE_WELT = "" Then
MsgBox(0, "Fehler", "Keine Welt angegeben, bitte neustarten !")
Exit
ElseIf StringInStr($AKTUELLE_WELT, "s") Then
$AKTUELLE_WELT = StringTrimLeft($AKTUELLE_WELT, 1)
$SERVER = "des"
Else
$SERVER = "de"
EndIf
Global $ERSTER_BOTSTART = 1
IniWrite("data\settings.ini", "WeltInfos", "world", $AKTUELLE_WELT)
_IMPORTWORLDSETTINGS()
EndIf
If IniRead("data\settings.ini", "Programm", "Server", "1") = 1 Then
$SERVER = IniRead("data\settings.ini", "Login", "Server", "de")
$SERVER_LOGIN = IniRead("data\settings.ini", "Login", "Server_login", "http://www.die-staemme.de")
$SERVER_GAME = IniRead("data\settings.ini", "Login", "Server_game", ".die-staemme.de")
Else
$SERVER = IniRead("data\settings.ini", "Login", "Server_de", "de")
$SERVER_LOGIN = IniRead("data\settings.ini", "Login", "Server_de_login", "http://staemme.de")
$SERVER_GAME = IniRead("data\settings.ini", "Login", "Server_de_game", ".staemme.de")
EndIf
If IniRead("data\settings.ini", "Programm", "Schriftgröße", "") = "" Then IniWrite("data\settings.ini", "Programm", "Schriftgröße", "8.5")
If IniRead("data\settings.ini", "Login", "Server_de", "") = "" Then IniWrite("data\settings.ini", "Login", "Server_de", "de")
If IniRead("data\settings.ini", "Login", "Server_de_login", "") = "" Then IniWrite("data\settings.ini", "Login", "Server_de_login", "http://staemme.de/")
If IniRead("data\settings.ini", "Login", "Server_de_game", "") = "" Then IniWrite("data\settings.ini", "Login", "Server_de_game", ".staemme.de")
If IniRead("data\settings.ini", "Programm", "Datenbank", "") = "" Then IniWrite("data\settings.ini", "Programm", "Datenbank", @ScriptDir & "\data\aufgaben.isl")
EndFunc
Func _IMPORTWORLDSETTINGS()
$SERVER_LOGIN = InputBox("Serveradresse", "Gebe jetzt die Adresse deines DS-Servers ein und halte dich an das Format (siehe Beispiele). Wer sich hier vertippt ist selber schuld :)" & @CRLF & "Beispiele:" & @CRLF & "www.die-staemme.de" & @CRLF & "www.staemme.ch" & @CRLF & "www.tribalwars.net" & @CRLF & "www.tribalwars.nl" & @CRLF & "www.plemiona.pl" & @CRLF & "www.tribalwars.se" & @CRLF & "www.tribalwars.com.br" & @CRLF & "www.tribos.com.pt" & @CRLF & "www.divokekmeny.cz" & @CRLF & "www.bujokjeonjaeng.kr" & @CRLF & "www.triburile.ro" & @CRLF & "www.voyna-plemyon.ru" & @CRLF & "www.fyletikesmaxes.gr" & @CRLF & "www.tribalwars.no" & @CRLF & "www.divoke-kmene.sk" & @CRLF & "www.klanhaboru.hu" & @CRLF & "www.tribalwars.dk" & @CRLF & "www.buluozhengxiong.asia" & @CRLF & "www.plemena.net", "www.die-staemme.de", "", 200, 430)
IniWrite("data\settings.ini", "Login", "Server_login", $SERVER_LOGIN)
$OIEX = _IECREATE("http://" & $SERVER_LOGIN & "/backend/get_servers.php")
If @error > 0 Then
IniDelete("data\settings.ini", "WeltInfos", "world")
MsgBox(0, "Fehler", "Konnte nicht abfragen, welche DS-Server aktiv sind. Stelle Standartwerte ein.")
IniWrite("data\settings.ini", "Login", "Server", "de")
IniWrite("data\settings.ini", "Login", "Server_login", "http://de3.die-staemme.de")
IniWrite("data\settings.ini", "Login", "Server_game", ".die-staemme.de")
IniWrite("data\settings.ini", "WeltInfos", "worlds", "de3|de4|de5|de6|de7|de8|de9|de10|de11|de12|de13|de14|de15|de16|de17|de18|de19|de20|de21|de22|de23|de24|de25|de26|de27|de28|de29|de30|de31|de32|de33|de34|dec1|des1|des2")
Else
$SHTML = _IEDOCREADHTML($OIEX)
$AREGEXP = StringRegExp($SHTML, '"(\D*?)(\d*?)"(?:.*?)"(.*?)"', 3)
$WELTEN = ""
$SERVER = InputBox("DS Serverkennung", "Gebe jetzt das 2-stellige Kürzel für die DS-Server deines Landes ein. Das sollte eigentlich immer die Endung von Internetadressen deines landes sein." & @CRLF & "Beispiele:" & @CRLF & "Deutschland: de oder des für speed-Server" & @CRLF & "Östereicht: ch" & @CRLF & "Dänemark: dk" & @CRLF & "Polen: pl", $SERVER, "", 200, 250)
For $I = 0 To UBound($AREGEXP) - 3 Step 3
$WELTEN &= $AREGEXP[$I] & $AREGEXP[$I + 1] & $TRENNER
If $AREGEXP[$I + 1] = $AKTUELLE_WELT And $AREGEXP[$I] = $SERVER Then
IniWrite("data\settings.ini", "Login", "Server", $AREGEXP[$I])
IniWrite("data\settings.ini", "Login", "Server_game", StringTrimLeft($AREGEXP[$I + 2], StringInStr($AREGEXP[$I + 2], ".") - 1))
$SERVER_GAME = IniRead("data\settings.ini", "Login", "Server_game", ".die-staemme.de")
EndIf
Next
IniWrite("data\settings.ini", "WeltInfos", "worlds", $WELTEN)
EndIf
EndFunc
[COLOR="Red"]Func SUCHEN()
$KONTINENT = InputBox("Kontinentauswahl", "Bitte Kontinent wählen (z.B.: 27)")
$RANG = InputBox("Rangauswahl", "Ab welchem Rang soll angefangen werden einzuladen (nur +-20 möglich)", 1)
$PFAD = FileSaveDialog("Datei speichern unter ...", @DesktopDir, "Textdatei (.txt)", 16, "stammlose Spieler - " & $KONTINENT & "*.txt")
$FILE = FileOpen($PFAD, 1)
$AKTUELLES_DORF = AKTUELLES_DORF()
ORTWECHSEL($AKTUELLES_DORF, "ranking&mode=con_player", $OIE1)
$OFRAME = _IEFRAMEGETOBJBYNAME($OIE1, "main")
$OKONTI = _IEGETOBJBYNAME($OFRAME, "con")
_IEFORMELEMENTSETVALUE($OKONTI, $KONTINENT)
$OOBJECTS = _IETAGNAMEGETCOLLECTION($OFRAME, "input")
For $OOBJECT In $OOBJECTS
If StringInStr($OOBJECT.value, "OK") Then
_IEACTION($OOBJECT, "click")
ExitLoop
EndIf
Next
_IELOADWAIT($OFRAME)
$OQUERY = _IEGETOBJBYNAME($OFRAME, "from")
_IEFORMELEMENTSETVALUE($OQUERY, $RANG)
$OQUERY.nextSibling.nextSibling.click()
_IELOADWAIT($OFRAME)
While 1
$HTML = _IEDOCREADHTML($OFRAME)
$HTML = StringTrimLeft($HTML, StringInStr($HTML, "Spielerrangliste") - 1)
For $I = 1 To 40 Step 2
$START = StringInStr($HTML, "id=", 0, $I + 1) + 3
$ENDE = StringInStr($HTML, ">", 0, 1, $START)
$ID = StringMid($HTML, $START, $ENDE - $START - 1)
If $ID = "" Then
$START = StringInStr($HTML, "id=", 0, $I) + 3
$ENDE = StringInStr($HTML, ">", 0, 1, $START)
$ID = StringMid($HTML, $START, $ENDE - $START - 1)
FileWriteLine($FILE, StringStripCR($ID))
EndIf
Next
If StringInStr($HTML, "nach unten") = 0 Then ExitLoop
$OOBJECTS = _IETAGNAMEGETCOLLECTION($OFRAME, "a")
$ZWEITER = 0
For $OOBJECT In $OOBJECTS
If StringInStr($OOBJECT.href, "from=") Then
If $ZWEITER = 1 Or StringInStr($HTML, "nach oben") = 0 Then
_IEACTION($OOBJECT, "click")
_IELOADWAIT($OFRAME)
ExitLoop
Else
$ZWEITER = 1
EndIf
EndIf
Next
WEnd
FileClose($FILE)
STATUS("Einladungs-Datei erstellt")
EndFunc
Func EINLADEN()
FileInstall("Hilfstool.exe", "Hilfstool.exe")
$PIDHT = Run("Hilfstool.exe")
$WARTE = 1
LABEL_WARTEN(1)
$ZAEHLER = 0
$PATH = FileOpenDialog("Datei mit stammlosen Spielern öffnen ...", @DesktopDir, "Textdatei (*.txt)", 1)
Local $AENTRIES
If _FILEREADTOARRAY($PATH, $AENTRIES) Then
_ARRAYDELETE($AENTRIES, 0)
Else
MsgBox(0, "Fehler", "beim Einlesen der Einladungs-Datei")
EndIf
$PAUSE = InputBox("Pausen zwischen den Einladungen", "Wie lang soll der Bot nach jeder Einladung warten ? (In Sekunden angeben)", "0")
$AKTUELLES_DORF = AKTUELLES_DORF()
For $LINE In $AENTRIES
ORTWECHSEL($AKTUELLES_DORF, "info_player&id=" & $LINE, $OIE1)
_IELOADWAIT($OIE1)
$OFRAME = _IEFRAMEGETOBJBYNAME($OIE1, "main")
$HTML = _IEDOCREADHTML($OFRAME)
If StringInStr($HTML, "action=invite") Then
HTML_LINK_ANKLICKEN("action=invite")
$ZAEHLER += 1
EndIf
_IELOADWAIT($OIE1)
Sleep($PAUSE * 1000)
Next
MsgBox(0, "Einladungen", "Es wurden " & $ZAEHLER & " Spieler eingeladen.")
$WARTE = 0
LABEL_WARTEN(0)
ProcessClose($PIDHT)
Sleep(1000)
FileDelete("Hilfstool.exe")
EndFunc
Func ORTWECHSEL($DORF, $ORT, $BROWSER_HANDLE, $WAIT = "")
If $SCHONMALEINGELOGGT = 0 Then EINLOGGEN()
_IELOADWAIT($BROWSER_HANDLE)
$ABX = "http://" & $SERVER & $AKTUELLE_WELT & $SERVER_GAME & "/game.php?village=" & IniRead("data\Dörfer_id.isl", "village_id", $DORF, "") & "&screen=" & $ORT
_IENAVIGATE($BROWSER_HANDLE, $ABX)
If StringInStr(_IEDOCREADHTML($BROWSER_HANDLE), "Sitzung abgelaufen") > 0 Then
EINLOGGEN()
_IELOADWAIT($BROWSER_HANDLE)
_IENAVIGATE($BROWSER_HANDLE, $ABX)
EndIf
EndFunc
Func HTML_LINK_ANKLICKEN($LINK_IM_HTML)
LABEL_WARTEN(1)
$OLINKS = _IELINKGETCOLLECTION($OFRAME)
For $OLINK In $OLINKS
If StringInStr($OLINK.href, $LINK_IM_HTML) <> 0 Then
$OLINK.click
LABEL_WARTEN(0)
Return 1
EndIf
Next
LABEL_WARTEN(0)
Return 0
EndFunc
Func _CONFIRM()
If WinExists("", "Willst du") Then
WinActivate("", "Willst du")
MsgBox(0, "", "")
EndIf
EndFunc
Func AKTUELLES_DORF()
$OFRAME = _IEFRAMEGETOBJBYNAME($OIE, "main")
$HTML = _IEDOCREADHTML($OFRAME)
$START_TITEL = (StringInStr($HTML, "<title>") + 7)
$LAENGE = StringInStr($HTML, "</title>") - $START_TITEL - 22
$AKTUELL_DORF = StringMid($HTML, $START_TITEL, $LAENGE)
Return $AKTUELL_DORF
EndFunc
Func STATUS($TEXT)
$TEXT = @HOUR & ":" & @MIN & ":" & @SEC & " " & $TEXT
GUICtrlSetData($LABEL_STATUSMELDUNG, $TEXT)
EndFunc
Func LABEL_WARTEN($WERT)
If $WERT = 1 Then
GUICtrlSetData($LABEL_WARTEN, "... Bitte Warten ...")
$PROGRESS = 0
GUICtrlSetData($PRO, 0)
GUICtrlSetState($PRO, $GUI_SHOW)
EndIf
If $WERT = 0 Then
GUICtrlSetData($LABEL_WARTEN, "")
GUICtrlSetState($PRO, $GUI_HIDE)
EndIf
EndFunc
Func _CLOSE()
If ObjName($OIE2, 3) <> "Shell.Explorer.2" Then
While ProcessExists($PID1)
ProcessClose($PID1)
WEnd
EndIf
GUIDelete($MAIN_WINDOW)
Exit
EndFunc[/COLOR]
GUIDelete()
Exit
|
|
|
07/23/2010, 15:06
|
#4
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
warte warte...
du erwartest jetz ernsthaft, dass einer von uns diesen.. 5k zeilen source nach einem fehler sucht?!
kannst du lange warten...
|
|
|
07/23/2010, 15:11
|
#5
|
elite*gold: 0
Join Date: May 2010
Posts: 36
Received Thanks: 6
|
Quote:
Originally Posted by omer36
warte warte...
du erwartest jetz ernsthaft, dass einer von uns diesen.. 5k zeilen source nach einem fehler sucht?!
kannst du lange warten...
|
Vieleicht hat ja einer Lust^^ die hoffnung stirbt zuletzt^^.
ISt ja auch nur ein kleiner Fehler. Die namen von Stammeslosen spielern werden nicht in der .txt datei gespeichert. Vieleicht haben manche Leute auch lösungen ohne sich dne script anschauen zu müssen.
mfg
|
|
|
07/23/2010, 15:14
|
#6
|
elite*gold: 0
Join Date: Mar 2009
Posts: 2,317
Received Thanks: 1,255
|
Quote:
|
ISt ja auch nur ein kleiner Fehler.
|
geh mal raus und streu ein haufen stroh vor deine tür und dazu eine nadel...
is ja nur ne kleine nadel... schnell zu finden oder?
nadann viel glück...
|
|
|
07/23/2010, 15:17
|
#7
|
elite*gold: 0
Join Date: May 2010
Posts: 36
Received Thanks: 6
|
Quote:
Originally Posted by omer36
geh mal raus und streu ein haufen stroh vor deine tür und dazu eine nadel...
is ja nur ne kleine nadel... schnell zu finden oder?
nadann viel glück...
|
Ok mache ich^^  Nein. Vieleicht nimmt sich ja einer mal die Zeit oder vieleicht findet einen ja dne fehler auf Anhieb^^ ich werde einfach mal hier mein Glück probieren^^. Und wenn es keiner macht naja auch nicht schlimm^^
|
|
|
07/23/2010, 16:09
|
#8
|
elite*gold: 184
Join Date: Nov 2009
Posts: 158
Received Thanks: 43
|
naja markier doch mal die zeile wo er es abspeichern müsste dann schaut sich das bestimmt auch jemand an wenn er nicht erstmal ne stunde danach suchen muss^^
|
|
|
07/23/2010, 16:51
|
#9
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
In der Funktion "_IMPORTWORLDSETTINGS()"
Code:
$AREGEXP = StringRegExp($SHTML, '"(\D*?)(\d*?)"(?:.*?)"(.*?)", 3)
müsste
Code:
$AREGEXP = StringRegExp($SHTML, '"(\D*?)(\d*?)"(?:.*?)"(.*?)"', 3)
heißen
3 Minuten für die Suche, 2 Minuten um den Beitrag hier zu schreiben...
|
|
|
07/23/2010, 17:23
|
#10
|
elite*gold: 0
Join Date: May 2010
Posts: 36
Received Thanks: 6
|
hi. danke erstmal aber es heißt bereits
PHP Code:
$AREGEXP = StringRegExp($SHTML, '"(\D*?)(\d*?)"(?:.*?)"(.*?)"', 3)
zeile 5685 müsste es sein wenn du den ganzen script in au3 tust.
Könnte in den zeilen der feler sein?
PHP Code:
Func SUCHEN() $KONTINENT = InputBox("Kontinentauswahl", "Bitte Kontinent wählen (z.B.: 27)") $RANG = InputBox("Rangauswahl", "Ab welchem Rang soll angefangen werden einzuladen (nur +-20 möglich)", 1) $PFAD = FileSaveDialog("Datei speichern unter ...", @DesktopDir, "Textdatei (*.txt)", 16, "stammeslose Spieler - " & $KONTINENT & ".txt") $FILE = FileOpen($PFAD, 1) $AKTUELLES_DORF = AKTUELLES_DORF() ORTWECHSEL($AKTUELLES_DORF, "ranking&mode=con_player", $OIE1) $OFRAME = _IEFRAMEGETOBJBYNAME($OIE1, "main") $OKONTI = _IEGETOBJBYNAME($OFRAME, "con") _IEFORMELEMENTSETVALUE($OKONTI, $KONTINENT) $OOBJECTS = _IETAGNAMEGETCOLLECTION($OFRAME, "input") For $OOBJECT In $OOBJECTS If StringInStr($OOBJECT.value, "OK") Then _IEACTION($OOBJECT, "click") ExitLoop EndIf Next _IELOADWAIT($OFRAME) $OQUERY = _IEGETOBJBYNAME($OFRAME, "from") _IEFORMELEMENTSETVALUE($OQUERY, $RANG) $OQUERY.nextSibling.nextSibling.click() _IELOADWAIT($OFRAME) While 1 $HTML = _IEDOCREADHTML($OFRAME) $HTML = StringTrimLeft($HTML, StringInStr($HTML, "Spielerrangliste") - 1) For $I = 1 To 40 Step 2 $START = StringInStr($HTML, "id=", 0, $I + 1) + 3 $ENDE = StringInStr($HTML, ">", 0, 1, $START) $ID = StringMid($HTML, $START, $ENDE - $START - 1) If $ID = "" Then $START = StringInStr($HTML, "id=", 0, $I) + 3 $ENDE = StringInStr($HTML, ">", 0, 1, $START) $ID = StringMid($HTML, $START, $ENDE - $START - 1) FileWriteLine($FILE, StringStripCR($ID)) EndIf Next If StringInStr($HTML, "nach unten") = 0 Then ExitLoop $OOBJECTS = _IETAGNAMEGETCOLLECTION($OFRAME, "a") $ZWEITER = 0 For $OOBJECT In $OOBJECTS If StringInStr($OOBJECT.href, "from=") Then If $ZWEITER = 1 Or StringInStr($HTML, "nach oben") = 0 Then _IEACTION($OOBJECT, "click") _IELOADWAIT($OFRAME) ExitLoop Else $ZWEITER = 1 EndIf EndIf Next WEnd FileClose($FILE) STATUS("Einladungs-Datei erstellt") EndFunc
|
|
|
07/23/2010, 17:49
|
#11
|
elite*gold: 0
Join Date: Apr 2008
Posts: 1,079
Received Thanks: 438
|
In der "_IMPORTWORLDSETTINGS()" Funktion die du am Anfang gepostet hast fehlt aber das einfache Anführungszeichen.
K.a. ob die "SUCHEN()" Funktion richtig ist. Das einzige was mir auffällt, ist die While Schleife. Wie wird reagiert wenn die beiden ExitLoop Bedingungen niemals eintreten? Bleibt der Code evntl in einer Endlosschleife hängen?
|
|
|
 |
Similar Threads
|
[FRAGE] Script-Fehler
08/11/2010 - Metin2 Private Server - 9 Replies
Hi,
ich versuche gerade ein Script zu bauen, dass die IP eines GM´s aktualisiert.
Man soll einfach seinen CharNamen und seine IP Adresse reinschreiben und dann wird sie in die gmlist eingetragen.
Leider läuft es noch ncih so wie ich will.
Hier mal der php Coder vll sieht iwer das Problem.
Und BITTE nicht kopieren und als eures ausgeben.
<?php
include('config.php');
if(isset($_POST) && $_POST == 'Register') {
$username = mysql_real_escape_string($_POST);
|
fehler im script? pls help
08/04/2010 - AutoIt - 9 Replies
hallo liebe epvper ;D
ich hab ein problem mit meinem WoW launcher den ich mir per autoit bastel
wenn ich das erste mal den button drücke dann speichert das script den pfad in eine ini und soll beim neustarten des scriptes den pfad lesen und dann auch verwenden
leider macht es das nicht und ich weiß nicht warum und deswegen will ich mir rat bei euch holen
hier das script:
(bruchteil)
|
Script hat einen Fehler!
02/18/2010 - Metin2 Private Server - 0 Replies
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\shop.php on line 13
Das kommt beim Itemshop!
Banjo hatte mir die Regi gefixxed aber
jetzt geht der Itemshop ned er meinste ein Item darin erstellen!
Aber geht ned habe zwar GM Account aber kein ADM PANEL!?
Letzens hatte ich eins.
|
Script Fehler
01/31/2010 - General Coding - 5 Replies
<html>
<title>Startseite</title>
<head>
<center>
<style type="text/css">
#header {
position:absolute;
background-img: url (img/box-bottom.png)
width:1000px;
height:160px;
|
Fehler im Script ?
10/19/2009 - AutoIt - 0 Replies
Da ich erst eine kurze Zeit mich mit Autoit beschäftige hätte ich gerne mal Hilfe von ein paar Profis. Habe für Aion einen AutoLoginBot geschrieben, welcher bisher auch relativ gut funktioniert. Er fragt beim ersten Start ein paar Daten für den AutoLogin ab wie z.B. die Accountdaten, welche verschlüsselt in die Registry eingetragen werden und sobald das Game gestartet ist entschlüsselt/ausgelesen werden. Dummerweise ist es so, das wenn ich während das Game läd, und ich das Fenster vom Game...
|
All times are GMT +1. The time now is 22:54.
|
|