Что нового

[Окна, Диалоги] Включение/Отключение прокси в настройках Win 7. Получение значения CheckBox'a

steinebel

Новичок
Сообщения
1
Репутация
0
Всем привет. Это мой второй скрипт. С первым, я успешно справился сам. (Он 5 раз подряд открывал и закрывал CDRom :D).

А вот во втором скрипте, я пытаюсь включать/отключать проксю в настройках Обозревателя Win 7 (по ссылке скрин, с окнами которые задействую, кроме первого окна, его встаивл чтобы понять о чем речь).

Вот как я пытаюсь решить задачу (можно ржать и бросать тухлыми яйцами, потому что делаю в лоб, как могу корпя над мануалом и рыская по форуму):

[box title=Листинг]
Код:
;Let's find Internet Options on Win 7 from Start Menu

;Open Start menu
Send("{LWIN}")
Sleep(500)

;Find Internet Options menu, and wait it
Send("Internet Options{Enter}")
WinWaitActive("Свойства: Internet")

;Move to proper tab (Connections)
Send("^{TAB 4}")
Sleep(500)

;Alt+L to choose LAN Settings Button
Send("!l")
WinWaitActive("Local Area Network (LAN) Settings")

;Move to Proxy ChekBox
Send("{TAB 2}");

;Enable|Disable proxy
Send("{Space}")

;Save&Exit
Send("{Enter}")
Send("{Esc}")
[/box]

Все сводится к тому, что мне надо проверить и включить проксю, если она выключена. Я пытался ставить флажок с помощью ControlEnable, но так и не понял ее работу

Собственно вопрос:
Как получить значение чекбокса или другими словами проверить включена/выключена ли прокся и если да/нет, то выключить/включить ее?

p.s. Пинки за кривой и не оптимальный код приветствуются, ровно как и наставления по оптимизации!
 

zlo-kazan

Скриптер
Сообщения
374
Репутация
100
:rofl:
А вот как делают try-пацаны

Код:
Global $URL = "http://proxy.school.tatar.ru/wpad.dat"
Global $ProxyServer= "10.7.37.2:8080"
Global $ProxyOverride="*.tatar.ru;<local>"

$VarURL = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "AutoConfigURL")
$VarIP = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer")
$VarOvverride = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride")

If $URL=$VarURL And $ProxyServer=$VarIP and $ProxyOverride=$VarOvverride then
$Msg="настройки правильные" & @CRLF & "Пожалуйста перезапустите браузер."
else
$ProxiScriptURL = RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "AutoConfigURL", "REG_SZ", $URL)
$ProxiScriptIP = RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer", "REG_SZ", $ProxyServer)
$ProxiScriptOverride = RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride", "REG_SZ", $ProxyOverride)

$VarURL = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "AutoConfigURL")
$VarIP = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyServer")
$VarOvverride = RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride")

$Msg="настроено." & @CRLF & "Пожалуйста перезапустите браузер."
EndIF

If $URL=$VarURL And $ProxyServer=$VarIP and $ProxyOverride=$VarOvverride then
MsgBox(0,"Proxy i.tatar.ru/wpad.dat","Proxy: " & $Msg)
else
MsgBox(0,"Proxy Error","Настройки не прописаны")
EndIf

Код:
If RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyEnable")=0 then
msgbox(0,"","нет галочки на использовать Proxy-сервер")
else
msgbox(0,"","Есть галочка на использовать Proxy-сервер")
endif
 

VladUs

Скриптер
Сообщения
621
Репутация
181
Код:
;Задать Proxy

$Port  =  "8080"
$ProxyServer = "MyProxy.ru"

$objWMIService = ObjGet("winmgmts:\\" & "localhost" & "\root\CIMV2") 
$objShare = $objWMIService.Get("Win32_Proxy.ServerName='Localhost'")

$objInParam = $objShare.Methods_("SetProxySetting").inParameters.SpawnInstance_()
$objInParam.Properties_.Item("ProxyPortNumber") =  $Port 
$objInParam.Properties_.Item("ProxyServer") =  $ProxyServer

$objOutParams = $objWMIService.ExecMethod("Win32_Proxy.ServerName='Localhost'", "SetProxySetting", $objInParam)

;Получить Proxy

$objWMIService = ObjGet("winmgmts:\\" & "localhost" & "\root\CIMV2") 
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_Proxy") 
For $objItem in $colItems 
    
$ProxyPort =   $objItem.ProxyPortNumber 
$ProxyServer =  $objItem.ProxyServer 
  
If $ProxyPort <> "" Or $ProxyServer <> "" Then
    MsgBox(1, "Параметры  Proxy", "ProxyPort: " & $ProxyPort & @CRLF & "ProxyServer: "  & $ProxyServer) 
Else
    MsgBox(1, "Параметры  Proxy", "Proxy не настроен") 
EndIf

Next
 

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
А есть способ отключить прокси?
 

sngr

AutoIT Гуру
Сообщения
1,010
Репутация
408
Код:
$Port  =  " "
$ProxyServer = " "

так отключаешь.
 

Astel064

Помог мой пост, ставь +!
Сообщения
276
Репутация
51
Код:
$Port  =  " "
$ProxyServer = " "

так отключаешь.
Прокси в настройках обозревателя не отключается, а меняется на пробельные символы. Есть вариант отключить, а не перезаписать?

Если сделать так:
Код:
$Port  =  ""
$ProxyServer = ""

, то вылазиет ошибка...
 
Верх