#NoTrayIcon
; идентификация компьютера
If @ComputerName <> "ALEX-NET" Or @DesktopWidth <> 800 Or @DesktopHeight <> 600 Then
MsgBox(64, "Information", "Программа сделана только для моего компьютера"&@LF&"на других компьютерах она работать не может", 30)
Exit
EndIf
If WinExists("rout") Then
MsgBox(64, "Information", "Только одна копия программы может быть запущена", 30)
Exit
EndIf
AutoItWinSetTitle("rout")
Opt("TrayMenuMode", 3)
Opt("GUICloseOnEsc", 0)
#include <GUIConstants.au3>
Global $e = 1, $check1, $button1state, $button3state, $IP3c, $IP4c, $hide = 0
$IP3c = "192.168.0"
$gui = GUICreate("Автоматическая установка параметров", 400, 400)
$button1 = GUICtrlCreateButton("Start &ping", 40, 10, 60, 30)
$button1state = 0
GUICtrlCreateLabel("Показывает IP устройств в сети", 120, 10, 180, 30)
$list = GUICtrlCreateList("", 10, 50, 190, 80)
$label = GUICtrlCreateLabel("Mon: waiting", 30, 170, 150, 30)
$button2 = GUICtrlCreateButton("&Переключить доступ к интернету", 10, 210, 180, 30)
$checkbox1 = GUICtrlCreateCheckbox("&Включить звук", 10, 250, 120, 30)
$check1 = 1
GUICtrlSetState($checkbox1, $GUI_CHECKED)
$button3 = GUICtrlCreateButton("Включить &автонастройку", 150, 250, 160, 30)
$button3state = 1
GUISetState()
$t_item1 = TrayCreateItem("Показать окно программы")
$t_item2 = TrayCreateItem("Выход")
TraySetState(1)
TraySetToolTip("prog_v_router")
While 1
event()
Sleep(100)
WEnd
Func _button1()
If $button1state = 0 Then
$button1state = 1
GUICtrlSetData($button1, "Stop &ping")
GUICtrlSetData($list, "")
$IP4c = 0
While $IP4c <= 254
$d = ping($IP3c&"."&$IP4c, 100)
If $d <> 0 Then GUICtrlSetData($list, $IP3c&"."&$IP4c)
$IP4c = $IP4c + 1
event()
WEnd
$button1state = 0
GUICtrlSetData($button1, "Restart &ping")
ElseIf $button1state = 1 Then
$IP4c = 254
EndIf
EndFunc
Func event()
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
WinSetState($gui, "", @SW_HIDE)
$hide = 1
Case $button1
_button1()
Case $button2
_SetParam()
_SetParam()
Case $checkbox1
If GUICtrlRead($checkbox1) = 1 Then
$check1 = 1
Else
$check1 = 0
EndIf
Case $button3
If $button3state = 0 Then
GUICtrlSetData($button3, "Включить &автонастройку")
$button3state = 1
ElseIf $button3state = 1 Then
GUICtrlSetData($button3, "Спрашивать о &автонастройке")
$button3state = 2
ElseIf $button3state = 2 Then
GUICtrlSetData($button3, "Отключить &автонастройку")
$button3state = 0
EndIf
EndSwitch
Switch TrayGetMsg()
Case $t_item1
WinSetState($gui, "", @SW_SHOW)
$hide = 0
WinActivate($gui)
Case $t_item2
Exit
EndSwitch
$a = ping("192.168.0.1", 100)
If $a = 0 Then
$w = -1
Else
$w = $a
EndIf
If $w <> -1 Then
If $e = 1 Then
If $check1 Then
SoundPlay("C:\Windows\media\tada.wav", 0)
EndIf
GUICtrlSetData($label, "Mon: connected "&@HOUR&" : "&@MIN&" : "&@SEC)
$e = 2
EndIf
Else
If $e = 2 Then
If $check1 Then
SoundPlay("C:\Windows\media\ding.wav", 0)
EndIf
GUICtrlSetData($label, "Mon: disconnected "&@HOUR&" : "&@MIN&" : "&@SEC)
If $button3state = 1 Then
_SetParam()
_SetParam()
ElseIf $button3state = 2 Then
If $hide = 0 Then
WinActivate($gui)
EndIf
If $hide Then WinSetState($gui, "", @SW_SHOW)
$r = MsgBox(4, "Автонастройка", "Выполнить автоматическую настройку сети?", 60, $gui)
If $hide Then WinSetState($gui, "", @SW_HIDE)
If $r = 6 Or $r = -1 Then
_SetParam()
_SetParam()
EndIf
EndIf
$e = 1
EndIf
EndIf
EndFunc
Func _SetParam()
Local $titles[4], $texts[3]
$titles[0] = "Главное меню"
$titles[1] = "Сетевые подключения"
$titles[2] = "Состояние MegaFon Internet"
$titles[3] = "MegaFon Internet - свойства"
$texts[0] = "Имя пользователя и пароль"
$texts[1] = "Поскольку это подключение в данный момент используется"
$texts[2] = "Чтобы разрешить общий доступ"
Local $cn = 1, $wt = 10, $fIsD = 0
GUICtrlSetState($list, $GUI_FOCUS)
GUICtrlSetState($button2, $GUI_DISABLE)
SplashTextOn("Автонастройка", "Подождите... выполняется автонастройка сети..."&@CRLF&"Эту настройку нельзя прерывать.")
BlockInput(1)
;
If $hide Then WinSetState($gui, "", @SW_SHOW)
WinActivate($gui)
Send("#")
Sleep(900)
MouseClick("", 0, @DesktopHeight-1, 1, 10) ; открыли меню пуск (главное меню)
WinWaitActive($titles[0], "", $wt)
If Not WinActive($titles[0]) Then $cn = 0
If $cn Then
Send("ч") ; развернули подменю подключения
Sleep(300)
Send("о") ; нажали отобразить все подключения
EndIf
;
WinWaitActive($titles[1], "", $wt)
If Not WinActive($titles[1]) Then $cn = 0
If $cn Then
Send("{space}")
Sleep(200)
Send("{enter}")
Sleep(100)
; открыли окно MegaFon Internet
EndIf
;
WinWaitActive($titles[2], "", $wt)
If Not WinActive($titles[2]) Then $cn = 0
If $cn Then
Sleep(200)
Send("!й")
; открыли свойства
EndIf
;
WinWaitActive($titles[3], "", $wt)
If Not WinActive($titles[3]) Then $cn = 0
If $cn Then
Sleep(300)
Send("{down}")
Sleep(300)
Send("{end}")
Sleep(300)
Send("!р")
Sleep(300)
;(
If WinActive($titles[1], $texts[0]) Then
Send("{space}")
EndIf
;)
Sleep(900)
ControlClick($titles[3], "", 1) ; ОК
Sleep(900)
;(
If WinActive($titles[1], $texts[1]) Then
Send("{space}")
EndIf
;)
; на вкладке дополнительно нажали разрешить общий доступ, если появилось сообщение закрыли его и кликнули ОК
EndIf
;
WinWaitActive($titles[1], $texts[2], $wt)
If Not WinActive($titles[1], $texts[2]) Then $cn = 0
If $cn Then
$fIsD = 1
Send("{space}")
Sleep(700)
Send("!ю")
Sleep(200)
Send("б")
Sleep(100)
ControlClick($titles[3], "", 1) ; ОК
Sleep(900)
;(
If WinActive($titles[1], $texts[0]) Then
Send("{space}")
EndIf
Sleep(900)
If WinActive($titles[1], $texts[1]) Then
Send("{space}")
EndIf
;)
; выбрали частное подключение, закрыли сообщение если оно появилось и опять кликнули ОК
EndIf
;
WinWaitClose($titles[3], "", 40)
Sleep(200)
WinClose($titles[2])
WinClose($titles[1])
; ставим параметры и закрываем окно
MouseMove(Floor(random(200, 400)), Floor(random(200, 400)), 50)
If $hide = 1 Then
WinSetState($gui, "", @SW_HIDE)
Else
WinActivate($gui)
EndIf
BlockInput(0)
SplashOff()
GUICtrlSetState($button2, $GUI_ENABLE)
Return $fIsD
EndFunc