AutoItSetOption("WinTitleMatchMode", 4)
AutoItSetOption("SendKeyDelay", 20)
AutoItSetOption("SendKeyDownDelay", 20)
#include <EditConstants.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
Opt("GUIOnEventMode", 1)
Opt("TrayAutoPause", 0)
Opt("TrayOnEventMode",1)
HotKeySet("^{F9}", "_PauseScript")
HotKeySet("^{F10}", "_quit")
Global $posX=0
Global $posY=0
Global $RazmerX=300
Global $RazmerY=300
Global $iPaused
Global $AllAcc=5
DIM $acc[$AllAcc+1], $pass[$AllAcc+1], $browse_wow[$AllAcc+1], $winname[$AllAcc+1]
Dim $Pos[$AllAcc+1][2]
$yMax=Floor(@DesktopHeight/$RazmerY)
For $WinIndex=1 to $AllAcc
If $WinIndex<=$yMax Then
$Pos[$WinIndex][0]=$posX
$Pos[$WinIndex][1]=$posY+$RazmerY*($WinIndex - 1)
Else
If Floor($WinIndex/$yMax)=$WinIndex/$yMax Then
$posK=Floor($WinIndex/$yMax)-1
Else
$posK=Floor($WinIndex/$yMax)
EndIf
$Pos[$WinIndex][0]=$posX+$RazmerX*($posK)
$Pos[$WinIndex][1]=$posY+$RazmerY*($WinIndex - 1 - $yMax * $posK)
EndIf
Next
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"Show")
TraySetClick (8)
$settings_ini = @ScriptDir & "\Settings.ini"
For $Winindex=1 to $ALLAcc
$acc[$Winindex] = IniRead($settings_ini, "", "$acc" & $Winindex, "Логин не найден")
$pass[$Winindex] = IniRead($settings_ini, "", "$pass" & $Winindex, "Пароль не найден")
$browse_wow[$Winindex] = IniRead($settings_ini, "", "$browse_wow" & $Winindex, "Путь к WoW не найден")
$winname[$WinIndex] = IniRead($settings_ini, "", "$winname" & $Winindex, "WoW" & $Winindex)
IniWrite($settings_ini, "", "$acc" & $Winindex, $acc[$Winindex])
IniWrite($settings_ini, "", "$pass" & $Winindex, $pass[$Winindex])
IniWrite($settings_ini, "", "$browse_wow" & $Winindex, $browse_wow[$Winindex])
IniWrite($settings_ini, "", "$winname" & $Winindex, $winname[$Winindex])
next
Login()
Func _quit()
Exit
EndFunc
Func _PauseScript()
$iPaused = Not $iPaused
EndFunc
Func _CheckPause()
While $iPaused
Sleep(100)
WEnd
EndFunc
Func Login()
For $WinIndex=1 to 5
Run($browse_wow[$WinIndex])
WinWait("World of Warcraft")
_CheckPause()
Sleep(Random(10000, 20000))
WinSetTitle("World of Warcraft", "", $winname[$WinIndex])
Sleep(100)
WinMove($winname[$WinIndex], "", $pos[$WinIndex][0], $pos[$WinIndex][1], $RazmerX, $RazmerY)
_CheckPause()
Sleep(5000)
_CheckPause()
Sleep(Random(1000, 5000))
$temp = ClipGet()
ClipPut($acc[$WinIndex])
Sleep(100)
ControlSend($winname[$WinIndex], "", 0, "{CTRLDOWN}v{CTRLUP}")
ClipPut($temp)
_CheckPause()
Sleep(1000)
ControlSend($winname[$WinIndex], "", "", "{TAB}")
_CheckPause()
Sleep(1000)
ClipPut($pass[$WinIndex])
_CheckPause()
Sleep(500)
ControlSend($winname[$WinIndex], "", 0, "{CTRLDOWN}v{CTRLUP}")
ClipPut($temp)
_CheckPause()
Sleep(1000)
ControlSend($winname[$WinIndex], "", "", "{ENTER}")
_CheckPause()
Sleep(3000)
If $WinIndex = 1 Then
ControlSend($winname[$WinIndex], "", "", "{ENTER}")
_CheckPause()
Sleep(3000)
ElseIf $WinIndex = 2 Then
ControlSend($winname[$WinIndex], "", "", "{DOWN}")
_CheckPause()
Sleep(1000)
ControlSend($winname[$WinIndex], "", "", "{ENTER}")
ElseIf $WinIndex = 3 Then
ControlSend($winname[$WinIndex], "", "", "{DOWN 2}")
_CheckPause()
Sleep(1000)
ControlSend($winname[$WinIndex], "", "", "{ENTER}")
ElseIf $WinIndex = 4 Then
ControlSend($winname[$WinIndex], "", "", "{DOWN 3}")
_CheckPause()
Sleep(1000)
ControlSend($winname[$WinIndex], "", "", "{ENTER}")
ElseIf $WinIndex = 5 Then
ControlSend($winname[$WinIndex], "", "", "{DOWN 4}")
_CheckPause()
Sleep(1000)
ControlSend($winname[$WinIndex], "", "", "{ENTER}")
EndIf
_CheckPause()
Next
EndFunc