2010-09-02 25 views
6

Quando ho provato Console.Beep() su Windows Vista (64 bit), semplicemente non funziona. L'altoparlante stesso è OK, quando il PC si avvia, emette un segnale acustico. Qualche consiglio? Grazie!C# - Console.Beep non funziona su Windows Vista

+0

aggiornamento a 7 :) –

+0

Stai provando ad usare l'altoparlante del PC interno o lo vuoi suonare sopra i diffusori da tavolo? –

+0

Altoparlante PC interno. Win 64 – Petr

risposta

10

È a 64 bit Vista?

Console.Beep chiama la funzione API Beep che non è supportata su Vista a 64 bit.

Quote: Windows Vista x64 e Windows XP 64-Bit Edition: questa funzione non è supportata.

Potrebbe essere possibile utilizzare MessageBeep invece se è ok con il segnale acustico che passa attraverso gli altoparlanti anziché direttamente dalla scheda madre. Vedere here per come chiamare questo da C#.

+0

A quanto pare, dovevano essere detti in un primo momento, prima che fosse documentato, vedere : https://connect.microsoft.com/VisualStudio/feedback/details/356978/console-beep-doesnt-work-under-vista-64-bit?wa=wsignin1.0 – Abel

2

il metodo Beep non è supportato su Vista/XP x64. Suppongo che hai un sistema operativo a 64 bit?

+0

Accidenti, come viene? Sì, 64 Vista :(Qualsiasi soluzione alternativa? – Petr

+0

http://msdn.microsoft.com/en-us/library/4fe3hdb1.aspx è un riferimento a quello –

+0

Posso confermare che funziona su Windows 7 a 64 bit (sarà utilizzare gli altoparlanti del desktop e non l'altoparlante interno del PC.) –

1

Come altri hanno suggerito, lo Console.Beep() non funziona su finestre a 64 bit come the documentation states. Invece, è possibile utilizzare la seguente istruzione che emette un segnale acustico (ma non attraverso l'API Beep):

// beep 
System.Media.SystemSounds.Beep.Play(); 

Soluzione originariamente found here at MSDN Connect.

+0

Non funziona in SystemSounds è un Beep ma non è un metodo. SoundsSystems na mespace è noto al mio VS 2010 – Petr

+0

@Petr: 'Beep' non è un metodo, è una proprietà di tipo' SystemSound' (senza 's'). Ha un metodo, 'Play()'. Ho corretto l'errore di battitura. Ora funziona. – Abel

+0

Grazie. Tuttavia riproduce semplicemente il suono associato, in nessun modo come cambiare la frequenza, ecc .:( – Petr

Problemi correlati