Что нового

[Элементы GUI] Смена IP адреса по выбору

sanf

Новичок
Сообщения
30
Репутация
0
Здравствуйте. Подскажите что не так делаю....
DHCP - ok, а вот корпоративная сеть никак.....и почему то окно на крестик не закрывается

Код:
#include<process.au3>
#Include<file.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$lan="Подключение по локальной сети"
$ip="172.16.155.19"
$mask="255.255.255.240"
$gateway="172.16.155.17"
$prim_dns="0.0.0.0"
$sec_dns="0.0.0.0"


$Form1 = GUICreate("Настройка подключения", 230, 80, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
$Button1 = GUICtrlCreateButton("DHCP", 140, 20, 80, 40)
$Button2 = GUICtrlCreateButton("Корпоративная сеть", 10, 20, 120, 40)
GUISetState(@SW_SHOW)


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
		 Case $Button1
$dhcpip="netsh interface ip set address name=""" & $lan & """ source=dhcp"
$dhcpdns="netsh interface ip set dns name=""" & $lan & """ source=dhcp"

_RunDOS($dhcpip)
_RunDOS($dhcpdns)
            
MsgBox(4096, "Настройка подключения", "Настройка сетевого подключения " & $lan & " успешно завершена.", 0)
Exit
         Case $Button2
$setip1="netsh interface ip set address name=" & $lan & " source=static addr=" & $ip &" mask=" & $mask & " gateway=" & $gateway & " gwmetric=1"
$setip2="netsh interface ip set dns name=" & $lan & " source=static addr=" & $prim_dns & " register=PRIMARY"
$setip3="netsh interface ip add dns name=" & $lan & " addr="& $sec_dns & " index=2"

_RunDOS($setip1)
_RunDOS($setip2)
_RunDOS($setip3)

MsgBox(4096, "Настройка подключения", "Настройка сетевого подключения " & $lan & " успешно завершена.", 0)
    EndSwitch
WEnd
 

beliy

Продвинутый
Сообщения
372
Репутация
72
sanf сказал(а):
DHCP - ok, а вот корпоративная сеть никак....
очень информативно) Старайтесь более детально описывать проблему.

Что касается кода, то он хоть и кривоват, но рабочий.
Теперь по замечаниям:

1) Избыточные инклуды:
Код:
#Include<file.au3>
#include <EditConstants.au3>


2) Не корректные значения в DNS:
a) DNS не может быть 0.0.0.0, так как это обозначение ЛЮБОГО IP, что для DNS не допустимо (попробуйте вручную указать и сами увидите)
б) Альтернативный DNS не может совпадать с основным (также попробуйте вручную указать и система ругнется на это)
Код:
$prim_dns="0.0.0.0"
   $sec_dns="0.0.0.0"


3) Для лучшего понимания вашего кода (даже для себя самого) правильно оформляйте его с помощью TAB'ов:
Для наглядности ваш кусок кода:

Код:
#include<process.au3>
;#Include<file.au3> ; Избыточный
;#include <EditConstants.au3> ; Избыточный
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$lan="Подключение по локальной сети"
$ip="172.16.155.19"
$mask="255.255.255.240"
$gateway="172.16.155.17"
$prim_dns="0.0.0.0"
$sec_dns="0.0.0.0"


$Form1 = GUICreate("Настройка подключения", 230, 80, -1, -1, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
$Button1 = GUICtrlCreateButton("DHCP", 140, 20, 80, 40)
$Button2 = GUICtrlCreateButton("Корпоративная сеть", 10, 20, 120, 40)
GUISetState(@SW_SHOW)


While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
         Case $Button1
               $dhcpip="netsh interface ip set address name=""" & $lan & """ source=dhcp"
               $dhcpdns="netsh interface ip set dns name=""" & $lan & """ source=dhcp"

              _RunDOS($dhcpip)
              _RunDOS($dhcpdns)
           
               MsgBox(4096, "Настройка подключения", "Настройка сетевого подключения " & $lan & " успешно завершена.", 0)
               Exit
         Case $Button2
              $setip1="netsh interface ip set address name=" & $lan & " source=static addr=" & $ip &" mask=" & $mask & " gateway=" & $gateway & " gwmetric=1"
              $setip2="netsh interface ip set dns name=" & $lan & " source=static addr=" & $prim_dns & " register=PRIMARY"
              $setip3="netsh interface ip add dns name=" & $lan & " addr="& $sec_dns & " index=2"

             _RunDOS($setip1)
             _RunDOS($setip2)
             _RunDOS($setip3)

            MsgBox(4096, "Настройка подключения", "Настройка сетевого подключения " & $lan & " успешно завершена.", 0)
            Exit ;для первой кнопки у вас он был 
       ;то что вам уже подсказали)
       Case $GUI_EVENT_CLOSE
            Exit
       EndSwitch
WEnd
 
Автор
S

sanf

Новичок
Сообщения
30
Репутация
0
Спасибо))...буду стараться тщательней излагать проблему.
 
Верх