Что нового

Сеть, интернет Проверка соединения.

rem24

Новичок
Сообщения
14
Репутация
0
Добрый день. Есть комп к которому постоянно подключено оборудование по сети. Это оборудование периодически отваливается. Я хочу постоянно его пинговать и в случает отвала оповещать оператора сообщение. Помогите, почему не работает?

Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

OnAutoItExitRegister('CoordSave')

Local $Button_1, $sSettings = @ScriptDir & '\setting.ini'

$hGUI = GUICreate("PixelSearch", 200, 300)

GUICtrlCreateLabel('                Left', 10, 10, 180, 20)
$hLeft = GUICtrlCreateInput(IniRead($sSettings, 'main', 'left', ''), 10, 30, 180, 20)


GUISetState(@SW_SHOW, $hGUI)

$Button_1 = GUICtrlCreateButton("Ок", 40, 260, 120)
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
             ExitLoop
          Case $Button_1
              GUISetState(@SW_HIDE)
    EndSwitch
Pixel_Search()
WEnd

Func Pixel_Search()
Ping("GUICtrlRead($hLeft)", 250)
If Not @error Then
SoundSetWaveVolume(100) ; устанавливает громкость
SoundPlay(@WindowsDir & "\media\tada.wav", 1)

MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1) ; Действие
EndIf
Sleep(100)
EndFunc

Func CoordSave()
IniWrite($sSettings, 'main', 'left', GUICtrlRead($hLeft))
EndFunc
 
Автор
R

rem24

Новичок
Сообщения
14
Репутация
0
Спасибо. Ещё одна проблемка. Програмка работает но на оборот). При наличии интернета она оповещает меня о при его отключении затихает, а должно быть наоборот. Как поправить?
 

IMStrelcov

CTPEJIbLLOB
Сообщения
205
Репутация
40
Код:
Func Pixel_Search()
Ping("GUICtrlRead($hLeft)", 250)
If Not @error Then
SoundSetWaveVolume(100) ; устанавливает громкость
SoundPlay(@WindowsDir & "\media\tada.wav", 1)

MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1) ; Действие
EndIf
Sleep(100)
EndFunc
Наверное заменить:
Код:
If Not @error Then

на:
Код:
If @error Then
 

IMStrelcov

CTPEJIbLLOB
Сообщения
205
Репутация
40
Функция Ping
Успех:Возвращает задержки в миллисекундах (больше чем 0).
Ошибка:Возвращает 0, если хост не пингуется или произошли другие сетевые ошибки и устанавливается @error.
Значит разумно так:
Код:
Func Pixel_Search()
   If Not Ping(GUICtrlRead($hLeft), 250) Then
      SoundSetWaveVolume(100)
      SoundPlay(@WindowsDir & "\media\tada.wav", 1)
      MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1)
   EndIf
   Sleep(100)
EndFunc

Не забываем читать справку.
 
Автор
R

rem24

Новичок
Сообщения
14
Репутация
0
Может я что-то не так понял, но программа постоянно срабатывает, вне зависимости от наличия подключения.
Код:
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>

OnAutoItExitRegister('CoordSave')

Local $Button_1, $sSettings = @ScriptDir & '\setting.ini'

$hGUI = GUICreate("PixelSearch", 200, 300)

GUICtrlCreateLabel('                Left', 10, 10, 180, 20)
$hLeft = GUICtrlCreateInput(IniRead($sSettings, 'main', 'left', ''), 10, 30, 180, 20)


GUISetState(@SW_SHOW, $hGUI)

$Button_1 = GUICtrlCreateButton("Ок", 40, 260, 120)
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
             ExitLoop
          Case $Button_1
              GUISetState(@SW_HIDE)
    EndSwitch
Pixel_Search()
WEnd


Func Pixel_Search()
   If Not Ping(GUICtrlRead($hLeft), 250) Then
      SoundSetWaveVolume(100)
      SoundPlay(@WindowsDir & "\media\tada.wav", 1)
      MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1)
   EndIf
   Sleep(100)
EndFunc



Func CoordSave()
IniWrite($sSettings, 'main', 'left', GUICtrlRead($hLeft))
EndFunc
 

IMStrelcov

CTPEJIbLLOB
Сообщения
205
Репутация
40
У меня только Wi-Fi подключение и все работает как нужно, покрайней мере этот кусок кода:
Код:
If Not Ping(GUICtrlRead($hLeft), 250) Then
      SoundSetWaveVolume(100)
      SoundPlay(@WindowsDir & "\media\tada.wav", 1)
      MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1)
EndIf

При подключенном выходе в инет, скрипт молча выходит, а при отсутствии выхода в инет скрипт воспроизводит звук показывает сообщение.
 
Автор
R

rem24

Новичок
Сообщения
14
Репутация
0
У меня только Wi-Fi подключение и все работает как нужно, покрайней мере этот кусок кода:
Код:
If Not Ping(GUICtrlRead($hLeft), 250) Then
      SoundSetWaveVolume(100)
      SoundPlay(@WindowsDir & "\media\tada.wav", 1)
      MsgBox(16 + 262144, "Сообщение", "Ошибка записи!", 1)
EndIf

При подключенном выходе в инет, скрипт молча выходит, а при отсутствии выхода в инет скрипт воспроизводит звук показывает сообщение.
Дело было в таймауте. Сделал таймаут 4000 и всё заработало как нужно. Видимо интернет не успевал.
 
Верх