AutoItSetOption("WinTitleMatchMode", 4)
;AutoItSetOption("ExpandVarStrings", 0)
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") ; Пауза Ctrl+F9
HotKeySet("^{F10}", "_quit") ; Выход Ctrl+F10
Global $posX=0 ;Начальная позиция 1-го окна X
Global $posY=0 ;Начальная позиция 1-го окна Y
Global $RazmerX=300 ;Размер в пикселях X
Global $RazmerY=300 ;Размер в пикселях Y
Global $iPaused ;состояние паузы
Global $AllAcc=5 ;Количество Акков WoW
DIM $acc[$AllAcc+1], $pass[$AllAcc+1], $browse_wow[$AllAcc+1], $winname[$AllAcc+1] ;Создаются масивы для работы с Акками
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"Show")
TraySetClick (8)
$settings_ini = @ScriptDir & "\Settings.ini" ;Путь сохранения настроек. По умолчанию в тойже папке где скрипт
For $Winindex=1 to $ALLAcc ;Цикл в котором идет работа с ini-файлом... присвоение настроек если уже есть. иначе создает новый ini.
$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])
;MsgBox(0,"",$acc[$Winindex] & @CRLF & $pass[$Winindex] & @CRLF & $browse_wow[$Winindex] & @CRLF & $winname[$Winindex])
next
;~ While 1
;~ sleep(100)
;~ WEnd
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")
;~ WinWait("Безымянный — Блокнот")
_CheckPause()
Sleep(Random(10000, 20000))
WinSetTitle("World of Warcraft", "", $winname[$WinIndex])
;~ WinSetTitle("Безымянный — Блокнот", "", $winname[$WinIndex])
Sleep(100)
WinMove($winname[$WinIndex], "", $posX+($WinIndex-1)*300, $posY, $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