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


105

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

답변:


193

.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를 참조하십시오 .


11
방금 Win 7 x64 RC에서 테스트했는데 내부 스피커에서 신호음이 울리지 않았지만 플러그를 꽂고 켰을 때 스피커에서 신호음이 들렸습니다. 삐 소리가 나지 않는 것은 내부 (mobo) 스피커 일 뿐이라고 생각합니다. 정보 @Lck에 감사드립니다.
a_hardin

22
그 이유는 다음과 같습니다. blogs.msdn.com/larryosterman/archive/2010/01/04/…
Michael Stum

3
x64에서 작동해야하지만 소리는 일반 스피커 (음소거 가능)를 통해 나옵니다. blogs.msdn.com/larryosterman/archive/2010/01/04/…
Tarnay Kálmán

x86이 있지만 내부 스피커에서 소리가 나지 않습니다! 외부 스피커 만? !!!!
Rafik Bari

1
@LorenzCK 그게 ... 100 % 사실이 아니야? 나는 Win7 64를 가지고 있고 Beep()외부 스피커를 통해 모든 주파수 를들을 수 있습니다. 그러나 내부 부분은 +1, 나는 그것을 깨닫지 못했습니다.
BK

146

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

    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 에 있습니다 .


안타깝게도 이러한 시스템 사운드에는 외부 스피커가 필요하며 항상 신뢰할 수있는 것은 아닙니다. 그래도 이것들을 아는 것은 확실히 좋습니다!
a_hardin

1
이제 x64 버전의 Windows에서 Console.Beep ()을 들으려면 스피커가 필요하므로 이러한 옵션도 마찬가지로 작동합니다.
a_hardin

4
내장 스피커가있는 랩톱의 Vista x64는 Console.Beep ()를 재생하지 않지만 괜찮습니다.
Andy Dent



7

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

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


그러나 사운드 카드를 통해 작동 / 신호음이 울린다는 보장은 없습니다. 내 Windows 10 시스템에서 경고음이 없다 - 사운드 카드는 물론 작동
hfrmobile

4

나는 나 자신을위한 해결책을 찾는 동안이 질문을 만났다. 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)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.