Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Можно ли как-то выдавать звуковой сигнал по достижении пинга? (http://forum.oszone.net/showthread.php?t=341689)

nikhop 06-08-2019 03:25 2882828

Можно ли как-то выдавать звуковой сигнал по достижении пинга?
 
Есть батник ping 192.168.1.1 -t, при достижении КАЖДОГО пинга хочется слышать сигнал в колонки.
Если пинга нет, то звучат не должно. Это возможно?

Где-то вычитал, что можно использовать
Код:

echo 
, но не знаю, как конкретно это реализовать.

Iska 06-08-2019 05:14 2882830

Цитата:

Цитата nikhop
Это возможно? »

Разумеется — нет. Вам некуда вставить вызов сигнала, поскольку у Вас просто бесконечно выполняется приложение.

Единственный вариант, который я вижу — отказаться от использования параметра -t и реализовать ручное зацикливание, наподобие:
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

:Repeat
        2>nul ping.exe -w 1000 -n 1 192.168.1.1 | >nul find.exe /i "TTL=" && <nul set /p sVar=.

        >nul timeout.exe /t 1 /nobreak
        goto :Repeat

endlocal
exit /b 0

В команде set /p между символами «=» и «.» находится символ с кодом 0x07, он же BELL.

Цитата:

Цитата nikhop
ping 192.168.1.1 -t, при достижении КАЖДОГО пинга хочется слышать сигнал в колонки. »

От каждого — боюсь, что оглохнете :).

nikhop 06-08-2019 05:17 2882831

Цитата:

Цитата Iska
От каждого — боюсь, что оглохнете »

Да не, норм )
Спасибо большое!

Iska, аа, блин, он пищалку использует..? Я удаленно не слышу сигнал.. Печаль-тоска.

Elven 06-08-2019 09:17 2882845

nikhop, можно и в колонки
Код:

@echo off
setlocal enableextensions enabledelayedexpansion

:Repeat
        2>nul ping.exe -w 1000 -n 1 8.8.8.8 | >nul find.exe /i "TTL=" && powershell -c (New-Object Media.SoundPlayer 'c:\Windows\Media\ding.wav').PlaySync()

        >nul timeout.exe /t 1 /nobreak
        goto :Repeat

endlocal
exit /b 0


Iska 06-08-2019 12:49 2882867

Цитата:

Цитата nikhop
Iska, аа, блин, он пищалку использует..? Я удаленно не слышу сигнал.. Печаль-тоска. »

Лично у меня писк идёт через колонки. Проверьте на той машине состояние службы:
Код:

sc.exe query beep
и убедитесь, что символ BELL у Вас нормально скопировался и вставился:
Скрытый текст


Elven, лучше целиком сделать на PowerShell, поскольку постоянный вызов самого PowerShell в цикле может оказаться накладным.

Elven 06-08-2019 13:29 2882871

Iska, язык-то указан cmd/bat, а так - пожалуйста.
Код:

WHILE ($true) {
    if (Test-NetConnection -InformationLevel Quiet 8.8.8.8) {
        (New-Object Media.SoundPlayer 'c:\Windows\Media\ding.wav').PlaySync()
        Start-Sleep 1
    }
}

А теперь руки начинают чесаться превратить это в функцию, запихнуть в папку с модулями и раздражать коллег пингом при каждой нужности.

Iska 06-08-2019 13:51 2882875

Elven, я и здесь придерусь — объект Media.SoundPlayer лучше создать один раз за пределами цикла, а внутри — только использовать его.

Цитата:

Цитата Elven
А теперь руки начинают чесаться превратить это в функцию, запихнуть в папку с модулями и раздражать коллег пингом при каждой нужности. »

:).

Elven 06-08-2019 14:42 2882885

Так?
Код:

$sound = New-Object Media.SoundPlayer 'c:\Windows\Media\ding.wav'

WHILE ($true) {
    if (Test-NetConnection -InformationLevel Quiet 8.8.8.8) {
        $sound.PlaySync()
        Start-Sleep 1
    }
}


Iska 06-08-2019 15:25 2882889

Elven, ага.

nikhop 07-08-2019 03:33 2882962

Цитата:

Цитата Iska
sc.exe query beep »

Подключаюсь удалённо через TeamViewer, пинги всё равно не слышны, хотя на месте через колонки звук есть. А другие звуки удалённо слышу, например, включая музыку.

Попробовал Ваш скрипт powershell, вылазит следующее: https://yadi.sk/i/f70t4_2vzWFq3g

В общем, если обобщить задачу, мне нужно удалённо подключаться к машине, которая пингуюет другую машину в локальной в сети, и издаёт звук при каждом удачном пинге.
Каким это образом будет реализовано, в принципе, без разницы. Главное быстро запустить, быстро закрыть )

Iska 07-08-2019 05:31 2882965

nikhop, сочувствую. У TeamViewer'а всегда хватало проблем с воспроизведением удалённого аудио.

Цитата:

Цитата nikhop
Попробовал Ваш скрипт powershell, вылазит следующее: https://yadi.sk/i/f70t4_2vzWFq3g »

Версия ОС на удалённой машине?

Попробуйте заменить командлет Test-NetConnection командлетом Test-Connection:
Код:


    if (Test-Connection -ComputerName 192.168.1.1 -Count 1 -Quiet) {



Время: 05:12.

Время: 05:12.
© OSzone.net 2001-