Что нового

автоматизация процесса расшаривания подключения к интернету

Артур87

Новичок
Сообщения
2
Репутация
0
Версия AutoIt: 3.3.8.1

Описание: Нобходимо в свойствах сетевого подключения beeline во вкладке доступ поставить галочку "резрешить другим пользователям сети использовать подключение к интернету данного компьютера" и выбрать из выпадающего списка сеть local. и соглашаться с действиями в последующих 2ух окнах

Примечания: скрины окон во вложении


Добавлено:
Сообщение автоматически объединено:




Добавлено:
Сообщение автоматически объединено:
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Сто лет назад делал скрипт для подправки подключения через Wi-Fi для Windows XP.
Скрипт рабочий, но код не отлаженный, грязный и наверное непонятный...
Вот выкладываю свой скрипт, может чем поможет:
Код:
#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
Обрати внимание на функцию _SetParam() (она самая последняя)
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Ну а не проще регшот->регфайл сделать, чем кликалками забавляться...
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
erlik сказал(а):
Ну а не проще регшот->регфайл сделать, чем кликалками забавляться...
Да можно, только я не знал как... Конечно так будет намного лучше и быстрей...
 

erlik

Продвинутый
Сообщения
317
Репутация
84
Я бы попробовал для точности результата сразу две утилиты - RegShot для глобального отслеживания изменений на период настройки, и одновременно, RegFromApp указав ей приложение Beeline для точечного отслеживания. Затем останется сравнить, что получилось, убрать лишние твики и получить готовый regfile.
 
Верх