1

Это новый вызов: я хочу, чтобы командная строка Windows 10 или окно PowerShell воспроизводили очень короткий, «тиковый» звук, как в фильмах, каждый раз, когда в командном окне печатается новая строка, будь то непосредственно в команде или в среде, скажем, >>> python, я хочу, чтобы она отмечалась галочкой, каждый раз, когда выводится новая строка, независимо от того, какое приложение запускается внутри cmd.

Прелесть всего этого в том, что вы можете легко сделать это в терминалах Linux. Есть идеи, как это сделать для Widnows 10?

Спасибо ребята

1 ответ1

3

Воспроизвести звук в PS так же просто, как сделать это ...

# this
"`a" 

# or this basic tone
[console]::beep(1000, 500)

Измените значение первого числа, чтобы изменить высоту тона (ничего ниже 190 или выше 8500 не будет слышно), и измените значение второго числа, чтобы изменить длительность:

# Or this
[System.Media.SystemSounds]::Beep.Play()

Затем свяжите это с выходным кодом. Для внешнего exe-файла в PS вы должны написать код для получения выходных данных с помощью перенаправления PS.

Используйте любой инструмент, который вы выберете, чтобы создать звук, который вы хотите воспроизвести. Конечно, это должно быть на всех системах, на которых вы планируете запускать свой код.

1..3 | %{
    'Play a sound'
    [console]::beep(1000, 500)
}

Обновление для ОП

Не волнуйтесь.

Что касается (1) - вам просто нужно добавить звуковую линию до или после ожидаемого вывода текста, как в этом показанном примере цикла.
Что касается (2), это далеко не так гибко. Вы можете использовать CRTL+G в файле .bat/.cmd и вызывать его до или после ожидаемой строки вывода.

Тем не менее, опять же, вам придется кодировать, чтобы перехватить весь вывод, который вы ищете. Воспроизведение файлов WAV означает вызов медиаплеера в вашем коде, особенно для cmd.exe.

# PowerShell playing a wav file
$PlayWav=New-Object System.Media.SoundPlayer
$PlayWav.SoundLocation='C:\Foo\Soundfile.wav'
$PlayWav.playsync()

# CMD playing a wav file
start 'C:\Foo\Soundfile.wav'

Вот реальная проблема с воспроизведением файлов .wav или чем-то, что находится за пределами обычных звуковых сигналов консоли, медиаплеер будет вызываться каждый раз и должен отображаться для воспроизведения файла и должен быть закрыт. Не очень автоматизированная вещь ..

Итак, ИМХО за то, что вы после придерживаетесь родной консоли, звучит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .