Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-02-2019
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 395
Poder: 16
REHome Va por buen camino
Volumen del pitido.

Hola:

Usando la consola C# 2017. He visto que el comando Consola.Beep(); puedes cambiar el tono del pitido. Lo que no he visto la posibilidad de cambiar su volumen.

Aún así y antes que nada, quiero hacer un menú pequeño, solo se usa tres teclas, flecha arriaba, abajo y Enter.



Cita:
Menú principal de ejemplo.

Se usan solo tres teclas.
-Enter.
-Flecha arriba.
-Flecha abajo.
-

Se usa resolución de la consola C# 16x2.

Nos centramos en esta ocasión en Vol. Teclas.

Si pulsa la ventana verde “Vol. teclas”

Aparecerá la ventana naranja “Ver teclas: 4”.

El número 4 parpadea de unos 300 ms.

Puedes variar de 0 al 7. 0 es sin sonido, desde el 1 se empieza a oir Beep y el 7 es su volumen máximo.

En caso de que no se oiga los sonidos, si quiero ser capaz de ver el cambio del 0 al 7 en pantalla.
¿Alguna idea?

Lo quiero implementar en este código que estamos haciendo (incluyendo gente dle foro) que dejo aquí abajo.

Código consola C#:

Código:
using System;

namespace Menu_consola_09_cs
{
    class Program
    {
        // Variables globales.
        public static int luz = 6;
        public const int BRILLO_MAX = 8;
        public static bool radio = false;



        static void Main(string[] args)
        {
            // Título de la ventana.
            Console.Title = "Menú de opciones";

            // Tamaño ventana consola.
            // X anchura.
            Console.WindowWidth = 16;

            // Y altura.
            Console.WindowHeight = 2;

            // Oculto el cursor.
            Console.CursorVisible = false;
            ConsoleKey teclaInicial;
            Console.BackgroundColor = ConsoleColor.Green;

            // Letras negras.
            Console.ForegroundColor = ConsoleColor.Black;

            // Limpiar pantalla.
            do
            {
                Console.Clear();
                Console.WriteLine(DateTime.Now.ToString("ddd dd MMM")); // Formato numérico dd/MM/yyyy.
                teclaInicial = Console.ReadKey(true).Key;
                if (teclaInicial == ConsoleKey.Enter)
                {
                    menuPrincipal();
                }
            } while (teclaInicial != ConsoleKey.Escape); // SANTIAGOOOOO. 
            //while (true);
            
        }

        #region Menú Principal.
        public static void menuPrincipal()
        {

            // Contador de teclas y navegador.
            int opcion = 0;
            bool salir = false;
            // Capturar tecla para luego validar.
            ConsoleKey tecla;
            
            do
            {

                //******************************************************************
                // Dibujo el menú.

                // Rellenar fondo verde.
                Console.BackgroundColor = ConsoleColor.Green;

                // Letras negras.
                Console.ForegroundColor = ConsoleColor.Black;

                // Limpiar pantalla.
                Console.Clear();

                switch (opcion)
                {
                    case 0:
                        Console.SetCursorPosition(0, 0);
                        Console.Write("Language");
                        break;
                    case 1:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Ajustar hora  ->");
                        break;
                    case 2:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Ajustar fecha ->");
                        break;
                    case 3:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Brillo");
                        break;
                    case 4:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Ver radio");
                        break;
                    case 5:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Vol. avisos");
                        break;
                    case 6:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Vol. teclas");
                        break;
                    case 7:
                        Console.SetCursorPosition(0, 0);
                        Console.WriteLine("Salir menú");
                        break;
                    default:
                        Console.WriteLine("Fuera de rango.");
                        break;
                }

                // Fin de pintar el menú.
                //******************************************************************

                // Leer tecla ingresada por el usuario.
                tecla = Console.ReadKey(true).Key;

                // Validar el tipo de tecla.
                if (tecla == ConsoleKey.Enter)
                {
                    switch (opcion)
                    {
                        case 3:
                            brillo();
                            break;
                        case 4:
                            radiazo();
                            break;
                        case 7:
                            salir = true;
                            break;
                        default:
                            break;
                    }
                }

                if (tecla == ConsoleKey.DownArrow)
                {
                    opcion += 1;
                }

                if (tecla == ConsoleKey.UpArrow)
                {
                    opcion -= 1;
                }

                // Si está en la última opción, salta a la primera.
                if (opcion > 7)
                {
                    opcion = 0;
                }

                // Si está en la primera posición, salta a la última.
                if (opcion < 0)
                {
                    opcion = 7;
                }

                // Uso la tecla escape como salida.
            } while (salir == false);
        }
        #endregion

        #region Brillo (3).
        public static void brillo()
        {
            ConsoleKey teclaBrillo;
            Console.Clear();
            do
            {
                
                Console.SetCursorPosition(0, 0);
                Console.Write("Luz: ");

                for (int i = 0; i < luz; i++)
                {
                    Console.Write("X");
                }

                for (int j = 0; j < (BRILLO_MAX - luz); j++)
                {
                    Console.Write("-");
                }

                teclaBrillo = Console.ReadKey(true).Key;

                // ¿Se pulsó el cursor arriba?
                if (teclaBrillo == ConsoleKey.UpArrow)
                {
                    //¿no llega al limite?
                    if (luz < BRILLO_MAX)
                    {
                        // Incrementa 1.
                        luz++;
                    }
                }

                if (teclaBrillo == ConsoleKey.DownArrow)
                {
                    if (luz > 0)
                    {
                        // Decremmenta 1.
                        luz--;
                    }
                }

            } while (teclaBrillo != ConsoleKey.Enter);
        }
        #endregion

        #region Radio (4).
        public static void radiazo()
        {
            ConsoleKey teclaRadio;
            Console.Clear();
            do
            {
                Console.SetCursorPosition(0, 0);
                Console.Write("Ver radio: ");           

                Console.SetCursorPosition(11, 0);
                Console.Write(radio ? "On " : "Off");
                

                teclaRadio = Console.ReadKey(true).Key;

                if ((teclaRadio == ConsoleKey.UpArrow) || (teclaRadio == ConsoleKey.DownArrow))
                {
                    radio = !radio;
                }

            } while (teclaRadio != ConsoleKey.Enter);
        }
        #endregion
    }
}
Lo que estoy haciendo a ver si me sale el 0 al 7 que se visualice pero me trabo. Solo he hecho el principio antes de hacer algo.
Código:
        #region Volumen teclas.
        public static void VolTeclas()
        {
            ConsoleKey teclaVolumen;
            Console.Clear();

            do
            {
                Console.SetCursorPosition(0, 0);
                Console.Write("Vol. tecla: ");

                Console.SetCursorPosition(11, 0);

                teclaVolumen = Console.ReadKey(true).Key;

            } while (teclaVolumen != ConsoleKey.Enter);
        }
        #endregion
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Volumen PC pockelsm3 Varios 3 05-06-2008 19:05:49
pitido del speaker cpu en javascript fer21unmsm HTML, Javascript y otros 4 24-05-2008 18:53:00
volumen en windows aram2r API de Windows 32 19-02-2008 19:58:58
Volumen de mi PC madiazg API de Windows 4 27-10-2007 12:56:17
Pitido al pulsar Enter JavierB Varios 2 06-04-2005 13:34:44


La franja horaria es GMT +2. Ahora son las 16:31:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi