Что нового

[ВКонтакте: Великий Кутюрье] Бот. Как сделать два GUI рядом друг с другом

dvj_frost

Новичок
Сообщения
4
Репутация
1
Здравствуйте! Я только начал изучать Autoit. Требуется помощь в создании GUI для бота.
Приложение в ВК: app3558100
Вот код бота:
Код:
#include <WinAPI.au3>
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
#include <ImageSearch.au3>
#include <Array.au3>
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
#Include <GUIConstants.au3>
#Include <EditConstants.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Date.au3>
#include <GuiStatusBar.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#Include <IE.au3>
#Include <ComboConstants.au3>
#Include <GDIPlus.au3>
#NoTrayIcon


If WinExists(@ScriptName) Then 
	MsgBox(16, "Ошибка!", "Уже бот уже запущен!")
	Exit
EndIf
AutoItWinSetTitle(@ScriptName) 

Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1 + 2)
Opt("GUIOnEventMode", 1)

HotKeySet("{ESC}", "_Pause")
HotKeySet("{F1}", "_nullitem")
HotKeySet("{F2}", "_Scrn")
HotKeySet("{F3}", "_dopitem1")
HotKeySet("{F4}", "_limitozyfunc")
HotKeySet("{F5}", "_botinfo")
HotKeySet("{F6}", "_Exit")
HotKeySet("{F7}", "About")
HotKeySet("{F8}", "_obnovit")

Dim $sDirPath = @ScriptDir & "\Screen\"
TraySetIcon("icon.ico")
Global $main = 0
Global $moneta = 0
Global $x
Global $y
Global $dohod = 0
Global $prodaga = 0
Global $golosovanie = 0
Global $novuroven = 0
Global $zabratsebe = 0
Global $horosho = 0
Global $otmena = 0
global $r1 = 1280
global $r2 = 800
global $Color = 0xFEE27B ;Это цвет
global $Dip_Col = 2 ;Допустимое несовпадение цвета от указанного
Global $sum
Global $poputki = 20
Global $kolpop
Global $error
Global $error2
Global $error3
Global $kopeika
Global $data
Global $i
Global $dostij
Global $goloskonkurs
Global $dialog
Global $poiskz1
Global $poiskz2
Global $poiskz3
Global $poiskz4
Global $poiskz5
Global $x1p1
Global $y1p1
Global $x2p1
Global $y2p1
Global $x1p2
Global $y1p2
Global $x2p2
Global $y2p2
Global $x1p3
Global $y1p3
Global $x2p3
Global $y2p3
Global $x1p4
Global $y1p4
Global $x2p4
Global $y2p4
Global $x1p5
Global $y1p5
Global $x2p5
Global $y2p5
Global $ban
Global $perx1
Global $pery1
Global $perx2
Global $pery2
Global $perx3
Global $pery3
Global $perx4
Global $pery4
Global $perx5
Global $pery5
Global $konkurs
Global $golosovanieok
Global $prodagaok
Global $click = 0
Global $clickend = 0
Global $reg
Global $oldclick
Global $n = 1
Global $vremyadohoda = 0
Global $otkrdostij = 0
Global $clickfas = 0
Global $clickuzor = 0
Global $clickcvfason = 0
Global $clickcvuzor = 0
Global $clickjornal = 0
Global $clickkniga = 0
Global $clicktrening = 0
Global $clickvideo = 0
Global $clickkurs = 0
Global $golosovanievkonkurse
Global $prodagavmagazine
Global $Paused
Global $limitozy = 500
Global $s_Percent
Global $s_Percent1
Global $oIE = ObjCreate("Shell.Explorer.2")
Global Const $SC_DRAGMOVE = 0xF012

DirCreate("C:\ScreenBot")
$LogFile = "C:\ScreenBot\Log.txt"
if Not FileExists($LogFile) Then
   _FileCreate($LogFile)
EndIf



TraySetToolTip ("Бот для Великий Кутюрье!")
TraySetClick(4+8)
TraySetState()

$pauseitem = TrayCreateItem("Бот нормально работает!")
TrayCreateItem("")
$infoitem = TrayCreateItem("Посмотреть информацию о работе")
$dopitem1 = TrayCreateItem("Изменить количество кликов...")
$limozyitem = TrayCreateItem("Изменить обьем ОЗУ...")
$nullitem = TrayCreateItem("Обнулить значения магазина и голосования")
TrayCreateItem("")
$dopitem = TrayCreateMenu("Дополнительно")
TrayCreateItem("")
$Radio = TrayCreateMenu("Обновлять страницу приложения?", $dopitem)
$iRadio1 = TrayCreateItem("Обновлять   ", $Radio, 1, 1)
$iRadio2 = TrayCreateItem("Не обновлять", $Radio, 2, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$Viklcomp = TrayCreateMenu("Завершение работы бота ", $dopitem)
$iRadio3 = TrayCreateItem("Закрыть все программы", $Viklcomp, 1, 1)
$iRadio4 = TrayCreateItem("Закрыть все программы и выключить ПК", $Viklcomp, 2, 1)
$iRadio5 = TrayCreateItem("Закрыть бота", $Viklcomp, 3, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$pokazlog = TrayCreateMenu("Показывать лог при выходе", $dopitem)
$iRadio6 = TrayCreateItem("Показывать", $pokazlog, 1, 1)
$iRadio7 = TrayCreateItem("Не показывать", $pokazlog, 2, 1)
TrayItemSetState(-1, $TRAY_CHECKED)


$scrnitem = TrayCreateItem("Сделать скриншот!", $dopitem)
$activationitem = TrayCreateItem("Активация...")
$aboutitem = TrayCreateItem(("О программе"))
TrayCreateItem("")
$exititem = TrayCreateItem("Выход")

TrayItemSetOnEvent($limozyitem, "_limitozyfunc")
TrayItemSetOnEvent($iRadio6, "_pokazlog")
TrayItemSetOnEvent($iRadio7, "_pokazlog")
TrayItemSetOnEvent($iRadio3, "_Vikl1")
TrayItemSetOnEvent($iRadio4, "_Vikl1")
TrayItemSetOnEvent($iRadio5, "_Vikl1")
TrayItemSetOnEvent($infoitem, "_botinfo")
TrayItemSetOnEvent($dopitem1, "_dopitem1")
TrayItemSetOnEvent($iRadio1, "_radiocheck")
TrayItemSetOnEvent($iRadio2, "_radiocheck")
TrayItemSetOnEvent($nullitem, "_nullitem")
TrayItemSetOnEvent($scrnitem, "_Scrn")
TrayItemSetOnEvent($activationitem, "_activation")
TrayItemSetOnEvent($aboutitem, "About")
TrayItemSetOnEvent($exititem, "_Exit")

;E70BB5DA-F7CB-DB4C-6C99-1A00FC136456

if _WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)) = "{E70BB5DA-F7CB-DB4C-6C99-1A00FC136456}" = False Then
   MsgBox(16,"Не зарегестрированая версия!","Программа будет делать ограниченое количество операций!"& @CRLF & "После нажатия кнопки <ОК>, бот начнет работать через 10 сек.")
    _register()
	$reg = 0
Else
	$reg = 1	
	_clickend()
EndIf

Func _iegame()
   GUICreate("Бот для Великий Кутюрье", 806, 710, 0, 0)   
   GUICtrlCreateObj($oIE, -195, -230, 1100, 1050)
   GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
   GUISetOnEvent($GUI_EVENT_MINIMIZE, "_Pause")   
   GUISetState()
   _IENavigate($oIE, "https://vk.com/app3558100")
   EndFunc
   
_iegame()
Sleep(10000)
TrayTip ( "Начинаю работать!", "Количество кликов: " & $clickend, 10, 1)
Sleep(1000)

Func _Pause()    
	TrayTip ( "Работа бота приостановлена...", "Для продолжения работы нажмите ESC", 10, 1)
	TrayItemSetText($pauseitem, "Работа бота приостановлена!")
	TraySetIcon("pause.ico")
	GUISetState(@SW_HIDE)
	    $Paused = Not $Paused	
    While $Paused	
		Sleep(1000)		
	WEnd	
	 TrayTip ( "Продолжаю работать!", "Количество кликов: " & $clickend, 10, 1)
	 TrayItemSetText($pauseitem, "Бот нормально работает!")
	 TraySetIcon("icon.ico")
	 GUISetState(@SW_SHOW)
EndFunc


