Reproductor Windows Media Player

     NET. Framework tiene la limitación de sólo poder reproducir archivos WAV, por cuestiones de licencia. La otra opción es utilizar el control de Windows Media Player. 
     Para ello dentro de la pestaña "componentes" de la barra del cuadro de herramientas, hacemos click derecho y "Elegir elementos".
Nos vamos a "Componentes COM" y seleccionamos el "Windows Media Player". A partir de ese momento ya lo tenemos disponible en el cuadro de herramientas.
     Creamos el código para leer el fichero y solucionado.





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Reproductor_Windows_Media
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
        }
        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }
        private void abrirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            OpenFileDialog abrir = new OpenFileDialog();
            abrir.Filter = "Archivo mp3|*.mp3|Archivo mp4|*.mp4|Archivo avi|*.avi|Todos los archivos | *.*";
            abrir.FileName = "Tipo de archivo";
            abrir.FilterIndex = 1;
            if (abrir.ShowDialog() == DialogResult.OK)
            {
                axWindowsMediaPlayer1.URL = (abrir.FileName);
            }
        }


    }
}

PerformanceCounter - Uso de la CPU





using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;

namespace Uso_CPU
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        PerformanceCounter CPU = new PerformanceCounter( "Processor", "% Processor Time", "_Total");
     

        private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Text = (CPU.NextValue().ToString() + " %");
        }
    }
}



PerformanceCounter - Memoria Disponible

     Utilidad dudosa, pero es curioso.




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Diagnostics;
using System.Threading;

namespace Memoria_disponible
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {

        }

        PerformanceCounter contadoram = new PerformanceCounter("Memory", "Available MBytes");

        public void button1_Click(object sender, EventArgs e)
        {
        textBox1.Text = (contadoram.NextValue().ToString() + " MB");
        }
    }
}


webBrowser - Navegador

Se puede hacer mucho mejor eso seguro. Pero más simple lo veo difícil.







 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Navegador
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void atras_Click(object sender, EventArgs e)
        {
            webBrowser1.GoBack();
        }

        private void adelante_Click(object sender, EventArgs e)
        {
            webBrowser1.GoForward();
        }

        private void actualizar_Click(object sender, EventArgs e)
        {
            webBrowser1.Update();
        }

        private void inicio_Click(object sender, EventArgs e)
        {
            webBrowser1.GoHome();
        }

        private void textBox1_direccion_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.Enter)
            {
           
            }
        }


DriveInfo - Capacidad de los Discos Duros




using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;



// Programa que nos dice la capacidad y tipo de discos que ternemos instalados.


namespace Capacidad_HD
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void capacidadAlmacenamientoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DriveInfo[] allDrives = DriveInfo.GetDrives();

            foreach (DriveInfo d in allDrives)
            {
                rich.AppendText("Disco:  " + d.Name + "\r\n");
                rich.AppendText("\r\n");
                rich.AppendText("Disco local: " + d.DriveType + "\r\n");
                rich.AppendText("\r\n");
                if (d.IsReady == true)
                {
                    rich.AppendText("Etiqueta de Volumen: " + d.VolumeLabel + "\r\n");
                    rich.AppendText("Systema de Archivos:" + d.DriveFormat + "\r\n");
                    rich.AppendText("Espacio disponible para el usuario: " + d.AvailableFreeSpace + " Bytes" + "\r\n");
                    rich.AppendText("Capacidad total espacio en el disco: " + d.TotalSize + " Bytes" + "\r\n");
                    rich.AppendText("Terabyte: " + d.TotalSize / 1099511627776f + "\r\n");
                    rich.AppendText("\r\n");
                }


            }
        }
        private void acercaDeToolStripMenuItem_Click(object sender, EventArgs e)
        {
            MessageBox.Show("(c) Enrique 02-2015 v 1.0");
        }
    }
}





Random - Loterias







     Definimos el rango de los números que deseamos obtener, una matriz para almacenarlos y un objeto Random que recibirá los mensajes NextDouble.

     Obtenemos el siguiente número aleatorio y verificamos si ya existe en la matriz, en cuyo  caso lo desechamos y volvemos a obtener otro. Este proceso lo repetimos hasta haber generado todos los números solicitados.

     La sentencia for externa define cuántos números se van a generar. Cuando se genera un número se almacena en la siguiente posición de la matriz. Después, la sentencia for interna compara el último número generado con todos los anteriormente generados. Si ya existe, se decrementa el índice i de la matriz para que cuando sea incrementado de nuevo por el for externo apunte al elemento repetido y sea sobrescrito por el siguiente número generado.

     Una vez obtenidos todos los números, ordenamos la matriz y la visualizamos.

    Que se puede hacer escribiendo menos código.  De eso estoy absolutamente seguro.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Loteria
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void toolStripMenuItem3_Click(object sender, EventArgs e)
        {
            Close();
        }
        private void primitivaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            {
                int i, k, numeroMaximo = 49, numeroMinimo = 1;
                int[] n = new int[6];
                // Crear un objeto de la clase Random
                Random rnd = new Random();
                for (i = 0; i < n.Length; i++)
                {
                    // Obtener un número aleatorio
                    n[i] = (int)((numeroMaximo - numeroMinimo + 1) * rnd.NextDouble() + numeroMinimo);
                    // Verificar si ya existe el último número obtenido
                    for (k = 0; k < i; k++)
                        if (n[k] == n[i])    // ya existe
                        {
                            i--;            // i sera incrementada por el for externo
                            break;          // salir de este for
                        }
                }
                // Ordenar la matriz
                Array.Sort(n);
                //  Mostrar la matriz
                for (i = 0; i < n.Length; i++)
                {
                    textBox1.Text += (n[i] + "  .  ");
                }
            }
        }


Char.Is... - Validar Letras y Números - I


     En casi cualquier aplicación que hagamos y la usen terceras personas, sera absolutamente necesario controlar la captura de datos, de tal forma que cada campo acepte solamente los datos correctos. De esta forma nos evitamos hacer un tratamiento menos en la gestión de errores (excepciones).
     El evento que vamos a manejar es el KeyPress, que se activa cada vez que pulsemos una tecla.






using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Letras_Numeros
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Char.IsLetter(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsControl(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSeparator(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsSymbol(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsWhiteSpace(e.KeyChar))
            {
                e.Handled = false;
            }
            else if (Char.IsPunctuation(e.KeyChar))
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true;
                MessageBox.Show("Solo Letras", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }