2009-09-28 7 views
6

Mon application doit émettre un bip lorsque la validation échoue pour que l'utilisateur (qui peut être éloigné de plusieurs mètres) l'entende. Je voudrais utiliser le Console.Beep() mais c'est unavailable in a x64 environment (see the remarks). Il peut y avoir ou non des haut-parleurs dans/à l'ordinateur, donc je ne peux pas utiliser System.Media.SystemSounds.Beep.Play()..Bloc système WinForm Net sur un système d'exploitation 64 bits

La plate-forme cible actuelle est un environnement x86, mais j'aimerais que l'application s'exécute également sous x64.

Y at-il un moyen de le faire ou devrais-je abandonner?

Modifier: Ajout d'un lien vers la méthode.

+0

peut dire, pourquoi s'il vous plaît Console.Beep() ne fonctionnera pas sur x64 environnements? –

Répondre

7

Beep has been removed en tant que fonction native de toutes les plates-formes x64 (donc pas de version gérée bien sûr), there is a connect émet cette pétition pour la renvoyer.

Nous utilisons une astuce différente de découvrir les serveurs, nous éjectent à distance le lecteur DVD et le lecteur avec le plateau ouvert est celui recherchaient :)

[EDIT]
Larry Osterman a une excellent article à ce sujet: What's up with the beep driver in Windows 7

+0

Donc, il n'y a aucun moyen de forcer un Beep dans une plate-forme x64? – Stevoni

+1

ressemble à ça, il pourrait y avoir un pilote de troisième partie de bip là-bas, mais je ne pouvais pas en trouver un. –

0

La lecture d'un des sons de fenêtres standard pourrait être une meilleure approche. L'article suivant montre comment (il ne prend que des lignes de couple):

http://msdn.microsoft.com/en-us/library/4y171b18(VS.100).aspx

Si vous voulez rester dans le thème, vous pouvez vérifier le registre Windows pour le système sonore actuel, et jouer le son approprié pour tenir votre besoin.

+0

Je ne sais pas si la machine qui sera utilisée aura un haut-parleur ou ne sera pas coupé (comme ma machine) sinon ce serait un bon ajustement. – Stevoni

+0

Du point de vue des utilisateurs, si je n'ai pas la possibilité de couper les sons d'application agaçants, je serais très frustré. J'appellerais avoir l'option un bonus énorme pour l'utilisateur. C'est une mauvaise idée d'essayer de contrôler ce qu'un utilisateur entend et ce qui apparaît sur l'écran des utilisateurs. Microsoft a passé des années à peaufiner ces capacités pour donner aux utilisateurs le meilleur contrôle des choses ennuyeuses comme ça. – jrista

+1

Ceci est une demande de l'utilisateur. Ils se plaignaient qu'ils ne pouvaient pas entendre quand il y avait eu une erreur dans la version précédente. Maintenant que j'ai été chargé de la mise à jour, je dois m'occuper de ces problèmes. – Stevoni

0

Vous pouvez utiliser la méthode décrite ici Console.Beep(): https://msdn.microsoft.com/en-us/library/8hftfeyw(v=vs.110).aspx

Assurez-vous que vous exécutez le fichier exécutable en tant qu'administrateur (privilèges)

escalade
+0

Permettez-moi de citer l'OP: * "Je voudrais utiliser la Console.Beep() mais c'est __unavailable__ dans un environnement x64 (voir les remarques)" *. La prochaine fois, lisez d'abord la question. – Axalo

+0

http://i.imgur.com/Sse3LxD.png Cela peut-il être considéré comme un système d'exploitation x64? Que diriez-vous d'essayer ma méthode suggérée avant de supposer que je n'ai pas lu la question en premier. Accordé je ne cours pas Vista ou XP mais .Beep() fonctionne sur un OS x64. – FatherlyNick

Questions connexes