[c#] C #에서 컴퓨터 경고음을 어떻게 만들 수 있습니까?

외부 스피커없이 C #에서 컴퓨터의 내부 스피커 신호음을 어떻게 만들 수 있습니까?



답변

.Net 2.0에서는 Console.Beep ()을 사용할 수 있습니다.

// Default beep
Console.Beep();

신호음의 빈도와 길이를 밀리 초 단위로 지정할 수도 있습니다.

// Beep at 5000 Hz for 1 second
Console.Beep(5000, 1000);

자세한 내용은 http://msdn.microsoft.com/en-us/library/8hftfeyw%28v=vs.110%29.aspx를 참조하십시오 .


답변

상대적으로 사용되지 않는 다음을 사용할 수도 있습니다.

    System.Media.SystemSounds.Beep.Play();
    System.Media.SystemSounds.Asterisk.Play();
    System.Media.SystemSounds.Exclamation.Play();
    System.Media.SystemSounds.Question.Play();
    System.Media.SystemSounds.Hand.Play();

이 사운드에 대한 문서는 http://msdn.microsoft.com/en-us/library/system.media.systemsounds(v=vs.110).aspx 에 있습니다 .


답변

해결책은 다음과 같습니다.

Console.Beep


답변

이 시도

Console.WriteLine("\a")


답변

이 확인되고 Windows 7 및 최신 버전 (적어도 64 비트 또는 둘 다) 시스템 스피커를 사용하지 않는 기본 사운드 장치로 대신 그들은 경로 호출.

따라서 system.beep()win7 / 8 / 10에서 사용하면 내부 시스템 스피커를 사용하여 사운드가 생성되지 않습니다. 대신 사용 가능한 경우 외부 스피커에서 신호음이 울립니다.


답변

나는 나 자신을위한 해결책을 찾는 동안이 질문을 만났다. kernel32 항목을 실행하여 시스템 경고음 기능을 호출하는 것을 고려할 수 있습니다.

using System.Runtime.InteropServices;
        [DllImport("kernel32.dll")]
        public static extern bool Beep(int freq, int duration);

        public static void TestBeeps()
        {
            Beep(1000, 1600); //low frequency, longer sound
            Beep(2000, 400); //high frequency, short sound
        }

이것은 powershell을 실행할 때와 동일합니다.

[console]::beep(1000, 1600)
[console]::beep(2000, 400)


답변