Здравствуйте! Я только начал изучать Autoit. Требуется помощь в создании GUI для бота.
Приложение в ВК: app3558100
Вот код бота:
Некоторые функци взяты из этого форума.
При запуске бота, запускается окно с игрой и он начинает нормально работать.
Вопрос: как сделать рядом с этим окном, еще одно окно с настройками, которые можно изменять в любой момент(как настройки в трее)?
Приложение в ВК: 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
Некоторые функци взяты из этого форума.
При запуске бота, запускается окно с игрой и он начинает нормально работать.
Вопрос: как сделать рядом с этим окном, еще одно окно с настройками, которые можно изменять в любой момент(как настройки в трее)?