While 1		
   $ban = _ImageSearch($sDirPath & "ban.bmp", 1, $x, $y, 75)
   if $ban = 1 Then
	  TrayTip ( "Диалог:", "На Вашем акаунте замечена подозрительная активность...", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  _Horosho()
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
   EndIf

   $dialog = _ImageSearch($sDirPath & "dialog.bmp", 1, $x, $y, 150)
if $dialog = 1 Then
	  $dohod = _ImageSearch($sDirPath & "dohod.bmp", 1, $x, $y, 75)
   if $dohod = 1 Then
	  TrayTip ( "Диалог:", "Пришло время дохода!", 10, 16)
	  Sleep(Random(1000, 5000, 1))
	  $vremyadohoda += 1
	  _Horosho()
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   $prodaga = _ImageSearch($sDirPath & "prodaga.bmp", 1, $x, $y, 75)
   if $prodaga = 1 Then
	  TrayTip ( "Диалог:", "Продажа одежды завершена!", 10, 16)
	  Sleep(Random(1000, 5000, 1))
	  _Horosho()
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
	  $prodagaok = 1
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   $golosovanie = _ImageSearch($sDirPath & "golosovanie.bmp", 1, $x, $y, 75)
   if $golosovanie = 1 Then
	  TrayTip ( "Диалог:", "Голосование завершено!", 10, 16)
	  Sleep(Random(1000, 5000, 1))
	  _Horosho()
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
	  $golosovanieok = 1
	  Sleep(Random(1000, 2000, 1))
  EndIf
 
   $novuroven = _ImageSearch($sDirPath & "novuroven.bmp", 1, $x, $y, 75)
   if $novuroven = 1 Then
	  TrayTip ( "Диалог:", "Новый этап в мастерстве!", 10, 16)
	  Sleep(Random(1000, 2000, 1))

Local $fason, $fx, $fy, $uzor, $ux, $uy, $cvetodejdu, $cox, $coy, $cvetuzora, $cux, $cuy, $clickuroven, $clicknafason

   	  $fason = _ImageSearch($sDirPath & "fason.bmp", 1, $fx, $fy, 75) ; поиск фасон
   if $fason = 1 Then
	  $clicknafason = PixelSearch( $fx + 102, $fy - 16, $fx + 342 , $fy + 24, 0xFFDD57, $Dip_Col) ; ищет пиксель
    If IsArray($clicknafason) = True Then
        MouseMove($clicknafason[0], $clicknafason [1] + 20, 1)
		MouseClick('left',$clicknafason[0], $clicknafason [1] + 20)
		$clickuroven = 1	    
	    Sleep(Random(1000, 3000, 1))
	    MouseMove(1, 1, 10)
	    Sleep(Random(1000, 2000, 1))
     EndIf ; кликаю на фасон
 EndIf
 
   	  $uzor = _ImageSearch($sDirPath & "uzor.bmp", 1, $ux, $uy, 75) ; поиск узор
   if $uzor = 1 Then
	  MouseClick('left',$ux + 170, $uy) ; кликаю на узор
	  $clickuroven = 2	  
	  Sleep(Random(1000, 3000, 1))
	  MouseMove(1, 1, 10)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   	  $cvetodejdu = _ImageSearch($sDirPath & "cvetodejdu.bmp", 1, $cox, $coy, 75) ; поиск цвет одежды
   if $cvetodejdu = 1 Then
	  MouseClick('left',$cox + 175, $coy) ; кликаю на цвет одежды
	  $clickuroven = 3	  
	  Sleep(Random(1000, 3000, 1))
	  MouseMove(1, 1, 10)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   	  $cvetuzora = _ImageSearch($sDirPath & "cvetuzora.bmp", 1, $cux, $cuy, 75) ; поиск цвет узора
   if $cvetuzora = 1 Then
	  MouseClick('left',$cux + 180, $cuy) ; кликаю на цвет узора
	  $clickuroven = 4	  
	  Sleep(Random(1000, 3000, 1))
	  MouseMove(1, 1, 10)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   if $clickuroven = 1 Then
	  $clickfas += 1
	  TrayTip ( "Реакция:", "Выбран новый фасон!", 10, 16)
   ElseIf $clickuroven = 2 Then
	  $clickuzor += 1
	  TrayTip ( "Реакция:", "Выбран новый узор!", 10, 16)
   ElseIf $clickuroven = 3 Then
	  $clickcvfason += 1
	  TrayTip ( "Реакция:", "Выбран новый цвет одежды!", 10, 16)
   ElseIf $clickuroven = 4 Then
	  $clickcvuzor += 1
	  TrayTip ( "Реакция:", "Выбран новый цвет узора!", 10, 16)
   EndIf

	  Sleep(Random(1000, 2000, 1))
EndIf

   $zabratsebe = _ImageSearch($sDirPath & "zabratsebe.bmp", 1, $x, $y, 75)
   if $zabratsebe = 1 Then
	  TrayTip ( "Диалог:", "Утащить к себе!", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  _Otmena()
	  TrayTip ( "Реакция:", "Нажал кнопку <ОТМЕНА>!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   $dostij = _ImageSearch($sDirPath & "dostij.bmp", 1, $x, $y, 75)
   if $dostij = 1 Then
	  TrayTip ( "Диалог:", "Открыто новое достижение!", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  $otkrdostij +=1
	  _Scrn()
	  _Horosho()
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   $error = _ImageSearch($sDirPath & "error.bmp", 1, $x, $y, 75)
   if $error = 1 Then
	  TrayTip ( "Диалог:", "Ошибка подключения к серверу!", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
	   _obnovit()
	  MouseMove(1, 1, 10)
  EndIf
  
   $error2 = _ImageSearch($sDirPath & "error2.bmp", 1, $x, $y, 75)
   if $error2 = 1 Then
	  TrayTip ( "Диалог:", "Ошибка ввода\вывода!", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
	   _obnovit()
	  MouseMove(1, 1, 10)
  EndIf
  
   $error3 = _ImageSearch($sDirPath & "error3.bmp", 1, $x, $y, 75)
   if $error3 = 1 Then
	  TrayTip ( "Диалог:", "Вы кликаете не по монете!", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
	   _obnovit()
	  MouseMove(1, 1, 10)
  EndIf
  
   $goloskonkurs = _ImageSearch($sDirPath & "goloskonkurs.bmp", 1, $x, $y, 75)
   if $goloskonkurs = 1 Then
	  TrayTip ( "Диалог:", "Кто то из конкурсантов, за которых вы голосовали, занял...", 10, 16)
	  Sleep(Random(1000, 3000, 1))
	  _Horosho()
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
	  Sleep(Random(1000, 2000, 1))
   EndIf
EndIf

   ;$konkurs = _ImageSearch($sDirPath & "konkurs.bmp", 1, $x, $y, 75)
  ; if $konkurs = 1 Then
	;  TrayTip ( "Открыта страница конкурса...", "Страница конкурса!", 10, 16)
	;  Sleep(Random(1000, 5000, 1))
 ;  EndIf

  ; Sleep(100)

   $download = _ImageSearch($sDirPath & "download.bmp", 1, $x, $y, 75)
   if $download = 1 Then
	  TrayTip ( "Жду загрузки приложения...", "Страница загрузки приложения!", 10, 16)
	  Sleep(Random(1000, 5000, 1))
   EndIf

   $main = _ImageSearch($sDirPath & "main.bmp", 1, $x, $y, 75)
   if $main = 1 Then
	  Sleep(1000)
   EndIf

   $moneta = _ImageSearch($sDirPath & "moneta.bmp", 1, $x, $y, 75)
   if $moneta = 1 Then
	  Sleep(100)
   Else
	  $moneta = 0
  EndIf
  
   $sum = $moneta + $main + $download + TrayItemGetState($iRadio2)
   if $sum = 68 Then
	  $kolpop = $poputki - 1
	  TrayTip ( "Не найдена страница с игрой...", "Следущая попытка через 10 секунд... Количество попыток до обновления страницы браузера: " & $kolpop, 10, 16)
	  Sleep(10000)
	  $poputki = $kolpop
   Else
	  Sleep(100)
	  $kolpop = 20
	  $poputki = 20
   EndIf
if $moneta = 1 Then
	  $kopeika = _ImageSearch($sDirPath & "kopeika.bmp", 1, $x, $y, 100)
      if $kopeika = 1 Then
	     MouseMove($x, $y, 1)
	     MouseClick('left',$x, $y)
	     TrayTip ( "Ура!!!", "Я нашел монетку!", 10, 16)
         Sleep(Random(1000, 5000, 1))
	     $click += 1
	 EndIf	  
      MouseMove(1, 1, 10)
  EndIf
 _memoryoutobn() 
Sleep(Random(1000, 5000, 1))
if $dialog <= $main Then
	   $glavmenu = _ImageSearch($sDirPath & "glavmenu.bmp", 1, $x, $y, 75)
   if $glavmenu = 1 Then
	  ;TrayTip ( "Найдено элемент!", "Главное меню!", 10, 16)
	  $x1p1 = $x - 15
	  $y1p1 = $y + 95
	  $x2p1 = $x + 35
	  $y2p1 = $y + 140

	  $x1p2 = $x - 15
	  $y1p2 = $y + 180
	  $x2p2 = $x + 35
	  $y2p2 = $y + 220

	  $x1p3 = $x - 15
	  $y1p3 = $y + 265
	  $x2p3 = $x + 35
	  $y2p3 = $y + 310

	  $x1p4 = $x - 15
	  $y1p4 = $y + 355
	  $x2p4 = $x + 35
	  $y2p4 = $y + 400

	  $x1p5 = $x - 15
	  $y1p5 = $y + 445
	  $x2p5 = $x + 35
	  $y2p5 = $y + 480

	  If $golosovanieok = 1 Then
	  $golosovanievkonkurse = "Завершено"
   Else
	  $golosovanievkonkurse = "Не завершено"
   EndIf

   If $prodagaok = 1 Then
	  $prodagavmagazine = "Завершена"
   Else
	  $prodagavmagazine = "Не завершена"
  EndIf

TrayTip("Состояние бота", "1. Сделано кликов "& $click & " из " & $clickend & @CRLF & "2. Продажа одежды: "& $prodagavmagazine & @CRLF &"3. Голосование в конкурсе: "& $golosovanievkonkurse & @CRLF &"4. Количество доходов: " & $vremyadohoda & @CRLF &"5. Кол-во элементов нового уровня: "& $clickfas + $clickuzor + $clickcvfason + $clickcvuzor & " шт"& @CRLF &"6. Открыто достижений: " & $otkrdostij, 10, 16)
Sleep(Random(5000, 6000, 1))

	  $poiskz1 = PixelSearch( $x1p1, $y1p1, $x2p1, $y2p1, 0x983366, $Dip_Col) ; ищет пиксель первой картинки
    If IsArray($poiskz1) = True Then
	   TrayTip ( "Активность кнопки набора опыта!", "Почитать журналы о моде", 10, 16)
	   Sleep(Random(1000, 10000, 1))
	   $perx1 = Random($x1p1, $x2p1, 1)
	   $pery1 = Random($y1p1, $y2p1, 1)
        MouseMove($perx1, $pery1, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx1, $pery1)
		$clickjornal += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz2 = PixelSearch( $x1p2, $y1p2, $x2p2, $y2p2, 0x416919, $Dip_Col) ; ищет пиксель второй картинки
    If IsArray($poiskz2) = True Then
	   TrayTip ( "Активность кнопки набора опыта!", "Прочитать книгу о кройке и шитье", 10, 16)
	   Sleep(Random(1000, 10000, 1))
        $perx2 = Random($x1p2, $x2p2, 1)
	    $pery2 = Random($y1p2, $y2p2, 1)
        MouseMove($perx2, $pery2, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx2, $pery2)
		$clickkniga += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz3 = PixelSearch( $x1p3, $y1p3, $x2p3, $y2p3, 0xFCEED5, $Dip_Col) ; ищет пиксель третьей картинки
    If IsArray($poiskz3) = True Then
	   TrayTip ( "Активность кнопки набора опыта!", "Потренироваться делать выкройки", 10, 16)
	   Sleep(Random(1000, 10000, 1))
        $perx3 = Random($x1p3, $x2p3, 1)
	    $pery3 = Random($y1p3, $y2p3, 1)
        MouseMove($perx3, $pery3, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx3, $pery3)
		$clicktrening += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz4 = PixelSearch( $x1p4, $y1p4, $x2p4, $y2p4, 0xD4D5D4, $Dip_Col) ; ищет пиксель четвертой картинки
    If IsArray($poiskz4) = True Then
	   TrayTip ( "Активность кнопки набора опыта!", "Посмотреть видео уроки в интернете", 10, 16)
	   Sleep(Random(1000, 10000, 1))
        $perx4 = Random($x1p4, $x2p4, 1)
	    $pery4 = Random($y1p4, $y2p4, 1)
        MouseMove($perx4, $pery4, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx4, $pery4)
		$clickvideo += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz5 = PixelSearch( $x1p5, $y1p5, $x2p5, $y2p5, 0x161718, $Dip_Col) ; ищет пиксель пятой картинки
    If IsArray($poiskz5) = True Then
	   TrayTip ( "Активность кнопки набора опыта!", "Сходить на курсы кройки и шитья", 10, 16)
	    Sleep(Random(1000, 10000, 1))
        $perx5 = Random($x1p5, $x2p5, 1)
	    $pery5 = Random($y1p5, $y2p5, 1)
        MouseMove($perx5, $pery5, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx5, $pery5)
		$clickkurs += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf
  EndIf
EndIf
    if $kolpop = 0 Then
	  TrayTip ( "Не найдены страницы игры!", "Обновление страницы браузера!", 10, 16)
	 _obnovit()
	  MouseMove(1, 1, 1)
	  $kolpop = 20
	  $poputki = 20
   EndIf
   if $clickend == $click Then
	  _Exitok()
   EndIf
   Sleep(100)   
WEnd

Func _dopitem1()
if $reg = 1 Then
   $oldclick = $clickend
   $clickend1 = 0
Do
   $clickend = InputBox("Изменение количества кликов", "Пожалуйста введите нужное количество кликов:", "", " M3", 300, 140, Default, Default, 0)

  if @error == 1 Then
   $clickend = $oldclick
   TrayTip ( "Отмена...", "Количество кликов не изменено и составляет: " & $clickend, 10, 1)
  EndIf
  $clickend1 = Number($clickend)
  if Not StringIsDigit($clickend) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $clickend1 = 0
   EndIf
  Until $clickend1 > 0

  if $oldclick <> $clickend Then
  TrayTip ( "Изменено количество кликов!", "Новой количество кликов: " & $clickend, 10, 1)
  EndIf
Else
   TrayTip ( "Не зарегестрированная версия программы!", "В незарегестрированной версии не возможно изменить количество кликов. Программа сделает " & $clickend & " кликов и завершит свою работу!", 10, 1)
EndIf

   EndFunc

Func _radiocheck()
   if TrayItemGetState($iRadio1) = 65 Then
	  MsgBox(64, "Обновлять?", "Если бот не определит страницу, он автоматически попытается обновить ее через 20 попыток...")
   EndIf

   if TrayItemGetState($iRadio2) = 65 Then
	  MsgBox(64, "Обновлять?", "Если бот не определит страницу, он дальше продолжит свою работу!")
   EndIf
   EndFunc

Func _botinfo()
   If $golosovanieok = 1 Then
	  $golosovanievkonkurse = "Завершено"
   Else
	  $golosovanievkonkurse = "Не завершено"
   EndIf

   If $prodagaok = 1 Then
	  $prodagavmagazine = "Завершена"
   Else
	  $prodagavmagazine = "Не завершена"
   EndIf

   MsgBox(64, "Состояние бота", "Состояние бота: "& @CRLF & @CRLF &"1. Сделано кликов "& $click & " из " & $clickend & @CRLF & "          Прочитать журналы о моде: " & $clickjornal & @CRLF & "          Прочитать книгу о кройке и шитье: " & $clickkniga & @CRLF & "          Потренироваться делать выкройки: " & $clicktrening & @CRLF & "          Посмотреть видео уроки в интернете: " & $clickvideo & @CRLF & "          Сходить на курсы кройки и шитья: " & $clickkurs & @CRLF & @CRLF &"2. Продажа одежды в магазине: "& $prodagavmagazine & @CRLF & @CRLF &"3. Голосование в конкурсе: "& $golosovanievkonkurse & @CRLF & @CRLF &"4. Количество доходов: " & $vremyadohoda & @CRLF & @CRLF &"5. Количество элементов нового уровня:"& @CRLF & "         Фасоны: " & $clickfas & " шт"& @CRLF & "         Узоры: " & $clickuzor & " шт"& @CRLF & "         Цвета одежды: " & $clickcvfason & " шт"& @CRLF & "         Цвета узоров: " & $clickcvuzor & " шт"& @CRLF & @CRLF &"6. Открыто достижений: " & $otkrdostij )

   EndFunc

Func _nullitem()
   $golosovanieok = 0
   $prodagaok = 0
   Msgbox(64,"Обнуление...","Обнулены состояния магазина и продажи!", 2)
   EndFunc

Func _activation()
   if $reg = 1 Then
	  Msgbox(64,"Активация!","Вы используете полную версию программы! Активация не требуется!")
   Else
	  _register()
   EndIf
EndFunc

Func About()
    Msgbox(64,"Бот для игры Великий Кутюрье!","Горячие клавишы:" & @CRLF & @CRLF & "ESC - Пауза" & @CRLF & "F1 - Обнулить значения магазина и продажи" & @CRLF & "F2 - Создать скриншот" & @CRLF & "F3 - Изменить количество кликов" & @CRLF & "F4 - Изменить количество ОЗУ" & @CRLF & "F5 - Информация о проделанной работе" & @CRLF & "F6 - Выход из программы" & @CRLF & "F7 - Вызов этого окна")
EndFunc

Func _Scrn()
if FileExists("C:\ScreenBot") Then
   _ScreenCapture_Capture("C:\ScreenBot\Scr " & $n & " DATE " & @MDAY & @MON & @YEAR & " TIME " & @HOUR & @MIN & @SEC & ".bmp",0,0,-1,-1,True)
   TrayTip("Создан скриншот!", "Скриншот сохранен на диске C!", 10, 1)
   $n +=1
Else
   DirCreate("C:\ScreenBot")
   _ScreenCapture_Capture("C:\ScreenBot\Scr " & $n & " DATE " & @MDAY & @MON & @YEAR & " TIME " & @HOUR & @MIN & @SEC & ".bmp",0,0,-1,-1,True)
   TrayTip("Создан скриншот!", "Скриншот сохранен на диске C!", 10, 1)
   $n +=1
EndIf
EndFunc

Func _Exit()
   TrayTip ( "До встречи...", "Бот завершает свою работу!", 10, 1)
   _zapvlog()
   Sleep(1000)
   if TrayItemGetState ($iRadio6) = 65 Then
   Run("notepad.exe C:\ScreenBot\Log.txt")
   EndIf   
   _Vikl()
EndFunc

Func _Exitok()
   TrayTip ( "До встречи...", "Бот завершает свою работу!", 10, 1)
   _zapvlog()
   Sleep(1000)
   if TrayItemGetState ($iRadio6) = 65 Then
   Run("notepad.exe C:\ScreenBot\Log.txt")
   EndIf   
   _Vikl()
EndFunc

Func _Horosho()
   $horosho = _ImageSearch($sDirPath & "horosho.bmp", 1, $x, $y, 75)
   if $horosho = 1 Then
	  MouseClick('left',$x, $y)
	  Sleep(Random(500, 1000, 1))
	  MouseMove($x - 100, $y, 10)
   EndIf
EndFunc

Func _Otmena()
   $otmena = _ImageSearch($sDirPath & "otmena.bmp", 1, $x, $y, 75)
   if $otmena = 1 Then
	  MouseClick('left',$x, $y)
	  Sleep(Random(500, 1000, 1))
	  MouseMove($x - 100, $y, 10)
   EndIf
EndFunc

Func _obnovit()
	GUIDelete()
	;$oIE.Refresh
	Sleep(3000)
	_iegame()
EndFunc


Func _obnovit1()
   Local $obn
   $obn = _ImageSearch($sDirPath & "obn.bmp", 1, $x, $y, 100)
   if $obn = 1 Then
	  TrayTip ( "Обновляю страницу с игрой...", "...", 10, 16)
	  MouseMove($x, $y, 1)
	  MouseClick('left',$x, $y)
      Sleep(1000)
  Else
	  $oIE.Refresh
	  Send("{F5}")
	  Sleep(1000)
   EndIf
EndFunc

Func _clickend()
   $clickend1 = 0

Do
   $clickend = InputBox("Привет!", "После нажатия кнопки <ОК>, бот начнет работать через 10 сек."& @CRLF &"Пожалуйста введите нужное количество кликов: ", "", " M3", 300, 150, Default, Default, 0)

if @error == 1 Then
   _exit()
EndIf
$clickend1 = Number($clickend)
if Not StringIsDigit($clickend) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $clickend1 = 0
   EndIf
Until $clickend1 > 0

EndFunc

Func _register()
   InputBox('Ваш уникальный ID:',"Скопируйте ID и отправте его разработчику для регистрации:",_WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)),'',280,130)
 if @error == 1 Then
    _exit()
 EndIf
     $clickend = 10
EndFunc

Func _Vikl()
   if TrayItemGetState ($iRadio3) = 65 Then
	  MsgBox(64, "Бот завершил свою работу!", "Бот успешно совершил все клики и завершил свою работу!" & @CRLF & "После нажатия кнопки <ОК>, бот закроет все активные программы!", 10)
	  GUIDelete()
	  _ShutDown(3)
	  Exit
   ElseIf TrayItemGetState ($iRadio4) = 65 Then
	  MsgBox(64, "Бот завершил свою работу!", "Бот успешно совершил все клики и завершил свою работу!" & @CRLF & "После нажатия кнопки <ОК>, бот выключит ПК!", 10)
	  GUIDelete()
	  _ShutDown(1)
	  Exit
   ElseIf TrayItemGetState ($iRadio5) = 65 Then
	  ;MsgBox(64, "Бот завершил свою работу!", "Бот завершил свою работу!", 5)	  
	  GUIDelete()
	  Exit
   EndIf
EndFunc

Func _Vikl1()
   if TrayItemGetState ($iRadio3) = 65 Then
	  MsgBox(64, "Что делать?", "После завершения работы, бот закроет все активные программы!")
   ElseIf TrayItemGetState ($iRadio4) = 65 Then
	  MsgBox(64, "Что делать?", "После завершения работы, бот выключит ПК!")
   ElseIf TrayItemGetState ($iRadio5) = 65 Then
	  MsgBox(64, "Что делать?", "Только завершение работы бота!")
   EndIf
EndFunc

Func _zapvlog()
   FileOpen($LogFile, 1)
   _FileWriteLog($LogFile, @CRLF & "------------------------------ Лог ------------------------------------"& @CRLF & @CRLF &"1. Сделано кликов "& $click & " из " & $clickend & @CRLF & "          Прочитать журналы о моде: " & $clickjornal & @CRLF & "          Прочитать книгу о кройке и шитье: " & $clickkniga & @CRLF & "          Потренироваться делать выкройки: " & $clicktrening & @CRLF & "          Посмотреть видео уроки в интернете: " & $clickvideo & @CRLF & "          Сходить на курсы кройки и шитья: " & $clickkurs & @CRLF & @CRLF &"2. Продажа одежды в магазине: "& $prodagavmagazine & @CRLF & @CRLF &"3. Голосование в конкурсе: "& $golosovanievkonkurse & @CRLF & @CRLF &"4. Количество доходов: " & $vremyadohoda & @CRLF & @CRLF &"5. Количество элементов нового уровня:"& @CRLF & "         Фасоны: " & $clickfas & " шт"& @CRLF & "         Узоры: " & $clickuzor & " шт"& @CRLF & "         Цвета одежды: " & $clickcvfason & " шт"& @CRLF & "         Цвета узоров: " & $clickcvuzor & " шт"& @CRLF & @CRLF &"6. Открыто достижений: " & $otkrdostij & @CRLF & "-----------------------------------------------------------------------")
   FileClose($LogFile)
EndFunc

Func _pokazlog()
   if TrayItemGetState ($iRadio6) = 65 Then
	  MsgBox(64, "Что делать?", "После завершения работы, бот покажет лог работы!")
   ElseIf TrayItemGetState ($iRadio7) = 65 Then
	  MsgBox(64, "Что делать?", "После завершения работы, бот не будет показывать лог работы!")
   EndIf
   EndFunc
   
   Func _memoryoutobn()	   
	   
   If _ProcessGetMemory("plugin-container.exe") > 0 Then
	   TrayTip ( "Проверка памяти", "Вы используете браузер Mozilla Firefox." & @CRLF & "Используется памяти: " & _ProcessGetMemory("plugin-container.exe")/1000 & " Mb из " & $limitozy & " Mb", 10, 16)
   ElseIf _ProcessGetMemory("Bot.exe") > 0 Then
	   TrayTip ( "Проверка памяти", "Используется памяти: " & _ProcessGetMemory("Bot.exe")/1000 & " Mb из " & $limitozy & " Mb", 10, 16)
   Else
	   TrayTip ( "Проверка памяти", "Вы используете неизвестный браузер, или браузер не запущен!"& @CRLF &"Рекомендуется для использования браузер Mozilla Firefox!", 10, 16)
   EndIf
   
	   if _ProcessGetMemory("plugin-container.exe") > $limitozy*1000 Then
		   TrayTip ( "Обновляю страницу с игрой...", "Превышен лимит памяти ОЗУ..." & _ProcessGetMemory("plugin-container.exe") & "Kb", 10, 16)
		   Sleep(Random(5000, 10000))
		   _obnovit()
	   ElseIf _ProcessGetMemory("Bot.exe") > $limitozy*1000 Then
		   TrayTip ( "Обновляю страницу с игрой...", "Превышен лимит памяти ОЗУ..." & _ProcessGetMemory("Bot.exe") & "Kb", 10, 16)
		   Sleep(Random(5000, 10000))
		   _obnovit()
	   EndIf   
   
   EndFunc
   
   Func _limitozyfunc()
if $limitozy <> 0 Then		   
   $oldlimitozy = $limitozy
   $limitozy1 = 0
Do
   $limitozy = InputBox("Изменение количества ОЗУ", "Пожалуйста, введите обьем ОЗУ который не следует превышать браузеру < в мегабайтах >, сейчас обьем равен: "& $limitozy & " Mb", "", " M3", 300, 150, Default, Default, 0)

  if @error == 1 Then
   $limitozy = $oldlimitozy
   TrayTip ( "Отмена...", "Обьем ОЗУ не изменен и составляет: " & $limitozy & " Mb", 10, 1)
  EndIf
  $limitozy1 = Number($limitozy)
  if Not StringIsDigit($limitozy) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $limitozy1 = 0
   EndIf
  Until $limitozy1 > 0

  if $oldlimitozy <> $limitozy Then
  TrayTip ( "Изменен обьем ОЗУ!", "Новый обьем ОЗУ: " & $limitozy & " Mb", 10, 1)
  EndIf
EndIf
EndFunc


   

;============================================================================================================================================
Func _ShutDown($SMETHOD, $SLEAVEOPEN = "Program Manager")
	$I = 1
	If Not IsArray($SLEAVEOPEN) Then $SLEAVEOPEN = StringSplit($SLEAVEOPEN, '|')
	$SWINDOWS = WinList()
	While 1
		$FCLOSE = True
		If $SWINDOWS[$I][0] <> "" And BitAND( WinGetState($SWINDOWS[$I][1]), 2) And $SWINDOWS[$I][0] <> "Program Manager" Then
			If $SMETHOD == 4 Then
				For $X = 1 To $SLEAVEOPEN[0]
					If StringInStr($SWINDOWS[$I][0], $SLEAVEOPEN[$X]) <> 0 Then $CLOSE = False
				Next
				If $FCLOSE Then WinClose($SWINDOWS[$I][0])
			Else
				WinClose($SWINDOWS[$I][0])
			EndIf
		EndIf
		$I += 1
		If $I == $SWINDOWS[0][0] Then
			If $SMETHOD == 0 Or $SMETHOD == 1 Or $SMETHOD == 2 Then Shutdown(Int($SMETHOD))
			ExitLoop
		EndIf
	WEnd
EndFunc

Func _ProcessGetMemory($nPID)
    Local Const $PROCESS_QUERY_INFORMATION = 0x400
    Local Const $PROCESS_VM_READ = 0x10

    ;get process ID
    If IsString($nPID) Then $nPID = ProcessExists($nPID)
    If $nPID = 0 Then Return -1

    ;get process handle, required for GetProcessMemoryInfo
    $aRet = DllCall("Kernel32.dll", "int", "OpenProcess", "dword", _
        $PROCESS_QUERY_INFORMATION+$PROCESS_VM_READ, "dword", False, "dword", $nPID)
    If @error Or ($aRet[0] = 0) Then Return -1

    $hProc = $aRet[0]

    ;create PPROCESS_MEMORY_COUNTERS to receive data, required for GetProcessMemoryInfo
    $structPROCESS_MEMORY_COUNTERS = DllStructCreate("dword;dword;uint peakmemsize;uint memsize;uint;uint;uint;uint;uint;uint")
    $nSize = DllStructGetSize($structPROCESS_MEMORY_COUNTERS)

    ;call GetProcessMemoryInfo
    $aRet = DllCall("Psapi.dll", "int", "GetProcessMemoryInfo", _
        "hwnd", $hProc, "ptr", DllStructGetPtr($structPROCESS_MEMORY_COUNTERS), "dword", $nSize)

    ;close process handle
    DllCall("Kernel32.dll", "int", "CloseHandle", "hwnd", $hProc)

    ;return memory size in kb
    Return DllStructGetData($structPROCESS_MEMORY_COUNTERS, "memsize") / 1024
EndFunc

Некоторые функци взяты из этого форума.

При запуске бота, запускается окно с игрой и он начинает нормально работать.
Вопрос: как сделать рядом с этим окном, еще одно окно с настройками, которые можно изменять в любой момент(как настройки в трее)?
 

Вложения

  • Files.7z
    160.6 КБ · Просмотры: 5

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Тебе надо использовать либо AdlibRegister, обрабатывая события окна настроек в отдельном потоке и изменяя настройки которые должны будут храниться в глобальных переменных, либо использовать опцию GUIOnEventMode. Очень удобная опция кстати, рекомендую ознакомиться. Гуй будет реагировать на нажатия кнопок независимо висит он где-то в цикле или нет.
 
Автор
D

dvj_frost

Новичок
Сообщения
4
Репутация
1
Спасибо! GUIOnEventMode действительно очень интересная штука! Начал изучение...
А не подскажите, как сделать синхронизацию Radio в меню с Radio в трее?
 

Belfigor

Модератор
Локальный модератор
Сообщения
3,608
Репутация
941
Вероятнее всего с помощью
Код:
GUICtrlSetState
 

dstasv

Новичок
Сообщения
45
Репутация
1
А зачем у тебя проверка на мозилу?
Если создавать окно ИЕ и не закрывать старую сессию, то он будет заходить в него сам.
Или что бы твоего бота юзать пользователю надо спецом ставить мозилу? Какой смысл. Зачем так пользователя привязывать?
А таймера не хотел использовать зачем постоянно серчить картинки? в этой игре почти все на таймерах сделано все кнопки и т.п.
Игра на доход и время, а ты рандомными паузами круто все затягиваешь.
Соответственно рабочее время затянуто, доход не полный который бы мог быть.
И если прикрутить инфу по работе с основным окном будет гораздо удобней.
вот один из примеров
http://autoit-script.ru/index.php?topic=19508.msg116685#msg116685
 
Автор
D

dvj_frost

Новичок
Сообщения
4
Репутация
1
Проверка на Мозилу нужна была когда не было окна IE (забыл убрать :stars:smile:. Рандомные паузы нужны как раз для затягивания процесса (потому что без них через 2 суток работы бота, дают предупреждение, что играет не человек).
Плюс это еще далеко не окончательный вариант (я ж только учусь :smile:, читаю справку, пробую различные варианты).
По поводу использование таймеров: это не подходит, потому что игра часто вылетает или вносят обновления и нужно следить за состоянием окна. Он постоянно ищет всего несколько картинок и в зависимости от результата их поиска начинает(или не начинает) искать следующие картинки.
 

dstasv

Новичок
Сообщения
45
Репутация
1
Простоял твой бот с 22 до 6 утра.
потом что то подвисло перестал реагировать на что либо, через какоето время отвисло.
В логе не хватает время старта, что бы понимать какой промежуток он простоял понят КПД.
Про рандомные паузы это понятно они должны быть просто их надо немного уменьшить.
Через 2е суток можно делать релогин на несколько минут и думаю этого будет достаточно что бы уже решили что человек.
Из замеченного:
после какого времени игры картинка игры сдвигается вправо наверно пиксела на 5-8 относительно окна бота
Мышка зачем то летает в левый верхний угол.
Не хватает паузы которая не закрывала бы окно игры, что бы можно было бы потыкать самому.
кстати предупреждения могли быть как раз из-за того что через чур затянута пауза при поиске монетки. У меня сначала жало сразу, а потом уже явно под конец, предупреждение довольно долго мигало, раз даже не выдержал сам жмякнул.
У самого написана жмякалка тока не через имедж серчь, а через пиксел серчь, вот у нее как раз через 3-5 часов почему-то не находило и вываливалось сообщение что "вы не человек".
 
Автор
D

dvj_frost

Новичок
Сообщения
4
Репутация
1
Как ни странно у меня тоже сегодня первый раз глюканул он :blink:, до этого неделю работал нормально...
По поводу картинки: не замечал сдвигов.
Мышка улетает для того чтобы не закрывать игровое поле (сделал так после того как она оставалась на месте и перекрывала диалоги).
Паузу - сделал.
"Жмякалка" через PixelSearch не катит, потому что модельки на фоне попадаются с таким же цветом и клики соответственно идут все мимо монетки + сообщение что "вы не человек". Поэтому "Жмякалка" через ImageSearch.

Подредактировал код:
Теперь почему то во время паузы нельзя выйти из бота через "крестик" в GUI, через трей - нормально.
Глюк с кнопкой паузы (когда сворачиваешь окно с IE, срабатывает пауза (так и должно быть). Но когда окно разворачиваешь на место и нажимаешь выход из паузы, окно сворачивается и разворачивается опять :stars:.

Может есть какие варианты?

Исправленный код (еще в работе):
Код:
#include <WinAPI.au3>
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
#include <ImageSearch.au3>
#include <Array.au3>
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
#Include <GUIConstants.au3>
#Include <EditConstants.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Date.au3>
#include <GuiStatusBar.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#Include <IE.au3>
#Include <ComboConstants.au3>
#Include <GDIPlus.au3>
#include <ButtonConstants.au3>

If WinExists(@ScriptName) Then 										; Проверка на повторный запуск программы
	MsgBox(16, "Ошибка!", "Уже бот уже запущен!")
	Exit
EndIf
AutoItWinSetTitle(@ScriptName) 

Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1 + 2)
Opt("GUIOnEventMode", 1)
TraySetToolTip ("Бот для Великий Кутюрье!")
TraySetClick(4+8)
TraySetState()

;=================================Обьявление переменных==================
Dim $sDirPath = @ScriptDir & "\Screen\"            					 ; Папка с файлами картинок
if Not FileExists("C:\ScreenBot") Then DirCreate("C:\ScreenBot")	 ; Папка сохранение скриншотов
TraySetIcon("icon.ico")												 ; Иконка в трее
Global $n = 1														 ; Начальная нумерация скриншотов
Global $Dip_Col = 2 												 ; Допустимое несовпадение цвета от указанного
Global $clickjornal = 0
Global $clickkniga = 0
Global $clicktrening = 0
Global $clickvideo = 0
Global $clickkurs = 0
Global $ban
Global $dialog
Global $clickfas = 0
Global $clickuzor = 0
Global $clickcvfason = 0
Global $clickcvuzor = 0
Global $main
Global $moneta
Global $download
Global $x
Global $y
Global $click = 0													 ; Сделано кликов
Global $clickend = 25   											 ; Запланировано кликов
Global $Paused														 ; Переменная паузы
Global $limitozy = 500												 ; Лимит ОЗУ
Global $oIE = ObjCreate("Shell.Explorer.2")							 ; Обьект браузер
Global $golosovanieok
Global $prodagaok
Global $reg
Global $otkrdostij = 0												 ; Открыто достижений
Global $vremyadohoda = 0											 ; Количество доходов
Global $Form2
Global $Init = 0
Global $kolpop = 60
Global $LabelText
Global $tmp = 0

;===============================Горячие клавиши=========================
HotKeySet("{ESC}", "_Pause")



;=================================Gui====================================
$Form1 = GUICreate("Бот для Великий Кутюрье!", 421, 654, 811, 0)
GUISetBkColor(0x0000FF)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
$Group1 = GUICtrlCreateGroup("Завершение работы", 224, 392, 185, 81)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Radio1 = GUICtrlCreateRadio("Выключить ПК", 248, 416, 113, 17)
GUICtrlSetOnEvent(-1, "Radio1Click")
$Radio2 = GUICtrlCreateRadio("Закрыть программу", 248, 440, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetOnEvent(-1, "Radio2Click")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Обновление страницы", 224, 480, 185, 81)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Radio3 = GUICtrlCreateRadio("Обновлять", 248, 504, 113, 17)
GUICtrlSetOnEvent(-1, "Radio3Click")
$Radio4 = GUICtrlCreateRadio("Не обновлять", 248, 528, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetOnEvent(-1, "Radio4Click")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Старт", 8, 600, 403, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("Активация", 8, 560, 179, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
$Button3 = GUICtrlCreateButton("Количество кликов", 8, 520, 179, 25)
GUICtrlSetOnEvent(-1, "Button3Click")
$Button4 = GUICtrlCreateButton("Лимит ОЗУ", 8, 480, 179, 25)
GUICtrlSetOnEvent(-1, "Button4Click")
$Button5 = GUICtrlCreateButton("Обновить окно", 8, 400, 179, 25)
GUICtrlSetOnEvent(-1, "Button5Click")
$Button6 = GUICtrlCreateButton("Обнулить магазин и голосование", 8, 440, 179, 25)
GUICtrlSetOnEvent(-1, "Button6Click")
$Label1 = GUICtrlCreateLabel("", 16, 48, 387, 342)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("Текущее состояние", 80, 0, 262, 43)
GUICtrlSetFont(-1, 24, 800, 4, "Ariston")
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
$Label3 = GUICtrlCreateLabel("Проверка памяти: пока доступна только в "& @CRLF&"IE и Mozilla Firefox.", 16, 312, 392, 63)
GUICtrlSetFont(-1, 12, 800, 0, "Arial")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
$Checkbox1 = GUICtrlCreateCheckbox("Использовать IE", 248, 568, 161, 17)


;=============================Трей=================================

$MenuItem1 = TrayCreateMenu("Дополнительно")
$MenuItem8 = TrayCreateMenu("Завершение работы", $MenuItem1)
$MenuItem9 = TrayCreateItem("Выключить ПК", $MenuItem8, 1, 1)
TrayItemSetOnEvent(-1, "MenuItem9Click")
$MenuItem10 = TrayCreateItem("Закрыть программу", $MenuItem8, 2, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
TrayItemSetOnEvent(-1, "MenuItem10Click")
$MenuItem7 = TrayCreateMenu("Обновление страницы", $MenuItem1)
$MenuItem11 = TrayCreateItem("Обновлять ", $MenuItem7, 1, 1)
TrayItemSetOnEvent(-1, "MenuItem11Click")
$MenuItem12 = TrayCreateItem("Не обновлять", $MenuItem7, 2, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
TrayItemSetOnEvent(-1, "MenuItem12Click")
TrayCreateItem("")
$MenuItem2 = TrayCreateItem("Изменить количество кликов")
TrayItemSetOnEvent(-1, "Button3Click")
$MenuItem3 = TrayCreateItem("Изменить обьем ОЗУ")
TrayItemSetOnEvent(-1, "Button4Click")
$obnull = TrayCreateItem("Обнулить значение магазина и продажи")
TrayItemSetOnEvent(-1, "Button6Click")
TrayCreateItem("")
$MenuItem4 = TrayCreateItem("Активация...")
TrayItemSetOnEvent(-1, "Button2Click")
$MenuItem5 = TrayCreateItem("О программе")
TrayItemSetOnEvent(-1, "MenuItem5Click")
TrayCreateItem("")
$MenuItem6 = TrayCreateItem("Выход")
TrayItemSetOnEvent(-1, "Form1Close")

;========================================Проверка железа====================================
if _WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)) = "{E70BB5DA-F7CB-DB4C-6C99-1A00FC136456}" = False Then
	GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetState($Button4, $GUI_DISABLE)
	TrayItemSetState($MenuItem2, $TRAY_DISABLE)
	TrayItemSetState($MenuItem3, $TRAY_DISABLE)
	$reg = 0
   MsgBox(16,"Не зарегестрированая версия!","Программа будет делать ограниченое количество операций!")   	
Else
	$reg = 1	
EndIf
;========================================Функци GUI и Трея===================================

Func Button1Click()					    ; Старт
$Init = 1
EndFunc

Func Button2Click()					    ; Кнопка активации
_activation()
EndFunc

Func Button3Click()						; Количество кликов
_clickend()
EndFunc

Func Button4Click()						; Количество ОЗУ
_limitozyfunc()
EndFunc

Func Button5Click()                     ;Обновить окно
_obnovit()
EndFunc

Func Button6Click()						; Обнулить
_nullitem()
EndFunc

Func Form1Close()
TrayTip ( "До встречи...", "Бот завершает свою работу!", 10, 1)
GUIDelete()
Sleep(1000)
Exit
EndFunc

Func Form1Minimize()
GUISetState(@SW_MINIMIZE, $Form1)
EndFunc

Func Form2Minimize()
_pause()
GUISetState(@SW_MINIMIZE, $Form2)
EndFunc

Func Form2Restore()	 
GUISetState(@SW_RESTORE, $Form2)
EndFunc

Func Form1Restore()
GUISetState(@SW_RESTORE, $Form1)
EndFunc

Func MenuItem5Click()						; О программе

EndFunc

Func MenuItem9Click()
GUICtrlSetState($Radio1, $GUI_CHECKED)
GUICtrlSetState($Radio2, $GUI_UNCHECKED)
EndFunc

Func MenuItem10Click()
GUICtrlSetState($Radio2, $GUI_CHECKED)
GUICtrlSetState($Radio1, $GUI_UNCHECKED)
EndFunc

Func Radio1Click()
TrayItemSetState($MenuItem9, $TRAY_CHECKED)
TrayItemSetState($MenuItem10, $TRAY_UNCHECKED)
EndFunc

Func Radio2Click()
TrayItemSetState($MenuItem10, $TRAY_CHECKED)
TrayItemSetState($MenuItem9, $TRAY_UNCHECKED)
EndFunc

Func Radio3Click()										; Радио обновлять
TrayItemSetState($MenuItem11, $TRAY_CHECKED)
TrayItemSetState($MenuItem12, $TRAY_UNCHECKED)
EndFunc

Func Radio4Click()										; Радио необновлять
TrayItemSetState($MenuItem12, $TRAY_CHECKED)
TrayItemSetState($MenuItem11, $TRAY_UNCHECKED)
EndFunc

Func MenuItem11Click()									; Радио обновлять в трее
GUICtrlSetState($Radio3, $GUI_CHECKED)
GUICtrlSetState($Radio4, $GUI_UNCHECKED)
EndFunc

Func MenuItem12Click()									; Радио необновлять в трее
GUICtrlSetState($Radio4, $GUI_CHECKED)
GUICtrlSetState($Radio3, $GUI_UNCHECKED)
EndFunc

;========================================================Основной цикл============================================

GUICtrlSetState($Button5, $GUI_DISABLE)
GUISetState(@SW_SHOW, $Form1)
_botinfo()
While 1
	Sleep(10)
	If $Init Then
        _Start()
        $Init = 0    
	EndIf	
WEnd

Func _Start()														; Функция запуска бота
 If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then
  GUICtrlSetState($Button1, $GUI_DISABLE)
  GUICtrlSetState($Button5, $GUI_ENABLE)
  GUICtrlSetState($Checkbox1, $GUI_DISABLE)
  _iegame()
  Else
  GUICtrlSetState($Button1, $GUI_DISABLE)
  GUICtrlSetState($Button5, $GUI_DISABLE) 
  GUICtrlSetState($Checkbox1, $GUI_DISABLE)
  TrayTip ( "Начинаю работать!", "ПОЖАЛУЙСТА, ОТКРОЙТЕ БРАУЗЕР С ИГРОЙ!"&@CRLF&"Количество кликов: " & $clickend, 10, 1)
  Sleep(5000)
EndIf

Sleep(1000)

Do  
  _proverkanaban()
  Sleep(100)
  _proverkanadialog()
  Sleep(100)
  _poiskstr()	
  Sleep(100)
  _memoryoutobn()  
  Sleep(100)
  _botinfo()
	if $dialog <= $main Then
		_poiskzadach()
	EndIf	
  _checkobn()  
Until $click = $clickend
  _Exit()
EndFunc


;========================================================Основные Функции=============================================
Func _proverkanaban()                                                ; Проверка на существования сообщения о Подозрительной активности	
   $ban = _ImageSearch($sDirPath & "ban.bmp", 1, $x, $y, 75)
   if $ban = 1 Then	
	TrayTip ( "Диалог:", "На Вашем акаунте замечена подозрительная активность...", 10, 16)	   
	  _Horosho()	  
	TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
   EndIf
EndFunc

Func _proverkanadialog()                                             ; Проверка на существования диалогов
	$dialog = _ImageSearch($sDirPath & "dialog.bmp", 1, $x, $y, 150)
   if $dialog = 1 Then
	  _tipdialoga()
   EndIf
EndFunc

Func _tipdialoga()                                                   ; Проверка типа диалога и ответ на него
	Local $dohod, $prodaga, $golosovanie, $novuroven, $zabratsebe, $dostij, $goloskonkurs, $error, $error2, $error3
	
	$dohod = _ImageSearch($sDirPath & "dohod.bmp", 1, $x, $y, 75)	 ; Диалог "Пришло время дохода" --> Кнопка Хорошо
   if $dohod = 1 Then	
	  TrayTip ( "Диалог:", "Пришло время дохода!", 10, 16)	   
	  _Horosho()  	  
	  $vremyadohoda += 1
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf
  
  $prodaga = _ImageSearch($sDirPath & "prodaga.bmp", 1, $x, $y, 75)   ; Диалог "Продажа одежды завершена!" --> Кнопка Хорошо
   if $prodaga = 1 Then	 
	  TrayTip ( "Диалог:", "Продажа одежды завершена!", 10, 16)	   
	  _Horosho()	
	  $prodagaok = 1
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf
  
  $golosovanie = _ImageSearch($sDirPath & "golosovanie.bmp", 1, $x, $y, 75)     ; Диалог "Голосование завершено!" --> Кнопка Хорошо
   if $golosovanie = 1 Then	
	  TrayTip ( "Диалог:", "Голосование завершено!", 10, 16)	   
	  _Horosho()	 	  
	  $golosovanieok = 1
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf
  
  $novuroven = _ImageSearch($sDirPath & "novuroven.bmp", 1, $x, $y, 75)       ; Диалог "Новый этап в мастерстве!" --> Функция выбора нового элемента (_newlevel)
   if $novuroven = 1 Then
	  TrayTip ( "Диалог:", "Новый этап в мастерстве!", 10, 16)	   
	  _newlevel()	  
   EndIf
  
  $zabratsebe = _ImageSearch($sDirPath & "zabratsebe.bmp", 1, $x, $y, 75)      ; Диалог "Утащить к себе!" --> Кнопка ОТМЕНА
   if $zabratsebe = 1 Then	
      TrayTip ( "Диалог:", "Утащить к себе!", 10, 16)	   
	  _Otmena()	  
	  TrayTip ( "Реакция:", "Нажал кнопку <ОТМЕНА>!", 10, 16)
  EndIf
  
  $dostij = _ImageSearch($sDirPath & "dostij.bmp", 1, $x, $y, 75)              ; Диалог "Открыто новое достижение!" --> Сделать скрин и Кнопка Хорошо
   if $dostij = 1 Then
	  TrayTip ( "Диалог:", "Открыто новое достижение!", 10, 16)	   
	  _Scrn()
	  _Horosho()	  
	  $otkrdostij += 1
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf
  
  $goloskonkurs = _ImageSearch($sDirPath & "goloskonkurs.bmp", 1, $x, $y, 75)   ; Диалог "Кто то из конкурсантов, за которых вы голосовали, занял..." --> Кнопка Хорошо
   if $goloskonkurs = 1 Then	  
	  TrayTip ( "Диалог:", "Кто то из конкурсантов, за которых вы голосовали, занял...", 10, 16)
	  _Horosho()	  
	  TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
   EndIf
  
  ;============Далоги ошибок========================
  
   $error = _ImageSearch($sDirPath & "error.bmp", 1, $x, $y, 75)				; Диалог "Ошибка подключения к серверу!" --> Обновить страницу
   if $error = 1 Then
	   TrayTip ( "Диалог:", "Ошибка подключения к серверу!", 10, 16)	   
	   _obnovit()	  
	   TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
   EndIf
  
   $error2 = _ImageSearch($sDirPath & "error2.bmp", 1, $x, $y, 75)				; Диалог "Ошибка ввода\вывода!" --> Обновить страницу
   if $error2 = 1 Then	  
	   TrayTip ( "Диалог:", "Ошибка ввода\вывода!", 10, 16)
	   _obnovit()	
	   TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)	   
   EndIf
  
   $error3 = _ImageSearch($sDirPath & "error3.bmp", 1, $x, $y, 75)				; Диалог "Вы кликаете не по монете!" --> Обновить страницу
   if $error3 = 1 Then	  
	   TrayTip ( "Диалог:", "Вы кликаете не по монете!", 10, 16)
	   _obnovit()	   
	   TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
   EndIf
    
EndFunc

Func _newlevel()													 ; Функция выбора нового элемента  (ответ на диалог)
	Local $fason, $fx, $fy, $uzor, $ux, $uy, $cvetodejdu, $cox, $coy, $cvetuzora, $cux, $cuy, $clickuroven, $clicknafason
	Sleep(Random(100, 500, 1))
   	  $fason = _ImageSearch($sDirPath & "fason.bmp", 1, $fx, $fy, 75) ; Поиск надписи "Фасон" 
   if $fason = 1 Then	   
	  $clicknafason = PixelSearch( $fx + 102, $fy - 16, $fx + 342 , $fy + 24, 0xFFDD57, $Dip_Col) ; Поиск "Нового фасона"
		If IsArray($clicknafason) = True Then
			MouseMove($clicknafason[0], $clicknafason [1] + 20, 1)
			MouseClick('left',$clicknafason[0], $clicknafason [1] + 20)
			$clickuroven = 1	    
			Sleep(Random(1000, 3000, 1))
			MouseMove(1, 1, 10)
			Sleep(Random(1000, 2000, 1))
		EndIf 
	EndIf
 
   	  $uzor = _ImageSearch($sDirPath & "uzor.bmp", 1, $ux, $uy, 75) ; Поиск надписи "Узор" 
   if $uzor = 1 Then
	  MouseClick('left',$ux + 170, $uy) ; Кликаю на узор
	  $clickuroven = 2	  
	  Sleep(Random(1000, 3000, 1))
	  MouseMove(1, 1, 10)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   	  $cvetodejdu = _ImageSearch($sDirPath & "cvetodejdu.bmp", 1, $cox, $coy, 75) ; Поиск надписи "Цвет одежды"
   if $cvetodejdu = 1 Then
	  MouseClick('left',$cox + 175, $coy) ; Кликаю на цвет одежды
	  $clickuroven = 3	  
	  Sleep(Random(1000, 3000, 1))
	  MouseMove(1, 1, 10)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   	  $cvetuzora = _ImageSearch($sDirPath & "cvetuzora.bmp", 1, $cux, $cuy, 75) ; Поиск надписи "Цвет узора"
   if $cvetuzora = 1 Then
	  MouseClick('left',$cux + 180, $cuy) ; Кликаю на цвет узора
	  $clickuroven = 4	  
	  Sleep(Random(1000, 3000, 1))
	  MouseMove(1, 1, 10)
	  Sleep(Random(1000, 2000, 1))
  EndIf
  
   if $clickuroven = 1 Then												; Проверка на каком элементе закончился выбор
	  $clickfas += 1
	  TrayTip ( "Реакция:", "Выбран новый фасон!", 10, 16)
   ElseIf $clickuroven = 2 Then
	  $clickuzor += 1
	  TrayTip ( "Реакция:", "Выбран новый узор!", 10, 16)
   ElseIf $clickuroven = 3 Then
	  $clickcvfason += 1
	  TrayTip ( "Реакция:", "Выбран новый цвет одежды!", 10, 16)
   ElseIf $clickuroven = 4 Then
	  $clickcvuzor += 1
	  TrayTip ( "Реакция:", "Выбран новый цвет узора!", 10, 16)
   EndIf
   Sleep(Random(100, 500, 1))
EndFunc
	
Func _Horosho()														 ; Функция выбора кнопки Хорошо  (ответ на диалог)
	Local $horosho
   $horosho = _ImageSearch($sDirPath & "horosho.bmp", 1, $x, $y, 75)
   if $horosho = 1 Then
	  Sleep(Random(100, 500, 1))
	  MouseClick('left',$x, $y)	  
	  Sleep(Random(500, 1000, 1))
	  MouseMove($x - 100, $y, 10)
	  Sleep(Random(100, 500, 1))
   EndIf
EndFunc

Func _Otmena()														 ; Функция выбора кнопки Отмена  (ответ на диалог)
	Local $otmena
   $otmena = _ImageSearch($sDirPath & "otmena.bmp", 1, $x, $y, 75)
   if $otmena = 1 Then
	  Sleep(Random(100, 500, 1))
	  MouseClick('left',$x, $y)	  
	  Sleep(Random(500, 1000, 1))
	  MouseMove($x - 100, $y, 10)
	  Sleep(Random(100, 500, 1))
   EndIf
EndFunc

Func _poiskzadach()												     ; Функция поиска и выбора кнопок набора опыта
	Local $poiskz1, $poiskz2, $poiskz3, $poiskz4, $poiskz5, $x1p1, $y1p1, $x2p1, $y2p1, $x1p2, $y1p2, $x2p2, $y2p2, $x1p3, $y1p3, $x2p3, $y2p3, $x1p4, $y1p4, $x2p4, $y2p4, $x1p5, $y1p5, $x2p5, $y2p5
	Local $perx1, $pery1, $perx2, $pery2, $perx3, $pery3, $perx4, $pery4, $perx5, $pery5, $glavmenu
		
	$glavmenu = _ImageSearch($sDirPath & "glavmenu.bmp", 1, $x, $y, 75)  ; Поиск кнопки меню и отсчет координат кнопок набора опыта
if $glavmenu = 1 Then	  
	  $x1p1 = $x - 15
	  $y1p1 = $y + 95
	  $x2p1 = $x + 35
	  $y2p1 = $y + 140

	  $x1p2 = $x - 15
	  $y1p2 = $y + 180
	  $x2p2 = $x + 35
	  $y2p2 = $y + 220

	  $x1p3 = $x - 15
	  $y1p3 = $y + 265
	  $x2p3 = $x + 35
	  $y2p3 = $y + 310

	  $x1p4 = $x - 15
	  $y1p4 = $y + 355
	  $x2p4 = $x + 35
	  $y2p4 = $y + 400

	  $x1p5 = $x - 15
	  $y1p5 = $y + 445
	  $x2p5 = $x + 35
	  $y2p5 = $y + 480
	  
	  $poiskz1 = PixelSearch( $x1p1, $y1p1, $x2p1, $y2p1, 0x983366, $Dip_Col)           ; Поиск пикселя по заданым координатам первой картинки
    If IsArray($poiskz1) = True Then
		TrayTip ( "Активность кнопки набора опыта!", "Почитать журналы о моде", 10, 16)
	    Sleep(Random(1000, 10000, 1))
	    $perx1 = Random($x1p1, $x2p1, 1)
	    $pery1 = Random($y1p1, $y2p1, 1)
        MouseMove($perx1, $pery1, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx1, $pery1)
		$clickjornal += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz2 = PixelSearch( $x1p2, $y1p2, $x2p2, $y2p2, 0x416919, $Dip_Col) 			; Поиск пикселя по заданым координатам второй картинки
    If IsArray($poiskz2) = True Then	   
		TrayTip ( "Активность кнопки набора опыта!", "Прочитать книгу о кройке и шитье", 10, 16)
	    Sleep(Random(1000, 10000, 1))
        $perx2 = Random($x1p2, $x2p2, 1)
	    $pery2 = Random($y1p2, $y2p2, 1)
        MouseMove($perx2, $pery2, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx2, $pery2)
		$clickkniga += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz3 = PixelSearch( $x1p3, $y1p3, $x2p3, $y2p3, 0xFCEED5, $Dip_Col) 			; Поиск пикселя по заданым координатам третьей картинки
    If IsArray($poiskz3) = True Then	   
		TrayTip ( "Активность кнопки набора опыта!", "Потренироваться делать выкройки", 10, 16)
	    Sleep(Random(1000, 10000, 1))
        $perx3 = Random($x1p3, $x2p3, 1)
	    $pery3 = Random($y1p3, $y2p3, 1)
        MouseMove($perx3, $pery3, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx3, $pery3)
		$clicktrening += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz4 = PixelSearch( $x1p4, $y1p4, $x2p4, $y2p4, 0xD4D5D4, $Dip_Col) 			; Поиск пикселя по заданым координатам четвертой картинки
    If IsArray($poiskz4) = True Then	   
		TrayTip ( "Активность кнопки набора опыта!", "Посмотреть видео уроки в интернете", 10, 16)
	    Sleep(Random(1000, 10000, 1))
        $perx4 = Random($x1p4, $x2p4, 1)
	    $pery4 = Random($y1p4, $y2p4, 1)
        MouseMove($perx4, $pery4, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx4, $pery4)
		$clickvideo += 1
		Sleep(Random(1000, 3000, 1))
	 EndIf

	 $poiskz5 = PixelSearch( $x1p5, $y1p5, $x2p5, $y2p5, 0x161718, $Dip_Col) 				; Поиск пикселя по заданым координатам пятой картинки
    If IsArray($poiskz5) = True Then	   
		TrayTip ( "Активность кнопки набора опыта!", "Сходить на курсы кройки и шитья", 10, 16)
	    Sleep(Random(1000, 10000, 1))
        $perx5 = Random($x1p5, $x2p5, 1)
	    $pery5 = Random($y1p5, $y2p5, 1)
        MouseMove($perx5, $pery5, 1)
		Sleep(Random(500, 3000, 1))
		MouseClick('left', $perx5, $pery5)
		$clickkurs += 1
		Sleep(Random(1000, 3000, 1))
	EndIf
	
EndIf	  
EndFunc

Func _poiskstr()													 ; Функция определение страницы игры
	Local $kopeika
	
	$download = _ImageSearch($sDirPath & "download.bmp", 1, $x, $y, 75)					; Определение страницы загрузки
   if $download = 1 Then
	  TrayTip ( "Жду загрузки приложения...", "Страница загрузки приложения!", 10, 16)
	  Sleep(Random(1000, 5000, 1))
   EndIf

   $main = _ImageSearch($sDirPath & "main.bmp", 1, $x, $y, 75)							; Определение главной страницы
   if $main = 1 Then
	  Sleep(1000)
   EndIf

   $moneta = _ImageSearch($sDirPath & "moneta.bmp", 1, $x, $y, 75)						; Определение страницы с монеткой
   if $moneta = 1 Then	  
	  $kopeika = _ImageSearch($sDirPath & "kopeika.bmp", 1, $x, $y, 100)				; Поиск монетки и клик по ней
      if $kopeika = 1 Then
	     MouseMove($x, $y, 1)
	     MouseClick('left',$x, $y)	     
		 TrayTip ( "Ура!!!", "Я нашел монетку!", 10, 16)
         Sleep(Random(3000, 6000, 1))
	     $click += 1
	  EndIf	  
      MouseMove(1, 1, 10)
   Else
	  $moneta = 0
   EndIf
  
EndFunc


;========================================================Дополнительные функци==========================================

Func _Scrn()   														 ; Функция для создания скриншота
   _ScreenCapture_Capture("C:\ScreenBot\Scr " & $n & " DATE " & @MDAY & @MON & @YEAR & " TIME " & @HOUR & @MIN & @SEC & ".bmp",0,0,-1,-1,True)   
   $n +=1
   TrayTip("Создан скриншот!", "Скриншот сохранен на диске C!", 10, 1)
EndFunc

Func _Pause()    													 ; Фукция паузы
	TrayTip ( "Работа бота приостановлена...", "Для продолжения работы нажмите ESC", 10, 1)
	TraySetIcon("pause.ico")	
	    $Paused = Not $Paused	
    While $Paused	
		Sleep(1000)		
	WEnd	 	 
	 TraySetIcon("icon.ico")	 
	 TrayTip ( "Продолжаю работать!", "Количество кликов: " & $clickend, 10, 1)
EndFunc
 
Func _clickend()													 ; Функция для ввода количества кликов
   Local $oldclick, $clickend1
   $oldclick = $clickend
   $clickend1 = 0
Do
   $clickend = InputBox("Изменение количества кликов", "Пожалуйста введите нужное количество кликов:", "", " M3", 300, 150, Default, Default, 0)

  if @error == 1 Then
   $clickend = $oldclick
   TrayTip ( "Отмена...", "Количество кликов не изменено и составляет: " & $clickend, 10, 1)
  EndIf
  $clickend1 = Number($clickend)
  if Not StringIsDigit($clickend) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $clickend1 = 0
   EndIf
  Until $clickend1 > 0

  if $oldclick <> $clickend Then
  TrayTip ( "Изменено количество кликов!", "Новое количество кликов: " & $clickend, 10, 1)
  EndIf

EndFunc
 
Func _limitozyfunc()												 ; Функция для ввода количества ОЗУ
   Local $oldlimitozy, $limitozy1	
   $oldlimitozy = $limitozy
   $limitozy1 = 0
Do
   $limitozy = InputBox("Изменение количества ОЗУ", "Пожалуйста, введите обьем ОЗУ который не следует превышать браузеру < в мегабайтах >, сейчас обьем равен: "& $limitozy &" Mb", "", " M3", 300, 150, Default, Default, 0)

  if @error == 1 Then
   $limitozy = $oldlimitozy
   TrayTip ( "Отмена...", "Обьем ОЗУ не изменен и составляет: " & $limitozy & " Mb", 10, 1)
  EndIf
  $limitozy1 = Number($limitozy)
  if Not StringIsDigit($limitozy) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $limitozy1 = 0
   EndIf
  Until $limitozy1 > 0

  if $oldlimitozy <> $limitozy Then
  TrayTip ( "Изменен обьем ОЗУ!", "Новый обьем ОЗУ: " & $limitozy & " Mb", 10, 1)
  EndIf
EndFunc

Func _memoryoutobn()  												 ; Функция контроля ОЗУ
	If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then
			GUICtrlSetData($Label3, "Проверка памяти..." & @CRLF & "Используется памяти: " & _ProcessGetMemory(@ScriptName)/1000 & " Mb из " & $limitozy & " Mb") 
			if _ProcessGetMemory(@ScriptName) > $limitozy*1024 Then
				TrayTip("Обновляю страницу с игрой...", "Превышен лимит памяти ОЗУ..." & _ProcessGetMemory(@ScriptName) & "Kb", 10, 16)
				Sleep(Random(5000, 10000))
				_obnovit()	   
			EndIf
	Else
			If _ProcessGetMemory("plugin-container.exe") > 0 Then
				GUICtrlSetState($Button4, $GUI_ENABLE)	
			    TrayItemSetState($MenuItem3, $TRAY_ENABLE)
				GUICtrlSetData($Label3, "Проверка памяти..."&@CRLF&"Вы используете браузер Mozilla Firefox."&@CRLF&"Используется памяти: " & _ProcessGetMemory("plugin-container.exe")/1000 & " Mb из " & $limitozy & " Mb")
				;TrayTip ( "Проверка памяти", "Вы используете браузер Mozilla Firefox." & @CRLF & "Используется памяти: " & _ProcessGetMemory("plugin-container.exe")/1000 & " Mb из " & $limitozy & " Mb", 10, 16)
				if _ProcessGetMemory("plugin-container.exe") > $limitozy*1024 Then
					TrayTip("Обновляю страницу с игрой...", "Превышен лимит памяти ОЗУ..." & _ProcessGetMemory("plugin-container.exe") & "Kb", 10, 16)
					Sleep(Random(5000, 10000))
					_obnovit()
				EndIf
			EndIf
	
			If _ProcessGetMemory("plugin-container.exe") <= 0 Then
			GUICtrlSetState($Button4, $GUI_DISABLE)	
			TrayItemSetState($MenuItem3, $TRAY_DISABLE)
			GUICtrlSetData($Label3, "Проверка памяти: пока доступна только в "& @CRLF&"IE и Mozilla Firefox.")
			EndIf
	EndIf	
	
EndFunc

Func _obnovit()														 ; Функция обновления окна с игрой
	If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then
		GUIDelete($Form2)	
		Sleep(3000)
		_iegame()
	Else
		Send("{F5}")
		Sleep(5000)
	EndIf	
EndFunc

Func _nullitem()													 ; Функция обнуления состояния магазина и продажи
   $golosovanieok = 0
   $prodagaok = 0
   Msgbox(64,"Обнуление...","Обнулены состояния магазина и продажи!", 2)
EndFunc

Func _Exit()														 ; Функция выхода из программы
   TrayTip ( "До встречи...", "Бот завершает свою работу!", 10, 1)   
   
   If BitAND(GUICtrlRead($Radio1), $GUI_CHECKED) = 1 Then
	   MsgBox(64, "Бот завершил свою работу!", "Бот успешно совершил все клики и завершил свою работу!" & @CRLF & "После нажатия кнопки <ОК>, бот выключит ПК!", 10)
	   GUIDelete()
	   _ShutDown(1)
	   Exit
   ElseIf BitAND(GUICtrlRead($Radio2), $GUI_CHECKED) = 1 Then	    
	   GUIDelete()
	   Exit
   EndIf
   
EndFunc

Func _botinfo()														 ; Функция показа состояния бота
	Local $golosovanievkonkurse, $prodagavmagazine
	
   If $golosovanieok = 1 Then
	  $golosovanievkonkurse = "Завершено"
   Else
	  $golosovanievkonkurse = "Не завершено"
   EndIf

   If $prodagaok = 1 Then
	  $prodagavmagazine = "Завершена"
   Else
	  $prodagavmagazine = "Не завершена"
   EndIf
   
   $LabelText = "1. Сделано кликов "& $click & " из " & $clickend & @CRLF & "2. Продажа одежды в магазине: "& $prodagavmagazine & @CRLF & "3. Голосование в конкурсе: "& $golosovanievkonkurse & @CRLF & "4. Количество доходов: " & $vremyadohoda & @CRLF & "5. Количество элементов нового уровня:"& @CRLF & "         Фасоны: " & $clickfas & " шт"& @CRLF & "         Узоры: " & $clickuzor & " шт"& @CRLF & "         Цвета одежды: " & $clickcvfason & " шт"& @CRLF & "         Цвета узоров: " & $clickcvuzor & " шт"& @CRLF & "6. Открыто достижений: " & $otkrdostij
   if $tmp <> $LabelText Then
	  $tmp = $LabelText
      GUICtrlSetData($Label1, $LabelText)
   EndIf

EndFunc

Func _activation()													 ; Функция активации
   if $reg = 1 Then
	  Msgbox(64,"Активация!","Вы используете полную версию программы! Активация не требуется!")
   Else
	  InputBox('Ваш уникальный ID:',"Скопируйте ID и отправте его разработчику для активации:",_WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)),'',280,130)
		if @error == 1 Then
			_Exit()
		EndIf		
   EndIf
EndFunc

Func _iegame()														 ; Функция запуска браузера
   $Form2 = GUICreate("IE для Великий Кутюрье", 806, 710, 0, 0)   
   GUICtrlCreateObj($oIE, -195, -230, 1100, 1050)   
   GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
   GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form2Minimize")
   GUISetOnEvent($GUI_EVENT_RESTORE, "Form2Restore")   
   GUISetState(@SW_SHOW, $Form2)    
   _IENavigate($oIE, "https://vk.com/app3558100")
EndFunc

Func _checkobn()													 ; Функция проверки открытой игры и обновление
	Local $sum
	$sum = $moneta + $main + $download + BitAND(GUICtrlRead($Radio4), $GUI_CHECKED)
   if $sum = 0 Then
	  $kolpop -= 1
	  TrayTip ( "", "Не найдена страница с игрой...  "& $kolpop, 10, 16)
	  Sleep(1000)	  
  Else
	  TrayTip("Очищает подсказку в трее", "", 0)
	  Sleep(100)
	  $kolpop = 60	  
   EndIf
  
   if $kolpop = 0 Then
	  TrayTip ( "Не найдены страницы игры!", "Обновление страницы браузера!", 10, 16)
	  _obnovit()
	  MouseMove(1, 1, 10)
	  $kolpop = 60	  
   EndIf
  
EndFunc

;========================================================Функци==========================================================

Func _ProcessGetMemory($nPID)
    Local Const $PROCESS_QUERY_INFORMATION = 0x400
    Local Const $PROCESS_VM_READ = 0x10

    ;get process ID
    If IsString($nPID) Then $nPID = ProcessExists($nPID)
    If $nPID = 0 Then Return -1

    ;get process handle, required for GetProcessMemoryInfo
    $aRet = DllCall("Kernel32.dll", "int", "OpenProcess", "dword", _
        $PROCESS_QUERY_INFORMATION+$PROCESS_VM_READ, "dword", False, "dword", $nPID)
    If @error Or ($aRet[0] = 0) Then Return -1

    $hProc = $aRet[0]

    ;create PPROCESS_MEMORY_COUNTERS to receive data, required for GetProcessMemoryInfo
    $structPROCESS_MEMORY_COUNTERS = DllStructCreate("dword;dword;uint peakmemsize;uint memsize;uint;uint;uint;uint;uint;uint")
    $nSize = DllStructGetSize($structPROCESS_MEMORY_COUNTERS)

    ;call GetProcessMemoryInfo
    $aRet = DllCall("Psapi.dll", "int", "GetProcessMemoryInfo", _
        "hwnd", $hProc, "ptr", DllStructGetPtr($structPROCESS_MEMORY_COUNTERS), "dword", $nSize)

    ;close process handle
    DllCall("Kernel32.dll", "int", "CloseHandle", "hwnd", $hProc)

    ;return memory size in kb
    Return DllStructGetData($structPROCESS_MEMORY_COUNTERS, "memsize") / 1024
EndFunc

Func _ShutDown($SMETHOD, $SLEAVEOPEN = "Program Manager")
	$I = 1
	If Not IsArray($SLEAVEOPEN) Then $SLEAVEOPEN = StringSplit($SLEAVEOPEN, '|')
	$SWINDOWS = WinList()
	While 1
		$FCLOSE = True
		If $SWINDOWS[$I][0] <> "" And BitAND( WinGetState($SWINDOWS[$I][1]), 2) And $SWINDOWS[$I][0] <> "Program Manager" Then
			If $SMETHOD == 4 Then
				For $X = 1 To $SLEAVEOPEN[0]
					If StringInStr($SWINDOWS[$I][0], $SLEAVEOPEN[$X]) <> 0 Then $CLOSE = False
				Next
				If $FCLOSE Then WinClose($SWINDOWS[$I][0])
			Else
				WinClose($SWINDOWS[$I][0])
			EndIf
		EndIf
		$I += 1
		If $I == $SWINDOWS[0][0] Then
			If $SMETHOD == 0 Or $SMETHOD == 1 Or $SMETHOD == 2 Then Shutdown(Int($SMETHOD))
			ExitLoop
		EndIf
	WEnd
EndFunc
 

dstasv

Новичок
Сообщения
45
Репутация
1
Извини я тут твой код немного поковырял. Это не ответ на твой поставленный вопрос, об сворачивании окна.
Там ты походу обшибся со статусами, ибо вела она себя совсем не предсказуемо.
Я бы плясал от такого вида.

Код:
#include <WinAPI.au3>
#include <ScreenCapture.au3>
#include <WindowsConstants.au3>
#include <ImageSearch.au3>
#include <Array.au3>
#Include <APIConstants.au3>
#Include <WinAPIEx.au3>
#Include <GUIConstants.au3>
#Include <EditConstants.au3>
#include <Constants.au3>
#include <GUIConstantsEx.au3>
#include <File.au3>
#include <Date.au3>
#include <GuiStatusBar.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#Include <IE.au3>
#Include <ComboConstants.au3>
#Include <GDIPlus.au3>
#include <ButtonConstants.au3>
;~ #include <SkinCrafter.au3>

;~ _LoadSkinCrafter("SkinCrafterDll.dll");Load SkinCrafter DLL

If WinExists(@ScriptName) Then                                      ; Проверка на повторный запуск программы
    MsgBox(16, "Ошибка!", "Уже бот уже запущен!")
    Exit
EndIf
AutoItWinSetTitle(@ScriptName)

Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1 + 2)
Opt("GUIOnEventMode", 1)
TraySetToolTip ("Бот для Великий Кутюрье!")
TraySetClick(4+8)
TraySetState()

;=================================Обьявление переменных==================
Dim $sDirPath = @ScriptDir & "\Screen\"                              ; Папка с файлами картинок
if Not FileExists("C:\ScreenBot") Then DirCreate("C:\ScreenBot")     ; Папка сохранение скриншотов
TraySetIcon("icon.ico")                                              ; Иконка в трее
Global $n = 1                                                        ; Начальная нумерация скриншотов
Global $Dip_Col = 2                                                  ; Допустимое несовпадение цвета от указанного
Global $clickjornal = 0
Global $clickkniga = 0
Global $clicktrening = 0
Global $clickvideo = 0
Global $clickkurs = 0
Global $ban
Global $dialog
Global $clickfas = 0
Global $clickuzor = 0
Global $clickcvfason = 0
Global $clickcvuzor = 0
Global $main
Global $moneta
Global $download
Global $x
Global $y
Global $click = 0                                                    ; Сделано кликов
Global $clickend = 25                                                ; Запланировано кликов
Global $Paused                                                       ; Переменная паузы
Global $limitozy = 500                                               ; Лимит ОЗУ
Global $oIE = ObjCreate("Shell.Explorer.2")                          ; Обьект браузер
Global $golosovanieok
Global $prodagaok
Global $reg
Global $otkrdostij = 0                                               ; Открыто достижений
Global $vremyadohoda = 0                                             ; Количество доходов
Global $Form2
Global $Init = 0
Global $kolpop = 60
Global $LabelText
Global $tmp = 0
Global $oInternet
;===============================Горячие клавиши=========================
HotKeySet("{ESC}", "_Pause")



;=================================Gui====================================
;~ _InitializeSkinCrafter($Form2, "Aquiles.skf");Set skin

$oIE = ObjCreate("Shell.Explorer.2")
$Form1 = GUICreate("Бот для Великий Кутюрье!", 1230, 718, -1, -1)
$oInternet=GUICtrlCreateObj($oIE, -145, -224, 958, 1600)
GUISetBkColor(0x0000FF)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
GUISetOnEvent($GUI_EVENT_RESTORE, "Form1Restore")
$Group1 = GUICtrlCreateGroup("Завершение работы", 1040, 392, 185, 81)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Radio1 = GUICtrlCreateRadio("Выключить ПК", 1060, 416, 113, 17)
GUICtrlSetOnEvent(-1, "Radio1Click")
$Radio2 = GUICtrlCreateRadio("Закрыть программу", 1060, 440, 153, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetOnEvent(-1, "Radio2Click")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Обновление страницы", 1040, 480, 185, 81)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Radio3 = GUICtrlCreateRadio("Обновлять", 1060, 504, 113, 17)
GUICtrlSetOnEvent(-1, "Radio3Click")
$Radio4 = GUICtrlCreateRadio("Не обновлять", 1060, 528, 113, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetOnEvent(-1, "Radio4Click")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("Старт", 818, 600, 403, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Button2 = GUICtrlCreateButton("Активация", 818, 560, 179, 25)
GUICtrlSetOnEvent(-1, "Button2Click")
$Button3 = GUICtrlCreateButton("Количество кликов", 818, 520, 179, 25)
GUICtrlSetOnEvent(-1, "Button3Click")
$Button4 = GUICtrlCreateButton("Лимит ОЗУ", 818, 480, 179, 25)
GUICtrlSetOnEvent(-1, "Button4Click")
$Button5 = GUICtrlCreateButton("Обновить окно", 818, 400, 179, 25)
GUICtrlSetOnEvent(-1, "Button5Click")
$Button6 = GUICtrlCreateButton("Обнулить магазин и голосование", 818, 440, 179, 25)
GUICtrlSetOnEvent(-1, "Button6Click")
$Label1 = GUICtrlCreateLabel("", 864, 48, 387, 342)
GUICtrlSetFont(-1, 10, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$Label2 = GUICtrlCreateLabel("Текущее состояние", 860, 0, 380, 43)
GUICtrlSetFont(-1, 24, 800, 4, "Ariston")
GUICtrlSetColor(-1, 0x00FF00)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
$Label3 = GUICtrlCreateLabel("Проверка памяти: пока доступна только в "& @CRLF&"IE и Mozilla Firefox.", 834, 312, 392, 63)
GUICtrlSetFont(-1, 12, 800, 0, "Arial")
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlSetResizing(-1, $GUI_DOCKHCENTER+$GUI_DOCKVCENTER)
$Checkbox1 = GUICtrlCreateCheckbox("Использовать IE", 1060, 568, 161, 17)

;~ GUISetState(@SW_SHOW) ;Show GUI
;~ $oIE.navigate("https://vk.com/app3558100")

;=============================Трей=================================

$MenuItem1 = TrayCreateMenu("Дополнительно")
$MenuItem8 = TrayCreateMenu("Завершение работы", $MenuItem1)
$MenuItem9 = TrayCreateItem("Выключить ПК", $MenuItem8, 1, 1)
TrayItemSetOnEvent(-1, "MenuItem9Click")
$MenuItem10 = TrayCreateItem("Закрыть программу", $MenuItem8, 2, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
TrayItemSetOnEvent(-1, "MenuItem10Click")
$MenuItem7 = TrayCreateMenu("Обновление страницы", $MenuItem1)
$MenuItem11 = TrayCreateItem("Обновлять ", $MenuItem7, 1, 1)
TrayItemSetOnEvent(-1, "MenuItem11Click")
$MenuItem12 = TrayCreateItem("Не обновлять", $MenuItem7, 2, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
TrayItemSetOnEvent(-1, "MenuItem12Click")
TrayCreateItem("")
$MenuItem2 = TrayCreateItem("Изменить количество кликов")
TrayItemSetOnEvent(-1, "Button3Click")
$MenuItem3 = TrayCreateItem("Изменить обьем ОЗУ")
TrayItemSetOnEvent(-1, "Button4Click")
$obnull = TrayCreateItem("Обнулить значение магазина и продажи")
TrayItemSetOnEvent(-1, "Button6Click")
TrayCreateItem("")
$MenuItem4 = TrayCreateItem("Активация...")
TrayItemSetOnEvent(-1, "Button2Click")
$MenuItem5 = TrayCreateItem("О программе")
TrayItemSetOnEvent(-1, "MenuItem5Click")
TrayCreateItem("")
$MenuItem6 = TrayCreateItem("Выход")
TrayItemSetOnEvent(-1, "Form1Close")

;========================================Проверка железа====================================
if _WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)) = "{E70BB5DA-F7CB-DB4C-6C99-1A00FC136456}" = False Then
    GUICtrlSetState($Button3, $GUI_DISABLE)
    GUICtrlSetState($Button4, $GUI_DISABLE)
    TrayItemSetState($MenuItem2, $TRAY_DISABLE)
    TrayItemSetState($MenuItem3, $TRAY_DISABLE)
    $reg = 0
   MsgBox(16,"Не зарегестрированая версия!","Программа будет делать ограниченое количество операций!")
Else
    $reg = 1
EndIf
;========================================Функци GUI и Трея===================================

Func Button1Click()                     ; Старт
$Init = 1
EndFunc

Func Button2Click()                     ; Кнопка активации
_activation()
EndFunc

Func Button3Click()                     ; Количество кликов
_clickend()
EndFunc

Func Button4Click()                     ; Количество ОЗУ
_limitozyfunc()
EndFunc

Func Button5Click()                     ;Обновить окно
_obnovit()
EndFunc

Func Button6Click()                     ; Обнулить
_nullitem()
EndFunc

Func Form1Close()
TrayTip ( "До встречи...", "Бот завершает свою работу!", 10, 1)
GUIDelete()
Sleep(1000)
Exit
EndFunc

Func Form1Minimize()
GUISetState(@SW_MINIMIZE, $Form1)
EndFunc

Func Form2Minimize()
_pause()
GUISetState(@SW_MINIMIZE, $Form2)
EndFunc

Func Form2Restore()
GUISetState(@SW_RESTORE, $Form2)
EndFunc

Func Form1Restore()
GUISetState(@SW_RESTORE, $Form1)
EndFunc

Func MenuItem5Click()                       ; О программе

EndFunc

Func MenuItem9Click()
GUICtrlSetState($Radio1, $GUI_CHECKED)
GUICtrlSetState($Radio2, $GUI_UNCHECKED)
EndFunc

Func MenuItem10Click()
GUICtrlSetState($Radio2, $GUI_CHECKED)
GUICtrlSetState($Radio1, $GUI_UNCHECKED)
EndFunc

Func Radio1Click()
TrayItemSetState($MenuItem9, $TRAY_CHECKED)
TrayItemSetState($MenuItem10, $TRAY_UNCHECKED)
EndFunc

Func Radio2Click()
TrayItemSetState($MenuItem10, $TRAY_CHECKED)
TrayItemSetState($MenuItem9, $TRAY_UNCHECKED)
EndFunc

Func Radio3Click()                                      ; Радио обновлять
TrayItemSetState($MenuItem11, $TRAY_CHECKED)
TrayItemSetState($MenuItem12, $TRAY_UNCHECKED)
EndFunc

Func Radio4Click()                                      ; Радио необновлять
TrayItemSetState($MenuItem12, $TRAY_CHECKED)
TrayItemSetState($MenuItem11, $TRAY_UNCHECKED)
EndFunc

Func MenuItem11Click()                                  ; Радио обновлять в трее
GUICtrlSetState($Radio3, $GUI_CHECKED)
GUICtrlSetState($Radio4, $GUI_UNCHECKED)
EndFunc

Func MenuItem12Click()                                  ; Радио необновлять в трее
GUICtrlSetState($Radio4, $GUI_CHECKED)
GUICtrlSetState($Radio3, $GUI_UNCHECKED)
EndFunc

;========================================================Основной цикл============================================

GUICtrlSetState($Button5, $GUI_DISABLE)
GUISetState(@SW_SHOW, $Form1)
_botinfo()
While 1
    Sleep(10)
    If $Init Then
        _Start()
        $Init = 0
    EndIf
WEnd

Func _Start()                                                       ; Функция запуска бота
 If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then
  GUICtrlSetState($Button1, $GUI_DISABLE)
  GUICtrlSetState($Button5, $GUI_ENABLE)
  GUICtrlSetState($Checkbox1, $GUI_DISABLE)
  _iegame()
  Else
  GUICtrlSetState($Button1, $GUI_DISABLE)
  GUICtrlSetState($Button5, $GUI_DISABLE)
  GUICtrlSetState($Checkbox1, $GUI_DISABLE)
  TrayTip ( "Начинаю работать!", "ПОЖАЛУЙСТА, ОТКРОЙТЕ БРАУЗЕР С ИГРОЙ!"&@CRLF&"Количество кликов: " & $clickend, 10, 1)
  Sleep(5000)
EndIf

Sleep(1000)

Do
  _proverkanaban()
  Sleep(100)
  _proverkanadialog()
  Sleep(100)
  _poiskstr()
  Sleep(100)
  _memoryoutobn()
  Sleep(100)
  _botinfo()
    if $dialog <= $main Then
        _poiskzadach()
    EndIf
  _checkobn()
Until $click = $clickend
  _Exit()
EndFunc


;========================================================Основные Функции=============================================
Func _proverkanaban()                                                ; Проверка на существования сообщения о Подозрительной активности
   $ban = _ImageSearch($sDirPath & "ban.bmp", 1, $x, $y, 75)
   if $ban = 1 Then
    TrayTip ( "Диалог:", "На Вашем акаунте замечена подозрительная активность...", 10, 16)
      _Horosho()
    TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
   EndIf
EndFunc

Func _proverkanadialog()                                             ; Проверка на существования диалогов
    $dialog = _ImageSearch($sDirPath & "dialog.bmp", 1, $x, $y, 150)
   if $dialog = 1 Then
      _tipdialoga()
   EndIf
EndFunc

Func _tipdialoga()                                                   ; Проверка типа диалога и ответ на него
    Local $dohod, $prodaga, $golosovanie, $novuroven, $zabratsebe, $dostij, $goloskonkurs, $error, $error2, $error3

    $dohod = _ImageSearch($sDirPath & "dohod.bmp", 1, $x, $y, 75)    ; Диалог "Пришло время дохода" --> Кнопка Хорошо
   if $dohod = 1 Then
      TrayTip ( "Диалог:", "Пришло время дохода!", 10, 16)
      _Horosho()
      $vremyadohoda += 1
      TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf

  $prodaga = _ImageSearch($sDirPath & "prodaga.bmp", 1, $x, $y, 75)   ; Диалог "Продажа одежды завершена!" --> Кнопка Хорошо
   if $prodaga = 1 Then
      TrayTip ( "Диалог:", "Продажа одежды завершена!", 10, 16)
      _Horosho()
      $prodagaok = 1
      TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf

  $golosovanie = _ImageSearch($sDirPath & "golosovanie.bmp", 1, $x, $y, 75)     ; Диалог "Голосование завершено!" --> Кнопка Хорошо
   if $golosovanie = 1 Then
      TrayTip ( "Диалог:", "Голосование завершено!", 10, 16)
      _Horosho()
      $golosovanieok = 1
      TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf

  $novuroven = _ImageSearch($sDirPath & "novuroven.bmp", 1, $x, $y, 75)       ; Диалог "Новый этап в мастерстве!" --> Функция выбора нового элемента (_newlevel)
   if $novuroven = 1 Then
      TrayTip ( "Диалог:", "Новый этап в мастерстве!", 10, 16)
      _newlevel()
   EndIf

  $zabratsebe = _ImageSearch($sDirPath & "zabratsebe.bmp", 1, $x, $y, 75)      ; Диалог "Утащить к себе!" --> Кнопка ОТМЕНА
   if $zabratsebe = 1 Then
      TrayTip ( "Диалог:", "Утащить к себе!", 10, 16)
      _Otmena()
      TrayTip ( "Реакция:", "Нажал кнопку <ОТМЕНА>!", 10, 16)
  EndIf

  $dostij = _ImageSearch($sDirPath & "dostij.bmp", 1, $x, $y, 75)              ; Диалог "Открыто новое достижение!" --> Сделать скрин и Кнопка Хорошо
   if $dostij = 1 Then
      TrayTip ( "Диалог:", "Открыто новое достижение!", 10, 16)
      _Scrn()
      _Horosho()
      $otkrdostij += 1
      TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
  EndIf

  $goloskonkurs = _ImageSearch($sDirPath & "goloskonkurs.bmp", 1, $x, $y, 75)   ; Диалог "Кто то из конкурсантов, за которых вы голосовали, занял..." --> Кнопка Хорошо
   if $goloskonkurs = 1 Then
      TrayTip ( "Диалог:", "Кто то из конкурсантов, за которых вы голосовали, занял...", 10, 16)
      _Horosho()
      TrayTip ( "Реакция:", "Нажал кнопку <ХОРОШО>!", 10, 16)
   EndIf

  ;============Далоги ошибок========================

   $error = _ImageSearch($sDirPath & "error.bmp", 1, $x, $y, 75)                ; Диалог "Ошибка подключения к серверу!" --> Обновить страницу
   if $error = 1 Then
       TrayTip ( "Диалог:", "Ошибка подключения к серверу!", 10, 16)
       _obnovit()
       TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
   EndIf

   $error2 = _ImageSearch($sDirPath & "error2.bmp", 1, $x, $y, 75)              ; Диалог "Ошибка ввода\вывода!" --> Обновить страницу
   if $error2 = 1 Then
       TrayTip ( "Диалог:", "Ошибка ввода\вывода!", 10, 16)
       _obnovit()
       TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
   EndIf

   $error3 = _ImageSearch($sDirPath & "error3.bmp", 1, $x, $y, 75)              ; Диалог "Вы кликаете не по монете!" --> Обновить страницу
   if $error3 = 1 Then
       TrayTip ( "Диалог:", "Вы кликаете не по монете!", 10, 16)
       _obnovit()
       TrayTip ( "Исправление ошибки...", "Обновление страницы браузера!", 10, 16)
   EndIf

EndFunc

Func _newlevel()                                                     ; Функция выбора нового элемента  (ответ на диалог)
    Local $fason, $fx, $fy, $uzor, $ux, $uy, $cvetodejdu, $cox, $coy, $cvetuzora, $cux, $cuy, $clickuroven, $clicknafason
    Sleep(Random(100, 500, 1))
      $fason = _ImageSearch($sDirPath & "fason.bmp", 1, $fx, $fy, 75) ; Поиск надписи "Фасон"
   if $fason = 1 Then
      $clicknafason = PixelSearch( $fx + 102, $fy - 16, $fx + 342 , $fy + 24, 0xFFDD57, $Dip_Col) ; Поиск "Нового фасона"
        If IsArray($clicknafason) = True Then
            MouseMove($clicknafason[0], $clicknafason [1] + 20, 1)
            MouseClick('left',$clicknafason[0], $clicknafason [1] + 20)
            $clickuroven = 1
            Sleep(Random(1000, 3000, 1))
            MouseMove(1, 1, 10)
            Sleep(Random(1000, 2000, 1))
        EndIf
    EndIf

      $uzor = _ImageSearch($sDirPath & "uzor.bmp", 1, $ux, $uy, 75) ; Поиск надписи "Узор"
   if $uzor = 1 Then
      MouseClick('left',$ux + 170, $uy) ; Кликаю на узор
      $clickuroven = 2
      Sleep(Random(1000, 3000, 1))
      MouseMove(1, 1, 10)
      Sleep(Random(1000, 2000, 1))
  EndIf

      $cvetodejdu = _ImageSearch($sDirPath & "cvetodejdu.bmp", 1, $cox, $coy, 75) ; Поиск надписи "Цвет одежды"
   if $cvetodejdu = 1 Then
      MouseClick('left',$cox + 175, $coy) ; Кликаю на цвет одежды
      $clickuroven = 3
      Sleep(Random(1000, 3000, 1))
      MouseMove(1, 1, 10)
      Sleep(Random(1000, 2000, 1))
  EndIf

      $cvetuzora = _ImageSearch($sDirPath & "cvetuzora.bmp", 1, $cux, $cuy, 75) ; Поиск надписи "Цвет узора"
   if $cvetuzora = 1 Then
      MouseClick('left',$cux + 180, $cuy) ; Кликаю на цвет узора
      $clickuroven = 4
      Sleep(Random(1000, 3000, 1))
      MouseMove(1, 1, 10)
      Sleep(Random(1000, 2000, 1))
  EndIf

   if $clickuroven = 1 Then                                             ; Проверка на каком элементе закончился выбор
      $clickfas += 1
      TrayTip ( "Реакция:", "Выбран новый фасон!", 10, 16)
   ElseIf $clickuroven = 2 Then
      $clickuzor += 1
      TrayTip ( "Реакция:", "Выбран новый узор!", 10, 16)
   ElseIf $clickuroven = 3 Then
      $clickcvfason += 1
      TrayTip ( "Реакция:", "Выбран новый цвет одежды!", 10, 16)
   ElseIf $clickuroven = 4 Then
      $clickcvuzor += 1
      TrayTip ( "Реакция:", "Выбран новый цвет узора!", 10, 16)
   EndIf
   Sleep(Random(100, 500, 1))
EndFunc

Func _Horosho()                                                      ; Функция выбора кнопки Хорошо  (ответ на диалог)
    Local $horosho
   $horosho = _ImageSearch($sDirPath & "horosho.bmp", 1, $x, $y, 75)
   if $horosho = 1 Then
      Sleep(Random(100, 500, 1))
      MouseClick('left',$x, $y)
      Sleep(Random(500, 1000, 1))
      MouseMove($x - 100, $y, 10)
      Sleep(Random(100, 500, 1))
   EndIf
EndFunc

Func _Otmena()                                                       ; Функция выбора кнопки Отмена  (ответ на диалог)
    Local $otmena
   $otmena = _ImageSearch($sDirPath & "otmena.bmp", 1, $x, $y, 75)
   if $otmena = 1 Then
      Sleep(Random(100, 500, 1))
      MouseClick('left',$x, $y)
      Sleep(Random(500, 1000, 1))
      MouseMove($x - 100, $y, 10)
      Sleep(Random(100, 500, 1))
   EndIf
EndFunc

Func _poiskzadach()                                                  ; Функция поиска и выбора кнопок набора опыта
    Local $poiskz1, $poiskz2, $poiskz3, $poiskz4, $poiskz5, $x1p1, $y1p1, $x2p1, $y2p1, $x1p2, $y1p2, $x2p2, $y2p2, $x1p3, $y1p3, $x2p3, $y2p3, $x1p4, $y1p4, $x2p4, $y2p4, $x1p5, $y1p5, $x2p5, $y2p5
    Local $perx1, $pery1, $perx2, $pery2, $perx3, $pery3, $perx4, $pery4, $perx5, $pery5, $glavmenu

    $glavmenu = _ImageSearch($sDirPath & "glavmenu.bmp", 1, $x, $y, 75)  ; Поиск кнопки меню и отсчет координат кнопок набора опыта
if $glavmenu = 1 Then
      $x1p1 = $x - 15
      $y1p1 = $y + 95
      $x2p1 = $x + 35
      $y2p1 = $y + 140

      $x1p2 = $x - 15
      $y1p2 = $y + 180
      $x2p2 = $x + 35
      $y2p2 = $y + 220

      $x1p3 = $x - 15
      $y1p3 = $y + 265
      $x2p3 = $x + 35
      $y2p3 = $y + 310

      $x1p4 = $x - 15
      $y1p4 = $y + 355
      $x2p4 = $x + 35
      $y2p4 = $y + 400

      $x1p5 = $x - 15
      $y1p5 = $y + 445
      $x2p5 = $x + 35
      $y2p5 = $y + 480

      $poiskz1 = PixelSearch( $x1p1, $y1p1, $x2p1, $y2p1, 0x983366, $Dip_Col)           ; Поиск пикселя по заданым координатам первой картинки
    If IsArray($poiskz1) = True Then
        TrayTip ( "Активность кнопки набора опыта!", "Почитать журналы о моде", 10, 16)
        Sleep(Random(1000, 10000, 1))
        $perx1 = Random($x1p1, $x2p1, 1)
        $pery1 = Random($y1p1, $y2p1, 1)
        MouseMove($perx1, $pery1, 1)
        Sleep(Random(500, 3000, 1))
        MouseClick('left', $perx1, $pery1)
        $clickjornal += 1
        Sleep(Random(1000, 3000, 1))
     EndIf

     $poiskz2 = PixelSearch( $x1p2, $y1p2, $x2p2, $y2p2, 0x416919, $Dip_Col)            ; Поиск пикселя по заданым координатам второй картинки
    If IsArray($poiskz2) = True Then
        TrayTip ( "Активность кнопки набора опыта!", "Прочитать книгу о кройке и шитье", 10, 16)
        Sleep(Random(1000, 10000, 1))
        $perx2 = Random($x1p2, $x2p2, 1)
        $pery2 = Random($y1p2, $y2p2, 1)
        MouseMove($perx2, $pery2, 1)
        Sleep(Random(500, 3000, 1))
        MouseClick('left', $perx2, $pery2)
        $clickkniga += 1
        Sleep(Random(1000, 3000, 1))
     EndIf

     $poiskz3 = PixelSearch( $x1p3, $y1p3, $x2p3, $y2p3, 0xFCEED5, $Dip_Col)            ; Поиск пикселя по заданым координатам третьей картинки
    If IsArray($poiskz3) = True Then
        TrayTip ( "Активность кнопки набора опыта!", "Потренироваться делать выкройки", 10, 16)
        Sleep(Random(1000, 10000, 1))
        $perx3 = Random($x1p3, $x2p3, 1)
        $pery3 = Random($y1p3, $y2p3, 1)
        MouseMove($perx3, $pery3, 1)
        Sleep(Random(500, 3000, 1))
        MouseClick('left', $perx3, $pery3)
        $clicktrening += 1
        Sleep(Random(1000, 3000, 1))
     EndIf

     $poiskz4 = PixelSearch( $x1p4, $y1p4, $x2p4, $y2p4, 0xD4D5D4, $Dip_Col)            ; Поиск пикселя по заданым координатам четвертой картинки
    If IsArray($poiskz4) = True Then
        TrayTip ( "Активность кнопки набора опыта!", "Посмотреть видео уроки в интернете", 10, 16)
        Sleep(Random(1000, 10000, 1))
        $perx4 = Random($x1p4, $x2p4, 1)
        $pery4 = Random($y1p4, $y2p4, 1)
        MouseMove($perx4, $pery4, 1)
        Sleep(Random(500, 3000, 1))
        MouseClick('left', $perx4, $pery4)
        $clickvideo += 1
        Sleep(Random(1000, 3000, 1))
     EndIf

     $poiskz5 = PixelSearch( $x1p5, $y1p5, $x2p5, $y2p5, 0x161718, $Dip_Col)                ; Поиск пикселя по заданым координатам пятой картинки
    If IsArray($poiskz5) = True Then
        TrayTip ( "Активность кнопки набора опыта!", "Сходить на курсы кройки и шитья", 10, 16)
        Sleep(Random(1000, 10000, 1))
        $perx5 = Random($x1p5, $x2p5, 1)
        $pery5 = Random($y1p5, $y2p5, 1)
        MouseMove($perx5, $pery5, 1)
        Sleep(Random(500, 3000, 1))
        MouseClick('left', $perx5, $pery5)
        $clickkurs += 1
        Sleep(Random(1000, 3000, 1))
    EndIf

EndIf
EndFunc

Func _poiskstr()                                                     ; Функция определение страницы игры
    Local $kopeika

    $download = _ImageSearch($sDirPath & "download.bmp", 1, $x, $y, 75)                 ; Определение страницы загрузки
   if $download = 1 Then
      TrayTip ( "Жду загрузки приложения...", "Страница загрузки приложения!", 10, 16)
      Sleep(Random(1000, 5000, 1))
   EndIf

   $main = _ImageSearch($sDirPath & "main.bmp", 1, $x, $y, 75)                          ; Определение главной страницы
   if $main = 1 Then
      Sleep(1000)
   EndIf

   $moneta = _ImageSearch($sDirPath & "moneta.bmp", 1, $x, $y, 75)                      ; Определение страницы с монеткой
   if $moneta = 1 Then
      $kopeika = _ImageSearch($sDirPath & "kopeika.bmp", 1, $x, $y, 100)                ; Поиск монетки и клик по ней
      if $kopeika = 1 Then
         MouseMove($x, $y, 1)
         MouseClick('left',$x, $y)
         TrayTip ( "Ура!!!", "Я нашел монетку!", 10, 16)
         Sleep(Random(3000, 6000, 1))
         $click += 1
      EndIf
      MouseMove(1, 1, 10)
   Else
      $moneta = 0
   EndIf

EndFunc


;========================================================Дополнительные функци==========================================

Func _Scrn()                                                         ; Функция для создания скриншота
   _ScreenCapture_Capture("C:\ScreenBot\Scr " & $n & " DATE " & @MDAY & @MON & @YEAR & " TIME " & @HOUR & @MIN & @SEC & ".bmp",0,0,-1,-1,True)
   $n +=1
   TrayTip("Создан скриншот!", "Скриншот сохранен на диске C!", 10, 1)
EndFunc

Func _Pause()                                                        ; Фукция паузы
    TrayTip ( "Работа бота приостановлена...", "Для продолжения работы нажмите ESC", 10, 1)
    TraySetIcon("pause.ico")
        $Paused = Not $Paused
    While $Paused
        Sleep(1000)
    WEnd
     TraySetIcon("icon.ico")
     TrayTip ( "Продолжаю работать!", "Количество кликов: " & $clickend, 10, 1)
EndFunc

Func _clickend()                                                     ; Функция для ввода количества кликов
   Local $oldclick, $clickend1
   $oldclick = $clickend
   $clickend1 = 0
Do
   $clickend = InputBox("Изменение количества кликов", "Пожалуйста введите нужное количество кликов:", "", " M3", 300, 150, Default, Default, 0)

  if @error == 1 Then
   $clickend = $oldclick
   TrayTip ( "Отмена...", "Количество кликов не изменено и составляет: " & $clickend, 10, 1)
  EndIf
  $clickend1 = Number($clickend)
  if Not StringIsDigit($clickend) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $clickend1 = 0
   EndIf
  Until $clickend1 > 0

  if $oldclick <> $clickend Then
  TrayTip ( "Изменено количество кликов!", "Новое количество кликов: " & $clickend, 10, 1)
  EndIf

EndFunc

Func _limitozyfunc()                                                 ; Функция для ввода количества ОЗУ
   Local $oldlimitozy, $limitozy1
   $oldlimitozy = $limitozy
   $limitozy1 = 0
Do
   $limitozy = InputBox("Изменение количества ОЗУ", "Пожалуйста, введите обьем ОЗУ который не следует превышать браузеру < в мегабайтах >, сейчас обьем равен: "& $limitozy &" Mb", "", " M3", 300, 150, Default, Default, 0)

  if @error == 1 Then
   $limitozy = $oldlimitozy
   TrayTip ( "Отмена...", "Обьем ОЗУ не изменен и составляет: " & $limitozy & " Mb", 10, 1)
  EndIf
  $limitozy1 = Number($limitozy)
  if Not StringIsDigit($limitozy) Then
      MsgBox(16,"Ошибка ввода!","Пожалуйста вводите только числа!")
      $limitozy1 = 0
   EndIf
  Until $limitozy1 > 0

  if $oldlimitozy <> $limitozy Then
  TrayTip ( "Изменен обьем ОЗУ!", "Новый обьем ОЗУ: " & $limitozy & " Mb", 10, 1)
  EndIf
EndFunc

Func _memoryoutobn()                                                 ; Функция контроля ОЗУ
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then
            GUICtrlSetData($Label3, "Проверка памяти..." & @CRLF & "Используется памяти: " & _ProcessGetMemory(@ScriptName)/1000 & " Mb из " & $limitozy & " Mb")
            if _ProcessGetMemory(@ScriptName) > $limitozy*1024 Then
                TrayTip("Обновляю страницу с игрой...", "Превышен лимит памяти ОЗУ..." & _ProcessGetMemory(@ScriptName) & "Kb", 10, 16)
                Sleep(Random(5000, 10000))
                _obnovit()
            EndIf
    Else
            If _ProcessGetMemory("plugin-container.exe") > 0 Then
                GUICtrlSetState($Button4, $GUI_ENABLE)
                TrayItemSetState($MenuItem3, $TRAY_ENABLE)
                GUICtrlSetData($Label3, "Проверка памяти..."&@CRLF&"Вы используете браузер Mozilla Firefox."&@CRLF&"Используется памяти: " & _ProcessGetMemory("plugin-container.exe")/1000 & " Mb из " & $limitozy & " Mb")
                ;TrayTip ( "Проверка памяти", "Вы используете браузер Mozilla Firefox." & @CRLF & "Используется памяти: " & _ProcessGetMemory("plugin-container.exe")/1000 & " Mb из " & $limitozy & " Mb", 10, 16)
                if _ProcessGetMemory("plugin-container.exe") > $limitozy*1024 Then
                    TrayTip("Обновляю страницу с игрой...", "Превышен лимит памяти ОЗУ..." & _ProcessGetMemory("plugin-container.exe") & "Kb", 10, 16)
                    Sleep(Random(5000, 10000))
                    _obnovit()
                EndIf
            EndIf

            If _ProcessGetMemory("plugin-container.exe") <= 0 Then
            GUICtrlSetState($Button4, $GUI_DISABLE)
            TrayItemSetState($MenuItem3, $TRAY_DISABLE)
            GUICtrlSetData($Label3, "Проверка памяти: пока доступна только в "& @CRLF&"IE и Mozilla Firefox.")
            EndIf
    EndIf

EndFunc

Func _obnovit()                                                      ; Функция обновления окна с игрой
    If BitAND(GUICtrlRead($Checkbox1), $GUI_CHECKED) = 1 Then
        GUIDelete($Form2)
        Sleep(3000)
        _iegame()
    Else
        Send("{F5}")
        Sleep(5000)
    EndIf
EndFunc

Func _nullitem()                                                     ; Функция обнуления состояния магазина и продажи
   $golosovanieok = 0
   $prodagaok = 0
   Msgbox(64,"Обнуление...","Обнулены состояния магазина и продажи!", 2)
EndFunc

Func _Exit()                                                         ; Функция выхода из программы
   TrayTip ( "До встречи...", "Бот завершает свою работу!", 10, 1)

   If BitAND(GUICtrlRead($Radio1), $GUI_CHECKED) = 1 Then
       MsgBox(64, "Бот завершил свою работу!", "Бот успешно совершил все клики и завершил свою работу!" & @CRLF & "После нажатия кнопки <ОК>, бот выключит ПК!", 10)
       GUIDelete()
       _ShutDown(1)
       Exit
   ElseIf BitAND(GUICtrlRead($Radio2), $GUI_CHECKED) = 1 Then
       GUIDelete()
       Exit
   EndIf

EndFunc

Func _botinfo()                                                      ; Функция показа состояния бота
    Local $golosovanievkonkurse, $prodagavmagazine

   If $golosovanieok = 1 Then
      $golosovanievkonkurse = "Завершено"
   Else
      $golosovanievkonkurse = "Не завершено"
   EndIf

   If $prodagaok = 1 Then
      $prodagavmagazine = "Завершена"
   Else
      $prodagavmagazine = "Не завершена"
   EndIf

   $LabelText = "1. Сделано кликов "& $click & " из " & $clickend & @CRLF & "2. Продажа одежды в магазине: "& $prodagavmagazine & @CRLF & "3. Голосование в конкурсе: "& $golosovanievkonkurse & @CRLF & "4. Количество доходов: " & $vremyadohoda & @CRLF & "5. Количество элементов нового уровня:"& @CRLF & "         Фасоны: " & $clickfas & " шт"& @CRLF & "         Узоры: " & $clickuzor & " шт"& @CRLF & "         Цвета одежды: " & $clickcvfason & " шт"& @CRLF & "         Цвета узоров: " & $clickcvuzor & " шт"& @CRLF & "6. Открыто достижений: " & $otkrdostij
   if $tmp <> $LabelText Then
      $tmp = $LabelText
      GUICtrlSetData($Label1, $LabelText)
   EndIf

EndFunc

Func _activation()                                                   ; Функция активации
   if $reg = 1 Then
      Msgbox(64,"Активация!","Вы используете полную версию программы! Активация не требуется!")
   Else
      InputBox('Ваш уникальный ID:',"Скопируйте ID и отправте его разработчику для активации:",_WinAPI_UniqueHardwareID(BitOR($UHID_MB, $UHID_BIOS, $UHID_CPU)),'',280,130)
        if @error == 1 Then
            _Exit()
        EndIf
   EndIf
EndFunc

Func _iegame()                                                       ; Функция запуска браузера
;~    $Form2 = GUICreate("IE для Великий Кутюрье", 806, 710, 0, 0)
;~    GUICtrlCreateObj($oIE, -195, -230, 1100, 1050)
;~    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
;~    GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form2Minimize")
;~    GUISetOnEvent($GUI_EVENT_RESTORE, "Form2Restore")
;~    GUISetState(@SW_SHOW, $Form2)
;~    _IENavigate($oIE, "https://vk.com/app3558100")
   GUISetState(@SW_SHOW) ;Show GUI
   $oIE.navigate("https://vk.com/app3558100")

EndFunc

Func _checkobn()                                                     ; Функция проверки открытой игры и обновление
    Local $sum
    $sum = $moneta + $main + $download + BitAND(GUICtrlRead($Radio4), $GUI_CHECKED)
   if $sum = 0 Then
      $kolpop -= 1
      TrayTip ( "", "Не найдена страница с игрой...  "& $kolpop, 10, 16)
      Sleep(1000)
  Else
      TrayTip("Очищает подсказку в трее", "", 0)
      Sleep(100)
      $kolpop = 60
   EndIf

   if $kolpop = 0 Then
      TrayTip ( "Не найдены страницы игры!", "Обновление страницы браузера!", 10, 16)
      _obnovit()
      MouseMove(1, 1, 10)
      $kolpop = 60
   EndIf

EndFunc

;========================================================Функци==========================================================

Func _ProcessGetMemory($nPID)
    Local Const $PROCESS_QUERY_INFORMATION = 0x400
    Local Const $PROCESS_VM_READ = 0x10

    ;get process ID
    If IsString($nPID) Then $nPID = ProcessExists($nPID)
    If $nPID = 0 Then Return -1

    ;get process handle, required for GetProcessMemoryInfo
    $aRet = DllCall("Kernel32.dll", "int", "OpenProcess", "dword", _
        $PROCESS_QUERY_INFORMATION+$PROCESS_VM_READ, "dword", False, "dword", $nPID)
    If @error Or ($aRet[0] = 0) Then Return -1

    $hProc = $aRet[0]

    ;create PPROCESS_MEMORY_COUNTERS to receive data, required for GetProcessMemoryInfo
    $structPROCESS_MEMORY_COUNTERS = DllStructCreate("dword;dword;uint peakmemsize;uint memsize;uint;uint;uint;uint;uint;uint")
    $nSize = DllStructGetSize($structPROCESS_MEMORY_COUNTERS)

    ;call GetProcessMemoryInfo
    $aRet = DllCall("Psapi.dll", "int", "GetProcessMemoryInfo", _
        "hwnd", $hProc, "ptr", DllStructGetPtr($structPROCESS_MEMORY_COUNTERS), "dword", $nSize)

    ;close process handle
    DllCall("Kernel32.dll", "int", "CloseHandle", "hwnd", $hProc)

    ;return memory size in kb
    Return DllStructGetData($structPROCESS_MEMORY_COUNTERS, "memsize") / 1024
EndFunc

Func _ShutDown($SMETHOD, $SLEAVEOPEN = "Program Manager")
    $I = 1
    If Not IsArray($SLEAVEOPEN) Then $SLEAVEOPEN = StringSplit($SLEAVEOPEN, '|')
    $SWINDOWS = WinList()
    While 1
        $FCLOSE = True
        If $SWINDOWS[$I][0] <> "" And BitAND( WinGetState($SWINDOWS[$I][1]), 2) And $SWINDOWS[$I][0] <> "Program Manager" Then
            If $SMETHOD == 4 Then
                For $X = 1 To $SLEAVEOPEN[0]
                    If StringInStr($SWINDOWS[$I][0], $SLEAVEOPEN[$X]) <> 0 Then $CLOSE = False
                Next
                If $FCLOSE Then WinClose($SWINDOWS[$I][0])
            Else
                WinClose($SWINDOWS[$I][0])
            EndIf
        EndIf
        $I += 1
        If $I == $SWINDOWS[0][0] Then
            If $SMETHOD == 0 Or $SMETHOD == 1 Or $SMETHOD == 2 Then Shutdown(Int($SMETHOD))
            ExitLoop
        EndIf
    WEnd
EndFunc
 
Верх