Показать полную графическую версию : [решено] Можно ли как-то выдавать звуковой сигнал по достижении пинга?
Есть батник ping 192.168.1.1 -t, при достижении КАЖДОГО пинга хочется слышать сигнал в колонки.
Если пинга нет, то звучат не должно. Это возможно?
Где-то вычитал, что можно использовать echo , но не знаю, как конкретно это реализовать.
Это возможно? »
Разумеется — нет. Вам некуда вставить вызов сигнала, поскольку у Вас просто бесконечно выполняется приложение.
Единственный вариант, который я вижу — отказаться от использования параметра -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.
ping 192.168.1.1 -t, при достижении КАЖДОГО пинга хочется слышать сигнал в колонки. »
От каждого — боюсь, что оглохнете :).
От каждого — боюсь, что оглохнете »
Да не, норм )
Спасибо большое!
Iska, аа, блин, он пищалку использует..? Я удаленно не слышу сигнал.. Печаль-тоска.
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, аа, блин, он пищалку использует..? Я удаленно не слышу сигнал.. Печаль-тоска. »
Лично у меня писк идёт через колонки. Проверьте на той машине состояние службы:
sc.exe query beep
и убедитесь, что символ BELL у Вас нормально скопировался и вставился:
https://i.imgur.com/vRTBMcr.png
Elven, лучше целиком сделать на PowerShell, поскольку постоянный вызов самого PowerShell в цикле может оказаться накладным.
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
}
}
А теперь руки начинают чесаться превратить это в функцию, запихнуть в папку с модулями и раздражать коллег пингом при каждой нужности.
Elven, я и здесь придерусь — объект Media.SoundPlayer лучше создать один раз за пределами цикла, а внутри — только использовать его.
А теперь руки начинают чесаться превратить это в функцию, запихнуть в папку с модулями и раздражать коллег пингом при каждой нужности. »
:).
Так?
$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
}
}
sc.exe query beep »
Подключаюсь удалённо через TeamViewer, пинги всё равно не слышны, хотя на месте через колонки звук есть. А другие звуки удалённо слышу, например, включая музыку.
Попробовал Ваш скрипт powershell, вылазит следующее: https://yadi.sk/i/f70t4_2vzWFq3g
В общем, если обобщить задачу, мне нужно удалённо подключаться к машине, которая пингуюет другую машину в локальной в сети, и издаёт звук при каждом удачном пинге.
Каким это образом будет реализовано, в принципе, без разницы. Главное быстро запустить, быстро закрыть )
nikhop, сочувствую. У TeamViewer'а всегда хватало проблем с воспроизведением удалённого аудио.
Попробовал Ваш скрипт powershell, вылазит следующее: https://yadi.sk/i/f70t4_2vzWFq3g »
Версия ОС на удалённой машине?
Попробуйте заменить командлет Test-NetConnection командлетом Test-Connection:
…
if (Test-Connection -ComputerName 192.168.1.1 -Count 1 -Quiet) {
…
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC