#include <file.au3>
#Include <GuiListView.au3>
#include <WindowsConstants.au3>
#include <Date.au3>
Global $defaultKeyDownDelay = 100
Opt("TrayIconDebug", 1)
Opt("MustDeclareVars", 1)
Opt("WinTitleMatchMode", 3)
Opt ("SendKeyDownDelay", $defaultKeyDownDelay)
Global $PathEVE = 'C:\CCP\bin\ExeFile.exe', $WorkdirEVE = "C:\CCP\bin"
Global $DefaultEVE = '[TITLE:EVE; CLASS:triuiScreen]'
Global $PassCoord[6] = [456, 702, 570, 715, 0x242622, 10]
Global $ConnectCoord[6] = [452, 730, 570, 740, 0 , 0]
Dim $fRunIni = "RunIni.txt"
Dim $fRunClients
Dim $aRunClients[$afRunClients[1]+1][$afRunClients[2]+1]
$aRunClients[0][0] = $afRunClients[0]
$aRunClients[0][1] = $afRunClients[1]
$aRunClients[0][2] = $afRunClients[2]
Dim $Clients = $aRunClients[0][1], $ClientsSettingCount = $aRunClients[0][2]
Dim $seti=1, $client=1, $i, $iCount = $Clients*$ClientsSettingCount + 2
UpdLog('Количество :' & $iCount)
For $i = 3 to $iCount
$aRunClients[$client][$seti] = $afRunClients[$i]
UpdLog('№' & $i & ' значение: ' & $afRunClients[$i] & ' client=' & $client & ', seti=' & $seti & '. $aRunClients[x][y]=' & $aRunClients[$client][$seti])
$seti += 1
if $seti > $ClientsSettingCount Then
$seti = 1
$client += 1
EndIf
Next
Login()
Func Wait($min = 100, $max = 500)
Sleep(Random($min, $max))
EndFunc
Func Login()
Local $winPos[2]
For $i = 1 To $Clients
While Not WinExists($DefaultEVE)
Run($PathEVE, $WorkdirEVE)
WinWaitActive($DefaultEVE)
Wait(2000)
WEnd
WinActivate($DefaultEVE)
WinWaitActive($DefaultEVE)
WinSetTitle("EVE", "", $aRunClients[$i][1])
Local $handle = WinGetHandle($aRunClients[$i][1])
$winPos[0] = $aRunClients[$i][4]
$winPos[1] = $aRunClients[$i][5]
WinMove($handle, "", $winPos[0], $winPos[1])
Wait(3000,5500)
MouseMove($winPos[0]+Random($PassCoord[0], $PassCoord[2]), $winPos[1]+Random($PassCoord[1], $PassCoord[3]), Random(150, 300))
MouseClick('left')
Wait(100,300)
Send("{TAB}")
Wait(500,800)
Send("{TAB}")
Wait(500,800)
Send("{TAB}")
Wait(500,800)
Send('{SHIFTDOWN}')
Wait(300)
Send("{HOME}")
Wait(300)
Send('{SHIFTUP}')
Wait(100,300)
Send('{DEL}')
Wait(100,200)
RandomSend($aRunClients[$i][2], 250)
Wait(200,300)
Send("{TAB}")
Wait(1000, 3000)
RandomSend($aRunClients[$i][3], 350)
Wait(300, 600)
MouseMove($winPos[0]+Random($ConnectCoord[0], $ConnectCoord[2]), $winPos[1]+Random($ConnectCoord[1], $ConnectCoord[3]), Random(70, 250))
MouseClick('left')
UpdLog('Клиент '& $aRunClients[$i][1] &' загружен. Handle = '& $handle)
$aRunClients[$i][1] = $handle
Wait(1000,2000)
Next
EndFunc
Func RandomSend($string, $max=600, $min=10)
Local $var
For $i=1 To StringLen ($string)
Opt ("SendKeyDownDelay", Random($min,$max))
$var = StringMid($string, $i, 1)
Send($var)
Next
Opt ("SendKeyDownDelay", $defaultKeyDownDelay)
EndFunc
#Region - Создание и управление окном лога
Func CreateLogGUI()
Local $MainGUI = GUICreate("My GUI", 0, 0, 0, 0, $WS_POPUP)
Global $UpTime = TimerInit()
Local $Log = GUICreate("Log", 600, 200, 1026, 228, $WS_SYSMENU , -1, $MainGUI)
Global $ListView = GuiCtrlCreateListView("GTime|LTime|Событие", 0, 0, 600, 200)
_GUICtrlListView_SetColumnWidth($Listview, 2, 600)
GUICtrlSetFont(-1, 10)
WinSetOnTop($Log,"",1)
GUICtrlSetBkColor($listview, 0x000000)
GUICtrlSetColor($listview, 0xFFFFFF)
GUISetState(@SW_SHOW)
Global $LogInfo
EndFunc
Func UpdLog($Text=0)
If _GUICtrlListView_GetItemCount($listview) > 50 Then _GUICtrlListView_DeleteItem($listview, 0)
If $LogInfo <> $Text Then
$LogInfo = $Text
GuiCtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&"|"&Int(Round(TimerDiff($Uptime)/1000)/60/60)&":"&Int((Round(TimerDiff($Uptime)/1000)-Int(Round(TimerDiff($Uptime)/1000)/60/60)*3600)/60)&":"&Int(Round(TimerDiff($Uptime)/1000)-Int(Round(TimerDiff($Uptime)/1000)/60/60)*3600-Int((Round(TimerDiff($Uptime)/1000)-Int(Round(TimerDiff($Uptime)/1000)/60/60)*3600)/60)*60)&"|"& $LogInfo, $listView)
EndIf
_GUICtrlListView_Scroll($listview,0,20)
EndFunc
#EndRegion - Создание и управление окном лога